A GitOps approach to continuous delivery enables teams to deploy micro service based applications using a set of YAML files held within a Git repository. Red Hat OpenShift GitOps facilitates the consistent and automated deployment of Git based resources, to a selection of environments on Kubernetes platforms as content progresses from development to production.
This project structure is based on the opinionated configuration found here. We highly recommend reading mode about the breakdown of the intention of this folder structure within that article.
.
├── bootstrap # used to for initial provisioning
├── clusters # used to define a running configuration
├── components # configurations in Kustomize and YAML
│ ├── argocd # yaml defenitions for argocd objects such as Applications and Projects
│ ├── cluster-configs # cluster level configurations
│ └── operators # operator subscriptions and configurations
├── documentation # various documentation, software groups
│ ├── images
│ └── operators
├── scripts # scripts to automate maintence tasks
└── tenants # configurations for end user namespaces and resources
The bootstrap
folder contains the initial set of resources utilized to deploy the cluster.
The clusters
folder contains the main aggregation layer for all of the elements of the cluster. This includes a base
folder containing common elements, as well as cluster/environment specific configuration.
These overlays are contained in sub-directories that include a kustomization.yaml
file. The Kustomization file contains a set of references to other base directories. Each Kustomization file that is referenced will either have another overlay or a base definition, as illustrated in the following figure:
Note
These examples are designed to be customized to fit the specific requirements for an installation of RHOAI on your OpenShift clusters. However they are usable "as-is" for a demonstration cluster.
Important
If repo was cloned, make sure to update the git url in clusters/overlays/rhoai-xxx/patch-application-repo-revision
to point to your repository.
The components
folder contains the bulk of the configuration.
Note
Other folders may be required based on the configuration reference above and individual team's requirements
The argocd
folder is used for ArgoCD related objects and contains an apps
and projects
folder.
A set of ArgoCD Application and ApplicationSets used to install the required components.
A set of ArgoCD Projects setting up basic RBAC at the ArgoCD layer.
The operators
folder contains objects for the installation and configuration of the operators required on the cluster.
Tip
The operators
folder general follows a pattern where each subfolder is intended to be a separate ArgoCD application. Most of the examples on this repository were pulled directly from redhat-cop/gitops-catalog.
If other operators are required check there first. And feel free to contribute new components back to the catalog as well! 😃
The cluster-configs
folder contains suggested configuration files for features that come default with Openshift, such as work load monitoring.
The scripts
folder contains shell scripts used to initialize the installation.
The documentation
folder contains the public documentation associated with this repository.