Skip to main content

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

FieldDescription
spec.source.typeChart source type. Use helm.
spec.source.chartChart name (e.g. repo-prefix/chart-name or just chart-name).
spec.source.repoURLHelm repository URL (e.g. JFrog or a standard Helm repo).
spec.source.targetRevisionChart version as a semver string (e.g. 1.2.3).
spec.source.namespaceTarget 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.


Namespace Convention

Installable resources are stored in the installables namespace on the orchestration cluster. Always set metadata.namespace: installables when creating an Installable.