Installation
An Installation is a platform CRD (p6m.dev/v1alpha1) that deploys an Installable to one or more clusters. It references an Installable by name and specifies the destination clusters. When Kargo is installed, an Installation can also define automated promotion rules between stages.
Required Fields
| Field | Description |
|---|---|
spec.installableRef.kind | Must be Installable. |
spec.installableRef.name | Name of the Installable to deploy. |
spec.installableRef.namespace | Namespace where the Installable lives. Typically installables. |
spec.destinations[].clusterRef.name | Name of the target cluster. |
Discovering Available Cluster Names
Cluster names follow the convention {solution}-{env}-{region}, where:
{solution}is your solution's identifier (e.g.,acme-corp){env}is the environment type:dev,stg, orprd{region}is the cloud region in kebab-case (e.g.,us-east-2,eastus)
Example names: acme-corp-dev-us-east-2, acme-corp-prd-us-east-2. Contact your platform team to confirm the exact names provisioned for your solution.
Minimal Example
Deploy an Installable to a single cluster:
apiVersion: p6m.dev/v1alpha1
kind: Installation
metadata:
name: metrics-server
namespace: installables
spec:
installableRef:
kind: Installable
name: metrics-server
namespace: installables
destinations:
- clusterRef:
name: dev-aws-us-east-1
Multiple Destinations
Deploy to several clusters by listing additional entries under destinations:
apiVersion: p6m.dev/v1alpha1
kind: Installation
metadata:
name: my-agent
namespace: installables
spec:
installableRef:
kind: Installable
name: my-agent
namespace: installables
destinations:
- clusterRef:
name: dev-aws-us-east-1
- clusterRef:
name: stg-aws-us-east-1
- clusterRef:
name: prd-aws-us-east-1
Kargo-based Promotion (optional)
If your platform has Kargo installed, you can add a cd block per destination to control automated promotion between stages:
destinations:
- clusterRef:
name: dev-aws-us-east-1
cd:
autoPromote: true
- clusterRef:
name: stg-aws-us-east-1
cd:
autoPromote: true
dependsOn:
- dev-aws-us-east-1
- clusterRef:
name: prd-aws-us-east-1
cd:
autoPromote: false
dependsOn:
- stg-aws-us-east-1
autoPromote: true triggers promotion automatically once the upstream stage is healthy. Set it to false on production destinations to require a manual promotion step. The cd field has no effect when Kargo is not installed.
Per-Destination Overrides
Use overrides on a destination to customize the chart source or values for that cluster without modifying the shared Installable:
destinations:
- clusterRef:
name: prd-aws-us-east-1
overrides:
source:
targetRevision: 2.1.0
template: |
replicas: 5
logLevel: warn
overrides.source accepts the same fields as spec.source on the Installable. Only the fields you specify are overridden; the rest are inherited from the Installable.
template values in overrides support the same {{variable}} cluster-info interpolation as Installables. See Cluster Info Template Variables for the full list.
Deleting an Installation
Steps
-
Remove the Installation from
.platform— Open a PR against your GitHub org's.platformrepo. If the file contains only this Installation, delete the file. If the file contains multiple resources, remove only the Installation YAML object. Merge tomain. -
Find the root application in ArgoCD — Locate the application named
{github-org}-installations. This is the root app-of-apps that manages all Installables and Installations for your org. -
Refresh and sync the root application — Click Refresh, then Sync. Once synced, the deleted Installation's child Application will appear marked for pruning (OutOfSync with a prune indicator).
Auto-prune is disabledAuto-prune is intentionally disabled to prevent accidental deletions. Syncing the root app will not automatically remove the child Application — you must delete it manually in the next step.
-
Delete the Installation's child Application — Find the child Application for the Installation you are deleting. Click the menu on that application and select Delete.
-
Delete the per-cluster Applications created by the Installation — The Installation creates one ArgoCD Application per destination cluster. Find each of those applications and delete them using the menu.
If Kargo is enabledDeleting the Installation orphans any Kargo stages associated with it. Those stages will not be removed.
Verify
Confirm in the ArgoCD UI that:
- The
{github-org}-installationsroot application is Synced and Healthy. - The Installation's child Application and all per-cluster Applications no longer appear in the application list.