Files
kubernetes/docs/fluxcd.md
T

96 lines
1.8 KiB
Markdown

# fluxcd
## age / sops
**Create key:**
``` bash
AGE_FILE=age.agekey
age-keygen -o ${AGE_FILE}
```
**Example using sops decryption:**
```yaml
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: sample-sync
spec:
interval: 1m
sourceRef:
kind: GitRepository
name: git-repo-name
path: deploy/sample-app
prune: true
decryption:
provider: sops
secretRef:
name: flux-sops-age
```
**Importing sops private key:**
Using kustomization used by operator to deploy base fluxcd manifests for deployments and reconciliation.
``` bash
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: your-namespace
resources:
- sample-app.yaml
secretGenerator:
- name: flux-sops-age
files:
- "age.agekey=./.env.d/age.agekey" #change to private key file path
generatorOptions:
disableNameSuffixHash: true
```
**Import using kubectl:**
```bash
SECRET_NAME="flux-sops-age"
NAMESPACE="your-namespace"
kubectl create secret generic ${SECRET_NAME} \
--namespace=${NAMESPACE} \
--from-file=age.agekey=/dev/stdin #change to private key file path
```
```yaml
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: sample-sync
spec:
interval: 1m
sourceRef:
kind: GitRepository
name: git-repo-name
path: deploy/sample-app
prune: true
decryption:
provider: sops
secretRef:
name: flux-sops-age
```
## kustomization prune
**Disable:**
``` bash
FLUX_RESOURCE_NAME="???"
FLUX_RESOURCE_NS="???"
kubectl patch helmrelease ${FLUX_RESOURCE_NAME} -n ${FLUX_RESOURCE_NS} --type merge -p '{"spec":{"prune":false}}'
```
**Enable:**
``` bash
FLUX_RESOURCE_NAME="???"
FLUX_RESOURCE_NS="???"
kubectl patch helmrelease ${FLUX_RESOURCE_NAME} -n ${FLUX_RESOURCE_NS} --type merge -p '{"spec":{"prune":true}}'
```