{"id":17472333,"url":"https://github.com/ocp-devspaces-gamification/quarkus-microservices-kustomize-openshift-argocd","last_synced_at":"2026-02-17T18:31:42.841Z","repository":{"id":258068603,"uuid":"870731136","full_name":"ocp-devspaces-gamification/quarkus-microservices-kustomize-openshift-argocd","owner":"ocp-devspaces-gamification","description":"Showcase how to create, configure, and deploy multiple Quarkus microservices using Kustomize for configuration management, OpenShift Dev Spaces for development, and ArgoCD for continuous delivery.","archived":false,"fork":false,"pushed_at":"2024-10-23T09:33:01.000Z","size":276,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-08T23:45:44.514Z","etag":null,"topics":["argocd","gitlab","kustomize","openshift","quarkus"],"latest_commit_sha":null,"homepage":"","language":"Java","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/ocp-devspaces-gamification.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-10-10T15:06:21.000Z","updated_at":"2024-10-23T09:33:04.000Z","dependencies_parsed_at":"2025-04-10T04:42:25.993Z","dependency_job_id":null,"html_url":"https://github.com/ocp-devspaces-gamification/quarkus-microservices-kustomize-openshift-argocd","commit_stats":null,"previous_names":["ocp-devspaces-gamification/quarkus-microservices-kustomize-openshift-argocd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ocp-devspaces-gamification/quarkus-microservices-kustomize-openshift-argocd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ocp-devspaces-gamification","download_url":"https://codeload.github.com/ocp-devspaces-gamification/quarkus-microservices-kustomize-openshift-argocd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29552795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T18:16:07.221Z","status":"ssl_error","status_checked_at":"2026-02-17T18:16:04.782Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","gitlab","kustomize","openshift","quarkus"],"created_at":"2024-10-18T17:08:01.471Z","updated_at":"2026-02-17T18:31:37.831Z","avatar_url":"https://github.com/ocp-devspaces-gamification.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Comprehensive Demo: Multi-Service Quarkus Application with Kustomize, OpenShift Dev Spaces, and ArgoCD\n\n#### **Objective:**\nShowcase how to create, configure, and deploy multiple Quarkus microservices using Kustomize for configuration management, OpenShift Dev Spaces for development, and ArgoCD for continuous delivery.\n\n### Optional:\n* Fork Repo into personal repo\n* Update the files below for your enviornment  \n`Change the Git URL to yours`\n```ssh\n$ ls -l  cluster-config/apps/devspaces\ntotal 36\n-rw-rw-r--. 1 user user 602 Oct 12 14:19 cert-manager-operator.yaml\n-rw-rw-r--. 1 user user 612 Oct 12 14:19 devspaces-instance.yaml\n-rw-rw-r--. 1 user user 611 Oct 12 14:19 devspaces-operator.yaml\n-rw-rw-r--. 1 user user 590 Oct 12 14:19 gitlab-instance.yaml\n-rw-rw-r--. 1 user user 590 Oct 12 14:19 gitlab-operator.yaml\n-rw-rw-r--. 1 user user 668 Oct 12 14:19 openshift-container-storage-noobaa.yaml\n-rw-rw-r--. 1 user user 682 Oct 12 14:19 openshift-data-foundation-operator.yaml\n-rw-rw-r--. 1 user user 652 Oct 12 14:19 quay-registry-instance.yaml\n-rw-rw-r--. 1 user user 656 Oct 12 14:19 quay-registry-operator.yaml\n```\n\n`Change the Domain`\n```ssh\n$ cat cluster-config/gitlab/instances/patch-gitlab-domain.yaml\n apiVersion: apps.gitlab.com/v1beta1\n kind: GitLab\n metadata:\n   name: gitlab\n   namespace: gitlab-system\n spec:\n   chart:\n     values:\n       global:\n         hosts:\n           domain: apps.cluster-xxxxx.xxxxx.sandbox0000.opentlc.com\n```\n* Configure Cluster\n```sh\noc apply -k cluster-config/apps/devspaces\n```\n\n#### **Demo Steps:**\n## Building the Applications\n\n### For `service-a`\n\n1. **Navigate to the `service-a` directory:**\n   ```sh\n   cd service-a\n   ```\n\n2. **Build the application:**\n   ```sh\n   ./mvnw clean package -Dnative\n   ```\n\n3. Login to Quay registry\n  ```sh\n  docker login quay-registry-quay-quay-registry.apps.your-ocp4-cluster.com\n  ```\n\n4. **Build the Docker image:**\n  ![20241012090915](https://i.imgur.com/UJgjwrl.png)\n   ```sh\n   docker build -t quay-registry-quay-quay-registry.apps.your-ocp4-cluster.com/service-a:latest .\n   ```\n\n5. **Push the Docker image to your registry:**\n   ```sh\n   docker push quay-registry-quay-quay-registry.apps.your-ocp4-cluster.com/service-a:latest\n   ```\n\n### For `service-b`\n\n1. **Navigate to the `service-b` directory:**\n   ```sh\n   cd ../service-b\n   ```\n\n2. **Build the application:**\n   ```sh\n   ./mvnw clean package -Dnative\n   ```\n\n3. **Build the Docker image:**\n   ![20241012091450](https://i.imgur.com/ViemEOk.png)\n   ```sh\n   docker build -t quay-registry-quay-quay-registry.apps.your-ocp4-cluster.com/service-b:latest .\n   ```\n\n4. **Push the Docker image to your registry:**\n   ```sh\n   docker push quay-registry-quay-quay-registry.apps.your-ocp4-cluster.com/service-b:latest\n   ```\n\n## Testing the Applications Locally\n\n### For `service-a`\n\n1. **Run the application locally:**\n   ```sh\n   ./mvnw quarkus:dev\n   ```\n\n2. **Test the endpoint:**\n   ```sh\n   curl http://localhost:8080/quote/isaac-newton\n   ```\n\n### For `service-b`\n\n1. **Run the application locally:**\n   ```sh\n   ./mvnw quarkus:dev\n   ```\n\n2. **Test the endpoint:**\n   ```sh\n   curl http://localhost:8080/hello\n   ```\n\n## Deploying the Applications Using Kustomize\n### Update the following files\n```sh\n$ cat cluster-config/service-a/patch-pull-secret-data.yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: quay-pull-secret\n  namespace: microservice-demo\ndata:\n  .dockerconfigjson: CHANGEME\n```\n\n```sh\n$ cat cluster-config/service-a/patch-image.yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: service-a\nspec:\n  template:\n    spec:\n      containers:\n      - name: service-a\n        image: quay-registry-quay-quay-registry.apps.cluster-xxxxx.xxxxx.sandbox0000.opentlc.com/user1/service-a\n```\n\n```sh\n$ cat cluster-config/service-b/patch-image.yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: service-b\nspec:\n  template:\n    spec:\n      containers:\n      - name: service-b\n        image: quay-registry-quay-quay-registry.apps.cluster-xxxxx.xxxxx.sandbox0000.opentlc.com/user1/service-b\n```\n\n### Example Deployment and Service for `service-a`\n```sh\n# Test the configuration\nkustomize build cluster-config/service-a\n\n# Deploy the configurtation\n oc apply -k cluster-config/service-a\n```\n\n### Example Deployment and Service for `service-b`\n```sh\n# Test the configuration\nkustomize build cluster-config/service-b\n\n# Deploy the configurtation\noc apply -k cluster-config/service-b\n```\n\n## Testing the Integration\n\nOnce the services are deployed, you can test the integration by accessing the endpoints of `service-a` and `service-b`.\n\n### Testing service-a\n```\n$ curl -w '\\n' https://$(oc get routes -n microservice-demo | grep service-a | awk '{print $2}')/quote/nikola-tesla\nThe present is theirs; the future, for which I have really worked, is mine. - Nikola Tesla\n```\n\n### Testing service-b\n```\n$ curl -w '\\n' https://$(oc get routes -n microservice-demo | grep service-b | awk '{print $2}')/quote/sean-gerety\nThe technology you use impresses no one. The experience you create with it is everything. - Sean Gerety\n```\n\n# Bonus\n* Integrate the service with ArgoCD so it is integrated with the cluster deployment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Focp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focp-devspaces-gamification%2Fquarkus-microservices-kustomize-openshift-argocd/lists"}