An operator that gets you an Argo CD for cluster configuration out-of-the-box on OpenShift along with the UI for visualizing environments.
- Add the following resource to your cluster:
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: devel-gitops-service-source
namespace: openshift-marketplace
spec:
displayName: "!!! GITOPS DEVEL !!!"
image: quay.io/<QUAY_USERNAME>/gitops-operator-catalog:v<VERSION>
publisher: "!!! GITOPS DEVEL !!!"
sourceType: grpc
(Remember to replace the placeholders)
- This only works after you have built and pushed the bundle and the catalog (see below).
- To verify the source is correctly configured,
oc y CatalogSource gitops-service-source -n openshift-marketplace | yq '.status.connectionState.lastObservedState'should reportREADY.- If not, consult
oc get events -n openshift-marketplace.
- If not, consult
- Go to the OperatorHub on OpenShift Webconsole and look for the "OpenShift GitOps" operator from
!!! GITOPS DEVEL !!!source.
- Install the operator in the
openshift-gitops-operatornamespace using the defaults in the wizard, and optionally, select the checkbox to enable cluster monitoring on the namespace. Wait for it to show up in the list of "Installed Operators". If it doesn't install properly, you can check on its status in the "Installed Operators" tab in theopenshift-gitops-operatornamespace, oroc get jobs -n openshift-marketplace. To rerun the operator install, make sure to remove the Subscription and the InstallPlan (if exists).
- To validate if the installation was successful, look for the route named
clusterin theopenshift-gitopsnamespace. Note: the namespace doesn't have to exist in advance, the operator creates it for you.
That's it! Your API route should be created for you. You don't need to explicitly create any operand/CR.
- Clone the repository.
- Login to a cluster on your command-line.
- Execute
make installto apply the CRDs. - Execute
make runto run the operator locally.
make test
make test-e2e
This operator currently deploys the following payload:
quay.io/<quay-username>/gitops-backend:v0.0.1
If that's all that you are changing, the following steps are not needed in development mode. You could update your image "payload" and re-install the operator.
Set the base image and version for building operator, bundle and index images.
export IMAGE=quay.io/<quay-username>/gitops-operator VERSION=1.8.0
Note quey.io will auto-create the repositories if they do not exist. Make sure to change their visibility to public in Quay UI, so OpenShift can access them.
- Build and push the operator image.
make docker-build docker-push
- Build and push the Bundle image (operator + OLM manifests)
make bundle
make bundle-build bundle-push
- Build and push the Index image
make catalog-build catalog-push
The Index image powers the listing of the Operator on OperatorHub.
GitOps Operator vs Argo CD Community Operator
| Features | GitOps Operator | Argo CD Community Operator |
|---|---|---|
| Default Cluster Argo CD instance | ✅ | ❌ |
| Cluster Argo CD instances in namespaces defined by envrionment variable ARGOCD_CLUSTER_CONFIG_NAMESPACES | openshift-gitops | ❌ |
| Cluster Configuration RBAC/Policy Rules | All APIGroups,Resources,get,list,watch Verbs appended with admin ClusterRoles. Additional APIGroups: operator.openshift.io,user.openshift.io, config.openshift.io, console.openshift.io, machine.openshift.io, machineconfig.openshift.io, compliance.openshift.io, rbac.authorization.k8s.io, storage.k8s.io, etc. |
All APIGroups,Resources,Verbs |
| Integrated with OpenShift Console Environments page for visualizing GitOps environments and applications | ✅ | ❌ |
| Air-gapped environments | OCP | ❌ |
| Installed tools | helm 3, kustomize | helm 2 and 3, kustomize, ksonnet |
| Single Sign-on | RHSSO, Dex | Keycloak, Dex |
| Redis Server | Redis 5, Secure connection is not yet supported | Redis 6 |
| ArgoCDExport | ❌ | ✅ |
| Installation Modes | All Namepaces | Single, All Namespaces |
| Support for Kubernetes | ❌ | ✅ |
| Maintained by | Red Hat | Community |
Migrate from Argo CD Community Operator to GitOps Operator
Please follow the migration guide when moving from the Argo CD Community Operator to the GitOps Operator.
OpenShift GitOps from release v1.9.0 supports progressive delivery using Argo Rollouts.
Users can enable progressive delivery by using a new type of CRD called RolloutManager. A detailed usage guide for this new CRD is available here.

