This project provides an easy way to create/maintain complex YAML files using kustomize and kustomize plugin.
It works with decapod-site which contain differences between each environment (e.g. development, staging and production environment).
base-yaml
andsite-yaml
structurebase-yaml
is containig YAML resources and overlays.site-yaml
contains a site value and variant.
- Qualified product
- LMA(Logging, Monitoring, Alert)
- OpenStack
- Cloud Console
An example of decapod-base-yaml:
openstack
├── base
│ ├── kustomization.yaml
│ ├── resources.yaml
│ └── site-values.yaml
├── image
│ └── image-values.yaml
└── storage
├── ceph.yaml
└── local-path.yaml
An example of decapod-site:
dev // site name
├── openstack
├── kustomization.yaml
├── ceph.yaml
└── site-values.yaml
base(1) + site(2) => variant(3)
-
decapod-base-yaml/lma/base/resources.yaml:
apiVersion: helm.fluxcd.io/v1 kind: HelmRelease metadata: name: elasticsearch-operator spec: chart: repository: https://openinfradev.github.io/helm-repo name: elasticsearch-operator version: 1.0.3 releaseName: elasticsearch-operator targetNamespace: elastic-system values: elasticsearchOperator: nodeSelector: {} # TO_BE_FIXED
-
decapod-site/dev/lma/site-values.yaml:
apiVersion: openinfradev.github.com/v1 kind: HelmValuesTransformer metadata: name: site global: nodeSelector: taco-lma: enabled charts: - name: elasticsearch-operator override: elasticsearchOperator.nodeSelector: $(nodeSelector)
-
decapod-site/dev/lma/lma-manifest.yaml:
apiVersion: helm.fluxcd.io/v1 kind: HelmRelease metadata: name: elasticsearch-operator spec: chart: repository: https://openinfradev.github.io/helm-repo name: elasticsearch-operator version: 1.0.3 releaseName: elasticsearch-operator targetNamespace: elastic-system values: elasticsearchOperator: nodeSelector: taco-lma: enabled