This repo can be used to deploy Tanzu Packages and Helm Charts in a GitOps fashion.
Once Flux has been successfully enabled, add kustomizations in the following order, then remove in reverse to avoid package install/removal issues with prune enabled:
- Add Flux Kustomization(s) to the bootstrap folder that reference any ServiceAccount as a prerequisite to installing packages or charts
- Add Flux Kustomization(s) to the flux-config folder that references any PackageInstall or HelmRelease.
The current process to update the values is:
-
Modify package values as desired under
data-values
folder -
Encode the entire values file in base64, e.g.
cat > <packagename>/<packagename>-data-values-secret.yaml <<EOF apiVersion: v1 data: <packagename>-data-values.yaml: kind: Secret metadata: annotations: tkg.tanzu.vmware.com/tanzu-package: <packagename>-packages name: <packagename>-packages-values namespace: packages type: Opaque EOF
For example:
cat > contour/contour-data-values-secret.yaml <<EOF apiVersion: v1 data: contour-data-values.yaml: $(base64 < ./data-values/contour-data-values.yaml) kind: Secret metadata: annotations: tkg.tanzu.vmware.com/tanzu-package: contour-packages name: contour-packages-values namespace: packages type: Opaque EOF
The FluxCD Kustomization manifests have the following dependencies configured:
- bootstrap folder - Installs service accounts needed to manage Tanzu Carvel packages
- flux-config folder - Installs all Tanzu packages
a. bootstrap
- cert-manager
- fluent-bit
- contour
a. Harbor
b. Prometheus
- Grafana