Installable
An Installable is a platform CRD (p6m.dev/v1alpha1) that defines a Helm chart to be installed on one or more clusters. It captures the chart source — repository, chart name, and version — along with an optional values template. An Installation then references an Installable to deploy it to specific destinations.
Required Fields
| Field | Description |
|---|---|
spec.source.type | Chart source type. Use helm. |
spec.source.chart | Chart name (e.g. repo-prefix/chart-name or just chart-name). |
spec.source.repoURL | Helm repository URL (e.g. JFrog or a standard Helm repo). |
spec.source.targetRevision | Chart version as a semver string (e.g. 1.2.3). |
spec.source.namespace | Target Kubernetes namespace for the installed resources. |
Minimal Example
Install a public Helm chart with no per-cluster customization:
apiVersion: p6m.dev/v1alpha1
kind: Installable
metadata:
name: metrics-server
namespace: installables
spec:
source:
type: helm
chart: metrics-server
repoURL: https://kubernetes-sigs.github.io/metrics-server
targetRevision: 3.12.1
namespace: kube-system
Example with Template Variables
Use spec.source.template to inject cluster-specific values at deploy time. The template is rendered as a Helm values file using {{variable}} syntax:
apiVersion: p6m.dev/v1alpha1
kind: Installable
metadata:
name: my-agent
namespace: installables
spec:
source:
type: helm
chart: internal/my-agent
repoURL: https://p6m.jfrog.io/artifactory/helm
targetRevision: 2.0.0
namespace: agents
template: |
agent:
identifier: {{cluster.name}}
organization: {{cluster.organization}}
server:
endpoint: {{server}}
environment: {{environment.name}}
See Cluster Info Template Variables for the full list of available variables.
Installable resources are stored in the installables namespace on the orchestration cluster. Always set metadata.namespace: installables when creating an Installable.