Replace this with a description of your plugin.
This repository is a Cytos platform plugin. It was created from the cytos-plugin-template.
my-plugin/
├── terraform/ # Terraform module (consumed by cytos-deployment)
│ ├── main.tf # helm_release with templatefile() values
│ ├── variables.tf # Platform inputs + plugin defaults
│ ├── outputs.tf # namespace, service_url, ingress_url
│ ├── values.yaml.tpl # Helm values template
│ └── versions.tf # Provider version constraints
├── helmchart/ # Helm chart (bundled with the module)
│ └── my-plugin/
├── docker/ # Application container
│ ├── Dockerfile
│ └── main.py
├── catalog-info.yaml # Backstage component entity
└── VERSION # Plugin version (semver)
- Create your repo from this template (click "Use this template")
- Rename all occurrences of
my-pluginto your plugin name - Build your container and push to ECR
- Update VERSION with your version
- Submit a PR to cytos-deployment adding
plugin-<name>.tf:
module "my_plugin" {
source = "git::https://github.com/Appsilon/my-plugin.git//terraform?ref=v0.1.0"
environment = var.environment
base_domain = local.base_domain
image_registry = local.ecr_registry
}These variables are passed by cytos-deployment:
| Variable | Description |
|---|---|
environment |
Environment name (dev, staging, prod) |
base_domain |
Base domain (e.g. bioverse.aws.appsilon.com) |
image_registry |
ECR registry URL |
Set in terraform/variables.tf — deployment can override any of them.
Pass environment-specific config via extra_values:
module "my_plugin" {
source = "git::https://github.com/Appsilon/my-plugin.git//terraform?ref=v0.1.0"
environment = var.environment
base_domain = local.base_domain
image_registry = local.ecr_registry
extra_values = [templatefile("${path.module}/values/my-plugin.yaml", {
some_secret_url = var.some_secret_url
})]
}