Minimal — Helm deployment profile
The simplest margot project: a single margo component that describes an nginx application deployed via an
existing Helm chart. margot packages and pushes the application descriptor — it does not build the Helm chart
itself.
Project tree
nginx-helm/
├── margo.yaml
└── margo/
└── app.yaml.jinja
margo.yaml
apiVersion: v1
id: com-example-nginx
name: nginx
version: "1.0.0"
appVersion: "1.27.0"
description: "NGINX web server deployed via Helm chart"
repository: public.ecr.aws/g2n4p2m7/margo
version— the manifest/package version (this Margo application description release)appVersion— the version of the deployed application (nginx1.27.0)
app.yaml.jinja
apiVersion: v1
kind: ApplicationDescription
id: {{ manifest.id }}
metadata:
name: NGINX
description: {{ manifest.description }}
version: {{ manifest.version }}
catalog:
organization:
- name: "Margot"
site: "https://karnarokepoch.github.io/margot/"
deploymentProfiles:
- type: helm
id: {{ manifest.id }}-helm
components:
- name: nginx
properties:
repository: oci://registry-1.docker.io/bitnamicharts/nginx
revision: 25.0.15
wait: true
timeout: 5m0s
parameters:
imageTag:
value: {{ manifest.appVersion }}
targets:
- pointer: image.tag
components: ["nginx"]
{{ manifest.version }}→1.0.0(manifest version){{ manifest.appVersion }}→1.27.0(application version, used as the default forimage.tag)
Build and push
margot build
margot push
This pushes a single OCI artifact to public.ecr.aws/g2n4p2m7/margo:1.0.0 with artifact type
application/vnd.margo.app.v1+json.