Skip to content

Commit a17a62d

Browse files
Merge pull request #431 from stuggi/revert_revert_certmanager
Revert "Revert "Add certmanager target to install via olm""
2 parents cc5cea0 + dfa3064 commit a17a62d

File tree

2 files changed

+119
-7
lines changed

2 files changed

+119
-7
lines changed

Makefile

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# general
2-
SHELL := /bin/bash
2+
SHELL := /bin/bash
3+
OCP_RELEASE := $(shell cut -d '.' -f 1,2 <<< $(shell oc version -o json | jq -r .openshiftVersion))
34
OPERATOR_NAMESPACE ?= openstack-operators
45
NAMESPACE ?= openstack
56
PASSWORD ?= 12345678
@@ -323,7 +324,6 @@ SG_CORE_DEPL_IMG ?= unused
323324
# BMO
324325
BMO_REPO ?= https://github.com/metal3-io/baremetal-operator
325326
BMO_BRANCH ?= main
326-
CERTMANAGER_URL ?= https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml
327327
BMO_PROVISIONING_INTERFACE ?= enp6s0
328328
BMO_IRONIC_HOST ?= 192.168.122.10
329329

@@ -336,6 +336,7 @@ SWIFT_CR ?= ${OPERATOR_BASE_DIR}/swift-operator/${SWIFT}
336336

337337
# target vars for generic operator install info 1: target name , 2: operator name
338338
define vars
339+
${1}: export OCP_RELEASE=$(OCP_RELEASE)
339340
${1}: export NAMESPACE=${NAMESPACE}
340341
${1}: export OPERATOR_NAMESPACE=${OPERATOR_NAMESPACE}
341342
${1}: export SECRET=${SECRET}
@@ -449,12 +450,9 @@ input_cleanup: ## deletes the secret/CM, used by the services as input
449450
##@ CRC BMO SETUP
450451
.PHONY: crc_bmo_setup
451452
crc_bmo_setup: export IRONIC_HOST_IP=${BMO_IRONIC_HOST}
452-
crc_bmo_setup:
453+
crc_bmo_setup: certmanager
453454
$(eval $(call vars,$@))
454455
mkdir -p ${OPERATOR_BASE_DIR}
455-
oc apply -f ${CERTMANAGER_URL}
456-
timeout ${TIMEOUT} bash -c 'until [ "$$(oc get pod -l app=webhook -n cert-manager -o name)" != "" ]; do sleep 1; done'
457-
oc wait pod -n cert-manager --for condition=Ready -l app=webhook --timeout=$(TIMEOUT)
458456
pushd ${OPERATOR_BASE_DIR} && git clone ${GIT_CLONE_OPTS} $(if $(BMO_BRANCH),-b ${BMO_BRANCH}) ${BMO_REPO} "baremetal-operator" && popd
459457
pushd ${OPERATOR_BASE_DIR}/baremetal-operator && sed -i 's/eth2/${BMO_PROVISIONING_INTERFACE}/g' ironic-deployment/default/ironic_bmo_configmap.env config/default/ironic.env && popd
460458
pushd ${OPERATOR_BASE_DIR}/baremetal-operator && sed -i 's/ENDPOINT\=http/ENDPOINT\=https/g' ironic-deployment/default/ironic_bmo_configmap.env config/default/ironic.env && popd
@@ -487,7 +485,7 @@ openstack_prep: $(if $(findstring true,$(BMO_SETUP)), crc_bmo_setup) ## creates
487485
bash scripts/gen-olm.sh
488486

489487
.PHONY: openstack
490-
openstack: operator_namespace openstack_prep ## installs the operator, also runs the prep step. Set OPENSTACK_IMG for custom image.
488+
openstack: certmanager operator_namespace openstack_prep ## installs the operator, also runs the prep step. Set OPENSTACK_IMG for custom image.
491489
$(eval $(call vars,$@,openstack))
492490
oc apply -f ${OPERATOR_DIR}
493491

@@ -1861,3 +1859,31 @@ swift_deploy_cleanup: ## cleans up the service instance, Does not affect the ope
18611859
$(eval $(call vars,$@,swift))
18621860
oc kustomize ${DEPLOY_DIR} | oc delete --ignore-not-found=true -f -
18631861
rm -Rf ${OPERATOR_BASE_DIR}/swift-operator ${DEPLOY_DIR}
1862+
1863+
##@ CERT-MANAGER
1864+
.PHONY: certmanager
1865+
certmanager: export NAMESPACE=$(if $(findstring 4.10,$(OCP_RELEASE)),openshift-cert-manager,cert-manager)
1866+
certmanager: export OPERATOR_NAMESPACE=$(if $(findstring 4.10,$(OCP_RELEASE)),openshift-cert-manager-operator,cert-manager-operator)
1867+
certmanager: export CHANNEL=$(if $(findstring 4.10,$(OCP_RELEASE)),tech-preview,stable-v1)
1868+
certmanager: ## installs cert-manager operator in the cert-manager-operator namespace, cert-manager runs it cert-manager namespace
1869+
$(eval $(call vars,$@,cert-manager))
1870+
$(MAKE) operator_namespace
1871+
bash scripts/gen-olm-cert-manager.sh
1872+
oc apply -f ${OPERATOR_DIR}
1873+
while ! (oc get pod --no-headers=true -l name=cert-manager-operator -n ${OPERATOR_NAMESPACE}| grep "cert-manager-operator"); do sleep 10; done
1874+
oc wait pod -n ${OPERATOR_NAMESPACE} --for condition=Ready -l name=cert-manager-operator --timeout=$(TIMEOUT)
1875+
while ! (oc get pod --no-headers=true -l app=cainjector -n ${NAMESPACE} | grep "cert-manager-cainjector"); do sleep 10; done
1876+
oc wait pod -n ${NAMESPACE} -l app=cainjector --for condition=Ready --timeout=$(TIMEOUT)
1877+
while ! (oc get pod --no-headers=true -l app=webhook -n ${NAMESPACE} | grep "cert-manager-webhook"); do sleep 10; done
1878+
oc wait pod -n ${NAMESPACE} -l app=webhook --for condition=Ready --timeout=$(TIMEOUT)
1879+
while ! (oc get pod --no-headers=true -l app=cert-manager -n ${NAMESPACE} | grep "cert-manager"); do sleep 10; done
1880+
oc wait pod -n ${NAMESPACE} -l app=cert-manager --for condition=Ready --timeout=$(TIMEOUT)
1881+
1882+
certmanager_cleanup: export NAMESPACE=$(if $(findstring 4.10,$(OCP_RELEASE)),openshift-cert-manager,cert-manager)
1883+
certmanager_cleanup: export OPERATOR_NAMESPACE=$(if $(findstring 4.10,$(OCP_RELEASE)),openshift-cert-manager-operator,cert-manager-operator)
1884+
certmanager_cleanup:
1885+
oc delete -n ${OPERATOR_NAMESPACE} operatorgroup --all --ignore-not-found=true
1886+
oc delete -n ${OPERATOR_NAMESPACE} subscription --all --ignore-not-found=true
1887+
oc delete -n ${OPERATOR_NAMESPACE} csv --all --ignore-not-found=true
1888+
oc delete -n ${NAMESPACE} installplan --all --ignore-not-found=true
1889+
oc delete -n cert-manager deployment --all

scripts/gen-olm-cert-manager.sh

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#!/bin/bash
2+
#
3+
# Copyright 2023 Red Hat Inc.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License"); you may
6+
# not use this file except in compliance with the License. You may obtain
7+
# a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14+
# License for the specific language governing permissions and limitations
15+
# under the License.
16+
set -ex
17+
18+
if [ -z "${OPERATOR_DIR}" ]; then
19+
echo "Please set OPERATOR_DIR"; exit 1
20+
fi
21+
22+
if [ -z "${OPERATOR_NAMESPACE}" ]; then
23+
echo "Please set OPERATOR_NAMESPACE"; exit 1
24+
fi
25+
26+
if [ -z "${OCP_RELEASE}" ]; then
27+
echo "Please set OCP_RELEASE"; exit 1
28+
fi
29+
30+
if [ -z "${CHANNEL}" ]; then
31+
echo "Please set CHANNEL"; exit 1
32+
fi
33+
34+
if [ ! -d ${OPERATOR_DIR} ]; then
35+
mkdir -p ${OPERATOR_DIR}
36+
fi
37+
38+
echo OCP_RELEASE ${OCP_RELEASE}
39+
echo OPERATOR_DIR ${OPERATOR_DIR}
40+
echo OPERATOR_NAMESPACE ${OPERATOR_NAMESPACE}
41+
echo CHANNEL ${CHANNEL}
42+
43+
if [ "$OCP_RELEASE" = "4.10" ]; then
44+
cat > ${OPERATOR_DIR}/operatorgroup.yaml <<EOF_CAT
45+
apiVersion: operators.coreos.com/v1
46+
kind: OperatorGroup
47+
metadata:
48+
annotations:
49+
olm.providedAPIs: CertManager.v1alpha1.config.openshift.io,CertManager.v1alpha1.operator.openshift.io,Certificate.v1.cert-manager.io,CertificateRequest.v1.cert-manager.io,Challenge.v1.acme.cert-manager.io,ClusterIssuer.v1.cert-manager.io,Issuer.v1.cert-manager.io,Order.v1.acme.cert-manager.io
50+
generateName: cert-manager-operator-
51+
name: openshift-cert-manager-operator-nd6mt
52+
namespace: ${OPERATOR_NAMESPACE}
53+
spec: {}
54+
EOF_CAT
55+
else
56+
cat > ${OPERATOR_DIR}/operatorgroup.yaml <<EOF_CAT
57+
apiVersion: operators.coreos.com/v1
58+
kind: OperatorGroup
59+
metadata:
60+
annotations:
61+
olm.providedAPIs: CertManager.v1alpha1.operator.openshift.io,Certificate.v1.cert-manager.io,CertificateRequest.v1.cert-manager.io,Challenge.v1.acme.cert-manager.io,ClusterIssuer.v1.cert-manager.io,Issuer.v1.cert-manager.io,Order.v1.acme.cert-manager.io
62+
generateName: cert-manager-operator-
63+
name: cert-manager-operator-bccwx
64+
namespace: ${OPERATOR_NAMESPACE}
65+
spec:
66+
targetNamespaces:
67+
- ${OPERATOR_NAMESPACE}
68+
upgradeStrategy: Default
69+
EOF_CAT
70+
fi
71+
72+
cat > ${OPERATOR_DIR}/subscription.yaml <<EOF_CAT
73+
apiVersion: operators.coreos.com/v1alpha1
74+
kind: Subscription
75+
metadata:
76+
labels:
77+
operators.coreos.com/openshift-cert-manager-operator.${OPERATOR_NAMESPACE}: ""
78+
name: openshift-cert-manager-operator
79+
namespace: ${OPERATOR_NAMESPACE}
80+
spec:
81+
channel: ${CHANNEL}
82+
installPlanApproval: Automatic
83+
name: openshift-cert-manager-operator
84+
source: redhat-operators
85+
sourceNamespace: openshift-marketplace
86+
EOF_CAT

0 commit comments

Comments
 (0)