{"id":22789168,"url":"https://github.com/anmiralles/openshift-cluster-config","last_synced_at":"2026-01-08T12:31:02.366Z","repository":{"id":244423493,"uuid":"815061880","full_name":"anmiralles/openshift-cluster-config","owner":"anmiralles","description":"Openshift CICD configuration for applying Gitops approach based on Tekton pipelines and ArgoCD deployment.","archived":false,"fork":false,"pushed_at":"2024-06-19T06:21:54.000Z","size":232,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T18:06:09.415Z","etag":null,"topics":["argocd","gitops","openshift","preview-environment","tekton"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anmiralles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-06-14T09:13:13.000Z","updated_at":"2024-06-19T06:21:57.000Z","dependencies_parsed_at":"2025-02-05T17:48:12.575Z","dependency_job_id":"c6a332ca-845e-4c88-93f2-ccc71ebed425","html_url":"https://github.com/anmiralles/openshift-cluster-config","commit_stats":null,"previous_names":["anmiralles/openshift-cluster-config"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anmiralles%2Fopenshift-cluster-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anmiralles%2Fopenshift-cluster-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anmiralles%2Fopenshift-cluster-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anmiralles%2Fopenshift-cluster-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anmiralles","download_url":"https://codeload.github.com/anmiralles/openshift-cluster-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246345231,"owners_count":20762355,"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","openshift","preview-environment","tekton"],"created_at":"2024-12-12T01:44:10.955Z","updated_at":"2026-01-08T12:31:02.336Z","avatar_url":"https://github.com/anmiralles.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\n## Introduction\nThis project tries to automate the build and deployment of a Quarkus application using Tekton Pipelines for Continuous Integration and ArgoCD for Continuous Deployment.\n\n## Pre-requisites\n1. A Github account to store the code.\n2. An Openshift cluster\n3. A Quay.io account to store the container images.\n4. Sonarqube instance to analyze the code quality. [Sonarqube OCP helm chart](https://github.com/anmiralles/sonarqube-ocp4)\n5. OpenShift pipelines (Tekton) and Openshift Gitops (ArgoCD) instances.\n\n## Preview Environments\nThis approach allows us to generate an on-demand namespace for testing a specific git branch before it’s merged. If we use the GitOps approach in the CI/CD process it is worth considering ArgoCD for that. With ArgoCD and Helm charts, it is possible to organize that process in a fully automated and standardized way.\n\nAfter creating a new pull request we want ArgoCD to provision a new preview environment on Kubernetes. Once we merge a pull request we want ArgoCD to remove the preview environment automatically. Fortunately, ArgoCD can monitor pull requests with ApplicationSet generators. Our ApplicationSet will connect to the app source repository to detect new pull requests. \n\n![preview-environment](images/preview.png)\n\nStep 1: Pipeline deployment\n\n```shell script\noc apply -f cicd/pipelines/preview/\n```\n\nDuring this step we will deploy a trigger so that when there would be a push event in the git repository the pipeline will be fired.\n\nStep 2: Configure git repository weebhook\n\n![webhook-config](images/webhook.png)\n\n\nStep 3: Gitops application deployment\n\n```shell script\noc apply -f cicd/gitops/app-preview-config.yaml\n```\n\nOur solution will deploy a quarkus sample application. This is the related repository: [quarkus-getting-started](https://github.com/anmiralles/quarkus-getting-started)\n\nOur pipeline will clone the app repository and execute s2i command in OCP baking an image and pushing it to a container registry.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanmiralles%2Fopenshift-cluster-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanmiralles%2Fopenshift-cluster-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanmiralles%2Fopenshift-cluster-config/lists"}