GitOps source-of-truth repository for Integration Hub platform and workloads.
This repository is consumed by OpenShift GitOps (Argo CD).
Pipeline task update-gitops commits image tag updates here.
platform/apps/**: all app deployment manifests and overlaysplatform/namespaces/**: project namespaces and Argo role bindingsplatform/3scale/**: 3scale product/backend/activedoc/mapping resourcesplatform/gitops/**: Argo app-of-apps manifestsplatform/tekton/base/**: Argo-managed Tekton stack manifests
- Java source code
- Maven settings with credentials
- local test artifacts
- generated runtime secrets
Root application:
platform/gitops/root-application.yaml
Child applications:
platform/gitops/apps/namespaces.yamlplatform/gitops/apps/tekton.yamlplatform/gitops/apps/integration-hub.yamlplatform/gitops/apps/d7i-soap.yamlplatform/gitops/apps/ehurt.yamlplatform/gitops/apps/ocipi-viewer.yamlplatform/gitops/apps/camel-integration.yamlplatform/gitops/apps/three-scale.yaml
flowchart TB
CI[OpenShift Pipelines<br/>update-gitops task] -->|commit image tag| G[GitOps repo]
G --> ROOT[Argo root application]
ROOT --> APPS[Argo child applications]
APPS --> NS1[integration-hub-ns]
APPS --> NS2[d7i-soap-ns]
APPS --> NS3[ehurt-ns]
APPS --> NS4[ocipi-viewer-ns]
APPS --> NS5[camel-integration-ns]
APPS --> NS6[ci-pipelines-ns]
APPS --> NS7[3scale]
sequenceDiagram
participant Tekton as Tekton CI
participant Repo as GitOps Repository
participant Root as Argo Root App
participant Child as Argo Child Apps
participant Cluster as OpenShift Cluster
Tekton->>Repo: commit kustomize image tag
Root->>Repo: detect new revision
Root->>Child: sync applications
Child->>Cluster: apply manifests
Cluster-->>Child: health/status
Child-->>Root: synced + healthy
oc -n openshift-gitops apply -f platform/gitops/root-application.yamloc -n openshift-gitops get applications
oc -n openshift-gitops get application integration-hub-platform-root -o widegit log --oneline -n 20Expected commit style from CI:
ci: update apps/integration-hub-service image to <tag>ci: update demo-systems/d7i-soap-service image to <tag>ci: update demo-systems/ehurt-service image to <tag>ci: update demo-systems/ocipi-service image to <tag>
Edit these files:
platform/apps/integration-hub/overlays/prod/kustomization.yamlplatform/apps/d7i-soap/overlays/prod/kustomization.yamlplatform/apps/ehurt/overlays/prod/kustomization.yamlplatform/apps/ocipi-viewer/overlays/prod/kustomization.yaml
Then commit and push.
oc -n openshift-gitops annotate application integration-hub-platform-root argocd.argoproj.io/refresh=hard --overwriteplatform/3scale/base/mapping-rule.yaml is managed declaratively.
The 3scale app may become degraded or APIcast route can return 404 / No Mapping Rule matched.
In this case, create mapping rules through 3scale Admin API and redeploy APIcast config.
platform/tekton/base/tasks/task-update-kustomize-image.yaml must clone into an isolated dir (repo-gitops) so it never reuses app source checkout.
If this regresses, update-gitops fails with path errors (platform/apps/.../kustomization.yaml.tmp: No such file or directory).
After each platform update:
oc -n openshift-gitops get applicationsall app entriesSynced.oc -n ci-pipelines-ns get pipelinerunsnew runs complete.oc -n integration-hub-ns get podsand other app namespaces are healthy.- 3scale route requests resolve with expected auth + mapping behavior.
Recommended prefixes:
feat(gitops): ...for new deploy capabilitiesfix(gitops): ...for deployment bug fixeschore(gitops): ...for non-functional cleanupci: update ... image to ...reserved for automated pipeline commits