This repository serves as a centralized source of truth for the Operate First Community Cloud Offering.
In this repository you will find various OCP/K8s manifests that define the desired state of all our clusters and different services deployed on these clusters.
All manifests can be generated using kustomize. Though some builds may include encrypted data that require additional credentials (read more about how we encrypt files here).
All manifests found through this repo are deployed by our ArgoCD.
All documentation can be found here.
Apps or Applications in this context refers to the ArgoCD notion of Application
, as described in the
ArgoCD docs. In short, you can think of an App
as a collection of manifests that have a
destination cluster where they should be deployed.
This diagram provides a simple illustration of the structure of a typical Application
in this repo. In this
illustration you can imagine an Application
to be any group of manifests. These manifests belonging to an
Application
often make up a full deployment of a service which has end users (e.g. Grafana
). Though sometimes,
an Application
may be just be a way to logically group a collection of manifests, like in the case of cluster-scope
Application
which harbors all cluster wide resources, configurations, and privileged resources.
Once a group of manifests are organized into a directory, they can be deployed using ArgoCD. To do this you simply need to create the application within ArgoCD, docs on how to do this can be found here.
You will also notice each app adheres to a structure made up of bases
and overlays
. This is a structure commonly
found when using Kustomize
. base
directories contain manifests/configurations that are common to multiple clusters
and generally don't harbor any cluster specific details. Within the overlays
directory you'll find cluster specific
configurations. A cluster specific folder within Overlays
will inherit the manifests from base
folders as needed,
while also making patches/amendments specific to that cluster.
We suggest ramping up on the following before attempting to work with the Apps repo:
- Openshift/K8s
- Kustomize
- ArgoCD
- SOPS (if working with encrypted manifests)
We encourage you to browse around the following repos for issues you would be interested in tackling:
Beginner friendly issues are marked "Good first issue". Though you are welcome to take on any issue that interests you. If an issue is unclear or requires more information, feel free to reach out to us.
Please be sure to read the contributing docs here before making a PR.