diff --git a/.cruft.json b/.cruft.json index bfaf837..af2ca18 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,13 +1,13 @@ { "template": "https://github.com/projectsyn/commodore-component-template.git", - "commit": "a4aff6a9d004c1aad085a875c7759c8f8f1e0d3d", + "commit": "b5c430d9f4b4a4542f8ee6debf5f06d8c6a98374", "checkout": "main", "context": { "cookiecutter": { "name": "openshift4-operators", "slug": "openshift4-operators", "parameter_key": "openshift4_operators", - "test_cases": "openshift-operators-redhat openshift-operators openshift-operators-custom operator-subscription affinity-override", + "test_cases": "openshift-operators-redhat openshift-operators openshift-operators-custom operator-subscription affinity-override operator-subscription-oke", "add_lib": "y", "add_pp": "n", "add_golden": "y", diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ab83469..08a6401 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -37,6 +37,7 @@ jobs: - openshift-operators-custom - operator-subscription - affinity-override + - operator-subscription-oke defaults: run: working-directory: ${{ env.COMPONENT_NAME }} @@ -56,6 +57,7 @@ jobs: - openshift-operators-custom - operator-subscription - affinity-override + - operator-subscription-oke defaults: run: working-directory: ${{ env.COMPONENT_NAME }} diff --git a/Makefile.vars.mk b/Makefile.vars.mk index 77f34ae..d9fe414 100644 --- a/Makefile.vars.mk +++ b/Makefile.vars.mk @@ -57,4 +57,4 @@ KUBENT_IMAGE ?= ghcr.io/doitintl/kube-no-trouble:latest KUBENT_DOCKER ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --entrypoint=/app/kubent $(KUBENT_IMAGE) instance ?= openshift-operators-redhat -test_instances = tests/openshift-operators-redhat.yml tests/openshift-operators.yml tests/openshift-operators-custom.yml tests/operator-subscription.yml tests/affinity-override.yml +test_instances = tests/openshift-operators-redhat.yml tests/openshift-operators.yml tests/openshift-operators-custom.yml tests/operator-subscription.yml tests/affinity-override.yml tests/operator-subscription-oke.yml diff --git a/docs/modules/ROOT/pages/references/component-library.adoc b/docs/modules/ROOT/pages/references/component-library.adoc index f091dc9..54435a7 100644 --- a/docs/modules/ROOT/pages/references/component-library.adoc +++ b/docs/modules/ROOT/pages/references/component-library.adoc @@ -36,7 +36,7 @@ This function creates a `subscriptions.operators.coreos.com` resource in a names The result of this function can be used in the same way as resources created by `kube.libjsonnet`. -By default the components sets the nodeAffinity to infra nodes, this can be overwritten. +By default, if `facts.distribution` is set to `openshift4`, the component sets the nodeAffinity to infra nodes, this can be overwritten. See https://docs.openshift.com/container-platform/latest/nodes/scheduling/nodes-scheduler-node-affinity.html#nodes-scheduler-node-affinity-configuring-required_nodes-scheduler-node-affinity[Official Documentation] -- diff --git a/lib/openshift4-operators.libsonnet b/lib/openshift4-operators.libsonnet index c73e549..b960715 100644 --- a/lib/openshift4-operators.libsonnet +++ b/lib/openshift4-operators.libsonnet @@ -15,6 +15,9 @@ local instanceParams(instance) = local apigroup = 'operators.coreos.com'; +local is_ocp = + std.get(inv.parameters.facts, 'distribution', '') == 'openshift4'; + /** * \brief Validate instance * @@ -66,7 +69,7 @@ local subscription(name) = kube._Object(apigroup + '/v1alpha1', 'Subscription', name) { spec: { name: name, - config: { + [if is_ocp then 'config']: { affinity: { nodeAffinity: { requiredDuringSchedulingIgnoredDuringExecution: { diff --git a/tests/affinity-override.yml b/tests/affinity-override.yml index 667dddc..1f5ea42 100644 --- a/tests/affinity-override.yml +++ b/tests/affinity-override.yml @@ -2,6 +2,9 @@ applications: - openshift4-operators as affinity-override parameters: + facts: + distribution: openshift4 + affinity_override: useCustomNamespace: true subscription: diff --git a/tests/golden/operator-subscription-oke/operator-subscription-oke/apps/openshift4-operators.yaml b/tests/golden/operator-subscription-oke/operator-subscription-oke/apps/openshift4-operators.yaml new file mode 100644 index 0000000..e69de29 diff --git a/tests/golden/operator-subscription-oke/operator-subscription-oke/openshift4-operators/operator-subscription-oke.yaml b/tests/golden/operator-subscription-oke/operator-subscription-oke/openshift4-operators/operator-subscription-oke.yaml new file mode 100644 index 0000000..b6b0087 --- /dev/null +++ b/tests/golden/operator-subscription-oke/operator-subscription-oke/openshift4-operators/operator-subscription-oke.yaml @@ -0,0 +1,34 @@ +apiVersion: v1 +kind: Namespace +metadata: + annotations: + openshift.io/node-selector: '' + labels: + name: operator-subscription-oke + openshift.io/cluster-monitoring: 'false' + openshift.io/user-monitoring: 'false' + name: operator-subscription-oke +--- +apiVersion: operators.coreos.com/v1 +kind: OperatorGroup +metadata: + annotations: {} + labels: + name: operator-subscription-oke + name: operator-subscription-oke + namespace: operator-subscription-oke +--- +apiVersion: operators.coreos.com/v1alpha1 +kind: Subscription +metadata: + annotations: {} + labels: + name: foo + name: foo + namespace: operator-subscription-oke +spec: + channel: stable + installPlanApproval: Manual + name: foo + source: certified-operators + sourceNamespace: openshift-marketplace diff --git a/tests/operator-subscription-oke.yml b/tests/operator-subscription-oke.yml new file mode 100644 index 0000000..f32dbbf --- /dev/null +++ b/tests/operator-subscription-oke.yml @@ -0,0 +1,14 @@ +applications: + - openshift4-operators as operator-subscription-oke + +parameters: + facts: + distribution: oke + + operator_subscription_oke: + useCustomNamespace: true + subscription: + name: foo + channel: stable + spec: + installPlanApproval: Manual diff --git a/tests/operator-subscription.yml b/tests/operator-subscription.yml index 8540d4a..18e2559 100644 --- a/tests/operator-subscription.yml +++ b/tests/operator-subscription.yml @@ -2,6 +2,9 @@ applications: - openshift4-operators as operator-subscription parameters: + facts: + distribution: openshift4 + operator_subscription: useCustomNamespace: true subscription: