diff --git a/Chart.yaml b/Chart.yaml index 33380a0..8585ae1 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -3,7 +3,7 @@ description: A Helm chart to build and deploy a Cloud Pattern via the patterns o keywords: - pattern name: pattern-install -version: 0.0.18 +version: 0.0.19 home: https://github.com/validatedpatterns/pattern-install-chart maintainers: - name: Validated Patterns Team diff --git a/README.md b/README.md index 1e10e1a..9d45868 100644 --- a/README.md +++ b/README.md @@ -34,10 +34,15 @@ This chart is used by the Validated Patterns installation script that can be fou | main.gitea.helmRepoUrl | string | `"https://charts.validatedpatterns.io/"` | Helm Repository URL for the gitea chart | | main.gitops | object | depends on the individual settings | Settings related to the gitops operator | | main.gitops.additionalArgoAdmins | string | `""` | Comma-separated list of additional ArgoCD admin groups. Only used when argoRBAC is not set. | +| main.gitops.applicationHealthCheckEnabled | string | `""` | Set to "true" to have the patterns operator restore the ArgoCD Application resource health check (dropped in ArgoCD 1.8). Required for app-of-apps sync-wave ordering: without it the root Application treats child Applications as healthy and applies all waves at once. The operator defaults this to false, so it must be set explicitly. | | main.gitops.argoRBAC | string | `""` | Full ArgoCD RBAC spec as a YAML string. When set, it completely overrides the default RBAC policy and additionalArgoAdmins is ignored. | | main.gitops.channel | string | `"gitops-1.21"` | Default channel to install the gitops operator from | | main.gitops.customArgoYaml | string | `""` | Arbitrary ArgoCD .spec YAML to deep-merge into the operator-built ArgoCD CR. Allows customizing any part of the ArgoCD spec without requiring individual config keys. | +| main.gitops.customHealthChecks | string | `""` | Additional resource health checks for the ArgoCD CR, as a YAML list string. Appended to the operator's built-in checks (PVC, Subscription, and Application when applicationHealthCheckEnabled is true). | +| main.gitops.csv | string | `""` | Starting CSV for the gitops operator install. Defaults to the operator's own default. | +| main.gitops.installApprovalPlan | string | `""` | Install plan approval mode for the gitops operator subscription (Automatic or Manual). Defaults to the operator's own default. | | main.gitops.operatorSource | string | `"redhat-operators"` | Source to be used to install the gitops operator from | +| main.gitops.sourceNamespace | string | `""` | Namespace of the catalog source the gitops operator is installed from. Defaults to the operator's own default (openshift-marketplace). | | main.multiSourceConfig.clusterGroupChartVersion | string | `nil` | The clustergroup chart version to be used when deploying a pattern (defaults to 0.8.*) | | main.multiSourceConfig.enabled | bool | `false` | Enables a multisource configuration for the clustergroup chart | | main.multiSourceConfig.helmRepoUrl | string | `nil` | The URL of the VP helm charts repository (defaults to https://charts.validatedpatterns.io) | diff --git a/templates/pattern-operator-configmap.yaml b/templates/pattern-operator-configmap.yaml index 7147009..2358b9e 100644 --- a/templates/pattern-operator-configmap.yaml +++ b/templates/pattern-operator-configmap.yaml @@ -21,8 +21,22 @@ data: gitops.customArgoYaml: | {{ .Values.main.gitops.customArgoYaml | indent 4 }} {{- end }} + {{- if .Values.main.gitops.applicationHealthCheckEnabled }} + gitops.applicationHealthCheckEnabled: {{ .Values.main.gitops.applicationHealthCheckEnabled | quote }} + {{- end }} + {{- if .Values.main.gitops.customHealthChecks }} + gitops.customHealthChecks: | +{{ .Values.main.gitops.customHealthChecks | indent 4 }} + {{- end }} + {{- if .Values.main.gitops.sourceNamespace }} + gitops.sourceNamespace: {{ .Values.main.gitops.sourceNamespace }} + {{- end }} + {{- if .Values.main.gitops.installApprovalPlan }} + gitops.installApprovalPlan: {{ .Values.main.gitops.installApprovalPlan }} + {{- end }} + {{- if .Values.main.gitops.csv }} + gitops.csv: {{ .Values.main.gitops.csv }} + {{- end }} - # gitops.sourceNamespace: GitOpsDefaultCatalogSourceNamespace - # gitops.installApprovalPlan: GitOpsDefaultApprovalPlan # gitops.ManualSync: GitOpsDefaultManualSync # gitops.name: GitOpsDefaultPackageName diff --git a/tests/pattern_operator_configmap_test.yaml b/tests/pattern_operator_configmap_test.yaml index 47a581f..de92b62 100644 --- a/tests/pattern_operator_configmap_test.yaml +++ b/tests/pattern_operator_configmap_test.yaml @@ -102,6 +102,86 @@ tests: - exists: path: data["gitops.customArgoYaml"] + - it: Should not include gitops.applicationHealthCheckEnabled by default + asserts: + - notExists: + path: data["gitops.applicationHealthCheckEnabled"] + + - it: Should set gitops.applicationHealthCheckEnabled as a string + set: + main: + gitops: + applicationHealthCheckEnabled: "true" + asserts: + - equal: + path: data["gitops.applicationHealthCheckEnabled"] + value: "true" + + - it: Should not include gitops.customHealthChecks by default + asserts: + - notExists: + path: data["gitops.customHealthChecks"] + + - it: Should set gitops.customHealthChecks + set: + main: + gitops: + customHealthChecks: | + - group: example.com + kind: MyKind + check: | + hs = {} + hs.status = "Healthy" + return hs + asserts: + - exists: + path: data["gitops.customHealthChecks"] + + - it: Should not include gitops.sourceNamespace by default + asserts: + - notExists: + path: data["gitops.sourceNamespace"] + + - it: Should set gitops.sourceNamespace + set: + main: + gitops: + sourceNamespace: openshift-marketplace + asserts: + - equal: + path: data["gitops.sourceNamespace"] + value: openshift-marketplace + + - it: Should not include gitops.installApprovalPlan by default + asserts: + - notExists: + path: data["gitops.installApprovalPlan"] + + - it: Should set gitops.installApprovalPlan + set: + main: + gitops: + installApprovalPlan: Manual + asserts: + - equal: + path: data["gitops.installApprovalPlan"] + value: Manual + + - it: Should not include gitops.csv by default + asserts: + - notExists: + path: data["gitops.csv"] + + - it: Should set gitops.csv + set: + main: + gitops: + csv: openshift-gitops-operator.v1.22.0 + asserts: + - equal: + path: data["gitops.csv"] + value: openshift-gitops-operator.v1.22.0 + - it: Should set gitea parameters set: main: diff --git a/values.yaml b/values.yaml index 6db495f..ca4a44a 100644 --- a/values.yaml +++ b/values.yaml @@ -34,6 +34,25 @@ main: # ArgoCD CR. Allows customizing any part of the ArgoCD spec without # requiring individual config keys. customArgoYaml: "" + # -- Set to "true" to have the patterns operator restore the ArgoCD + # Application resource health check (dropped in ArgoCD 1.8). Required for + # app-of-apps sync-wave ordering: without it the root Application treats + # child Applications as healthy and applies all waves at once. The operator + # defaults this to false, so it must be set explicitly. + applicationHealthCheckEnabled: "" + # -- Additional resource health checks for the ArgoCD CR, as a YAML list + # string. Appended to the operator's built-in checks (PVC, Subscription, + # and Application when applicationHealthCheckEnabled is true). + customHealthChecks: "" + # -- Namespace of the catalog source the gitops operator is installed + # from. Defaults to the operator's own default (openshift-marketplace). + sourceNamespace: "" + # -- Install plan approval mode for the gitops operator subscription + # (Automatic or Manual). Defaults to the operator's own default. + installApprovalPlan: "" + # -- Starting CSV for the gitops operator install. Defaults to the + # operator's own default. + csv: "" # -- Settings related to the in-cluster gitea installation gitea: