Your primary RAIL namespace in all the clusters deploys everything that's defined in the subdirectory that matches:
repo name (this repo) / cluster name / RAIL Using Kustomize it's easy to manage your resources in a GitOps way.
Some tips:
- If you want to add a new app or resource, you should add it to the
basedirectory. - If you want to include/enable it in a specific cluster, you must add it to a
kustomization.yamlin RAIL directory in a directory.
This way, adding resources in base makes it available for all clusters but the kustomization.yaml.
The following structure is not mandatory, but recommended:
├── .sops.pub.asc # A public PGP key you can use to sign secrets that will be decoded in the clusters by SOPS (mozilla Secret OPerationS)
├── .sops.yaml # A configuration file that tells SOPS which values to encrypt
├── base # This level contains apps and resources that's available for use in all clusters
│ ├── example-from-docs # This level represents this app and its set of resources. It must include kuztomization.yaml that includes the other manifest files
│ │ ├── deployment.yaml
│ │ ├── ingress.yaml
│ │ ├── kustomization.yaml # This file includes the other manifest files
│ │ └── service.yaml
│ └── README.md # Love your READMEs, and feed and exercise them regulary and keep them lean.
├── osl1-test # This directory level representes the configuration thats unique for a specific cluster
│ ├── example-from-docs # This directory level represents configuration for this app in the osl1-test cluster
│ └── RAIL # This is where the fluxcd controller finds deployments for this cluster
├── README.md
└── bgo1-prod # You guessed it, this is another cluster, for your production workloads
├── RAIL # ...and this is where the fluxcd controller finds deployments for this specific cluster
│ └── some_app
│ └── kustomization.yaml # Define a namespace and a fluxcd kustomization here in order to deploy some_app
└── some_app #
└── kustomization.yaml # This file includes the base directory and the other manifest files, enabling the resources in the cluster