apiVersion: apps/v1
kind: Deployment
metadata:
name: ctrlplane-helm-sync
namespace: ctrlplane
spec:
replicas: 1
selector:
matchLabels:
app: ctrlplane-helm-sync
template:
metadata:
labels:
app: ctrlplane-helm-sync
spec:
serviceAccountName: ctrlplane-sync
containers:
- name: sync
image: ghcr.io/ctrlplanedev/cli:latest
command:
- ctrlc
- sync
- helm
- --cluster-name
- "$(CLUSTER_NAME)"
- --cluster-identifier
- "$(CLUSTER_IDENTIFIER)"
- --interval
- "5m"
env:
- name: CTRLPLANE_API_KEY
valueFrom:
secretKeyRef:
name: ctrlplane-credentials
key: api-key
- name: CTRLPLANE_WORKSPACE
value: your-workspace-id
- name: CLUSTER_NAME
value: "Production US-East"
- name: CLUSTER_IDENTIFIER
value: "prod-us-east-1"
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: ctrlplane-sync
namespace: ctrlplane
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: ctrlplane-helm-reader
rules:
- apiGroups: [""]
resources: ["secrets", "configmaps"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: ctrlplane-helm-sync
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: ctrlplane-helm-reader
subjects:
- kind: ServiceAccount
name: ctrlplane-sync
namespace: ctrlplane