Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions content/patterns/rhoso-gitops/troubleshooting.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,17 @@ The pattern uses two Argo CD namespaces. List applications in each:
[source,terminal]
----
$ oc get applications -n vp-gitops
$ oc get applications -n openshift-gitops
$ oc get applications -n rhoso-gitops-standalone
----

Inspect a child application that is out of sync or unhealthy:

[source,terminal]
----
$ oc describe application <application-name> -n openshift-gitops
$ oc describe application <application-name> -n rhoso-gitops-standalone
----

Use the Argo CD UI in the `openshift-gitops` namespace to review sync waves,
Use the Argo CD UI in the `rhoso-gitops-standalone` namespace to review sync waves,
resource health, and diff details for upstream overlays.

[id="rhoso-gitops-check-pods"]
Expand Down
2 changes: 1 addition & 1 deletion modules/rhoso-gitops/rhoso-gitops-about.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ fan-out.
| Initial cluster
| Yes
| Validated Patterns clustergroup (`values-standalone.yaml`), *rhoso-gitops*
meta-chart, and child {rh-rhoso-short} Applications in `openshift-gitops`
meta-chart, and child {rh-rhoso-short} Applications in `rhoso-gitops-standalone`

| Managed clusters
| None
Expand Down
18 changes: 10 additions & 8 deletions modules/rhoso-gitops/rhoso-gitops-architecture.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,26 @@ The delivery path is:

. Validated Patterns operator reconciles the pattern clustergroup
. Parent *rhoso-gitops* Application runs in `vp-gitops` (Validated Patterns GitOps)
. Meta-chart renders child Applications in `openshift-gitops` ({gitops-title})
. Meta-chart renders child Applications in `rhoso-gitops-standalone` (dedicated Argo CD instance)
. Child apps sync upstream `example/*` overlays in order (operators, networks,
control plane, dataplane)

.GitOps application delivery and sync-wave ordering
image::rhoso-gitops/rhoso-gitops-applications.svg[{rhoso-gitops-pattern} GitOps application delivery,700]

The diagram shows the parent Application in `vp-gitops`, child Applications in
`openshift-gitops`, and the upstream Kustomize overlays they sync. Sync-wave
annotations order deployment from infrastructure operators through the data
plane.
`rhoso-gitops-standalone`, and the upstream Kustomize overlays they sync.
Sync-wave annotations order deployment from infrastructure operators through
the data plane.

[id="rhoso-gitops-dual-argocd"]
== Dual Argo CD namespaces

* The pattern operator deploys the parent *rhoso-gitops* Application into
*`vp-gitops`* (Validated Patterns GitOps).
* Child {rh-rhoso-short} Applications are created in *`openshift-gitops`*
({gitops-title} operator), per the meta-chart defaults.
* Child {rh-rhoso-short} Applications are created in *`rhoso-gitops-standalone`*,
a dedicated Argo CD instance managed by the pattern (see `applicationNamespace`
in the chart).

[id="rhoso-gitops-infrastructure-topology"]
== Infrastructure topology
Expand All @@ -59,7 +60,8 @@ image::rhoso-gitops/rhoso-gitops-infrastructure.svg[{rhoso-gitops-pattern} infra
== Application sync order

Child Applications deploy in sync-wave order when Argo CD reconciles the parent
*rhoso-gitops* Application:
*rhoso-gitops* Application. All applications use automated sync with a retry
policy by default.

[cols="2,3,1",options="header"]
|===
Expand Down Expand Up @@ -95,4 +97,4 @@ Child Applications deploy in sync-wave order when Argo CD reconciles the parent
|===

After changing overrides, confirm child apps in the Argo CD UI or with
`oc get applications -n openshift-gitops`.
`oc get applications -n rhoso-gitops-standalone`.
44 changes: 40 additions & 4 deletions modules/rhoso-gitops/rhoso-gitops-configuration.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -53,39 +53,50 @@ link:https://github.com/openstack-k8s-operators/gitops[openstack-k8s-operators/g
at the revision pinned in `overrides/values-rhoso-gitops.yaml`.

.Default upstream applications
[cols="2,2,1",options="header"]
[cols="2,2,1,1",options="header"]
|===
| Argo CD application | Upstream path | Enabled
| Argo CD application | Upstream path | Enabled | Sync

| `operator-dependencies`
| `example/dependencies`
| yes
| automated

| `openstack-operator`
| `example/openstack-operator`
| yes
| automated

| `openstack-operator-cr`
| `example/openstack-operator-cr`
| yes
| automated

| `openstack-secrets`
| not configured (`path: TODO`)
| no
| automated

| `openstack-networks`
| `example/openstack-networks`
| yes
| automated

| `openstack-controlplane`
| `example/openstack-controlplane`
| yes
| automated

| `openstack-dataplane`
| `example/openstack-dataplane`
| yes
| automated
|===

All applications include a default retry policy (5 retries with exponential
backoff from 30 seconds to 3 minutes) to handle transient failures during
sync-wave ordering.

Product, framework, upstream Git, and operator versions are listed in the pattern
repository
link:https://github.com/validatedpatterns-sandbox/rhoso-gitops/blob/main/VERSIONS.md[VERSIONS.md]
Expand All @@ -94,20 +105,45 @@ file.
[id="rhoso-gitops-pin-revision"]
== Pinning a different upstream revision

Child applications use *automated sync* by default: Argo CD reconciles them
whenever the upstream Git repository changes. If `targetRevision` points to a
branch name like `main` or `HEAD`, any push to that branch triggers an automatic
deployment, which can cause unexpected changes in production.

[IMPORTANT]
====
Always pin `targetRevision` to a *tag* or *commit hash* for stability.
====

In `overrides/values-rhoso-gitops.yaml`:

[source,yaml]
----
applications:
openstack-operator:
targetRevision: "v0.2.0"
targetRevision: "v0.2.0" # tag — recommended
openstack-controlplane:
targetRevision: "v0.2.0"
targetRevision: "abc123def456" # commit hash — also safe
----

Apply the same key under every application you want on that revision, or only
the entries you need to change; unspecified keys keep chart defaults.

[id="rhoso-gitops-disable-automated-sync"]
== Disabling automated sync for an application

To switch a specific application to manual sync, override its `syncPolicy`
without the `automated` key:

[source,yaml]
----
applications:
openstack-dataplane:
syncPolicy:
syncOptions:
- Prune=true
----

[id="rhoso-gitops-disable-stage"]
== Disabling a deployment stage

Expand Down
2 changes: 1 addition & 1 deletion modules/rhoso-gitops/rhoso-gitops-deploying.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ $ ./pattern.sh make install
[source,terminal]
----
$ oc get applications -n vp-gitops
$ oc get applications -n openshift-gitops
$ oc get applications -n rhoso-gitops-standalone
----

. After install, run the pattern health check:
Expand Down