{"id":20572177,"url":"https://github.com/mcaimi/ocp4-argocd","last_synced_at":"2025-07-01T14:05:59.069Z","repository":{"id":69446923,"uuid":"272705639","full_name":"mcaimi/ocp4-argocd","owner":"mcaimi","description":"ArgoCD Cluster Setup","archived":false,"fork":false,"pushed_at":"2021-11-29T16:29:25.000Z","size":415,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T14:05:13.419Z","etag":null,"topics":["argocd","gitops","kustomize","openshift","redhat"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcaimi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-16T12:45:04.000Z","updated_at":"2025-06-10T21:25:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4240da4-efb0-49d2-8b33-fb6bd7408f2f","html_url":"https://github.com/mcaimi/ocp4-argocd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mcaimi/ocp4-argocd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcaimi%2Focp4-argocd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcaimi%2Focp4-argocd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcaimi%2Focp4-argocd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcaimi%2Focp4-argocd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcaimi","download_url":"https://codeload.github.com/mcaimi/ocp4-argocd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcaimi%2Focp4-argocd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262978551,"owners_count":23394008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argocd","gitops","kustomize","openshift","redhat"],"created_at":"2024-11-16T05:18:40.108Z","updated_at":"2025-07-01T14:05:59.046Z","avatar_url":"https://github.com/mcaimi.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# OCP4 ARGOCD\n\nThis repo contains manifests and kustomization template to install, maintain and configure OpenShift 4 features with ArgoCD.\n\n## Pre-Setup Requirements\n\nInstallation is managed by Kustomization templates. Openshift 4.3+ is required.\n\n1. Add ArgoCD catalog source and create Namespace\n\n```bash\n  $ oc create -n openshift-marketplace -f argocd/argocd-catalog-source.yaml\n  $ oc new-project argocd\n```\n\n2. Deploy Infrastructure prerequisites (rbac roles, service accounts, security contexts)\n\n```bash\n  $ oc apply -k argocd/infra\n```\n\n3. Deploy the ArgoCD Operator\n\n```bash\n  $ oc apply -k argocd/operator\n```\n\nAfter a while, the operator will be installed and configured accordingly:\n\n```bash\n  ^ \u003e\u003e oc get pods -n argocd\n  NAME                                                        READY   STATUS    RESTARTS   AGE\n  argocd-operator-f89f6b6b5-f6c9g                             1/1     Running   0          16m\n  prometheus-operator-56467cbcbf-lh6xs                        1/1     Running   0          16m\n```\n\n## ArgoCD Cluster Deployment\n\nAfter operators are up and running, deploy the Argo Cluster Manifest and Application Manifests\n\n```bash\n  $ oc apply -k argocd/cluster\n```\n\nThis will deploy:\n\n* The Argo CD Cluster with Dex for SSO integration with Openshift\n* An \"argocd-infra\" Application Group\n* The \"rbac\", \"operator\" and \"cluster\" applications to let ArgoCD manage itself.\n\n### Add Managed Namespaces to ArgoCD Application Controller\n\nThis ArgoCD Operator Deployment is namespaced: this means that by default it only can operate in its own Namespace (argocd).\nTo add managed namespaces to the ArgoCD cluster:\n\n```bash\n  $ argocd cluster add  $(oc config current-context) --in-cluster --system-namespace=argocd --namespace argocd --namespace openshift-monitoring --namespace openshift-user-workload-monitoring --namespace openshift-operators --namespace openshift-logging --namespace argo-amq-streams-operator --upsert\n```\n\nThe 'namespace' switch can be used multiple times to add more namespaces, moreover if ArgoCD needs to access Cluster-Level resources, also add '--cluster-resources=true' switch to the above command.\nOnce that command completes, the ArgoCD cluster should be able to work on required namespaces:\n\n```bash\n  $ argocd cluster list\n  SERVER                                         NAME                                                                       VERSION  STATUS      MESSAGE\n  https://kubernetes.default.svc (6 namespaces)  openshift-monitoring/api-cluster-0894-sandbox1221-opentlc-com:6443/mcaimi  1.22     Successful\n\n  $ argocd cluster get https://kubernetes.default.svc\n  config:\n    tlsClientConfig:\n      insecure: true\n  connectionState:\n    attemptedAt: \"2021-11-26T09:48:32Z\"\n    message: \"\"\n    status: Successful\n  info:\n    applicationsCount: 7\n    cacheInfo:\n      apisCount: 200\n      lastCacheSyncTime: \"2021-11-26T09:44:15Z\"\n      resourcesCount: 696\n    connectionState:\n      attemptedAt: \"2021-11-26T09:48:32Z\"\n      message: \"\"\n      status: Successful\n    serverVersion: \"1.22\"\n  name: openshift-monitoring/api-cluster-0894-sandbox1221-opentlc-com:6443/mcaimi\n  namespaces:\n  - argocd\n  - openshift-monitoring\n  - openshift-user-workload-monitoring\n  - openshift-operators\n  - openshift-logging\n  - argo-amq-streams-operator\n  server: https://kubernetes.default.svc\n  serverVersion: \"1.22\"\n```\n\n## Deployment of Additional OCP Components with ArgoCD\n\nAdditional components can be deployed as ArgoCD Applications by deploying the relevant manifests:\n\n- Local Development Users\n- Elasticsearch\n- Jaeger Tracing\n- Kiali\n- Istio Operator\n- Istio Control Plane\n- Openshift Pipelines Operator (Tekton)\n- Openshift Serverless (KNative)\n- Kubernetes NMState Operator (Tech Preview)\n- RedHat Codeready Workspaces\n- RedHat Advanced Cluster Manager\n- Camel-K\n\n![argocd console screenshot](assets/argocd.png)\n\nTo install these components, deploy with kustomize:\n\n1. Local development users\n\n  ```bash\n  $ oc apply -k apps/config\n  ```\n\nThis will create an htpasswd-based OAuth provider with two users: a \"developer\" user with no specific roles granted, and a \"localadmin\" user with cluster-admin roles.\nPasswords are the same as the username. To modify these users, look inside ocp-config/auth/htpasswd-secret.yaml.\n\n2. Elasticsearch Operator\n\n    ```bash\n    $ oc apply -k apps/elasticsearch\n    ```\n\n3. Jaeger Operator\n\n    ```bash\n    $ oc apply -k apps/jaeger\n    ```\n\n4. Kiali Operator\n\n    ```bash\n    $ oc apply -k apps/kiali\n    ```\n\n5. Service Mesh Operator\n\n  Service Mesh Installation is split into two distinct steps: first thing is to deploy the Istio Operator:\n\n    ```bash\n    $ oc apply -k apps/servicemesh\n    ```\n\n  once that has successfully finished, deploy the Istio Control Plane:\n\n    ```bash\n    $ oc apply -k apps/istio-ctlplane\n    ```\n\n6. Openshift Pipelines Operator\n\n    ```bash\n    $ oc apply -k apps/ocp-pipelines\n    ```\n\n7. Openshift Serverless\n\n    ```bash\n    $ oc apply -k apps/serverless\n    ```\n\n8. Camel-K\n\n  deploy the operator:\n\n    ```bash\n    $ oc apply -k apps/camelk\n    ```\n\n9. Advanced Cluster Manager\n\n    ```bash\n    $ oc apply -k apps/acm\n    ```\n\n  after the deployment of the operator has finished, deploy the Cluster Hub\n\n    ```bash\n    $ oc apply -k apps/acm-clusterhub\n    ```\n\n10. Kubernetes NMState Operator\n\n  deploy the operator:\n\n    ```bash\n    $ oc apply -k apps/nmstate\n    ```\n\n  then deploy the NMState Instance:\n\n    ```bash\n    $ oc apply -k apps/nmstate-instance\n    ```\n\n11. RedHat Codeready Workspaces\n\n  deploy the operator:\n\n    ```bash\n    $ oc apply -k apps/codeready\n    ```\n\n  then deploy the Codeready Cluster\n\n    ```bash\n    $ oc apply -k apps/codeready-cluster\n    ```\n\n12. Openshift Logging\n\n  deploy the operator:\n\n  ```bash\n  $ oc apply -k apps/logging-operator\n  ```\n\n  then deploy the logging instance\n\n  ```bash\n  $ oc apply -k apps/logging-instance\n  ```\n\n13. Openshift Cluster Monitoring Configuration\n\n  deploy the configmaps\n\n  ```bash\n  $ oc apply -k apps/monitoring\n  ```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcaimi%2Focp4-argocd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcaimi%2Focp4-argocd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcaimi%2Focp4-argocd/lists"}