-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathdeploy-with-olm.sh
executable file
·68 lines (62 loc) · 2.01 KB
/
deploy-with-olm.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash
set -x
TARGET_NAMESPACE=${TARGET_NAMESPACE:-"openstack"}
INDEX_IMAGE=${INDEX_IMAGE:-"quay.io/openstack-k8s-operators/osp-director-operator-index:0.0.1"}
CSV_VERSION=${CSV_VERSION:-"0.0.1"}
if [ `oc get catalogsource -n "${TARGET_NAMESPACE}" --no-headers 2> /dev/null | grep osp-director | wc -l` -eq 0 ]; then
echo "Creating CatalogSource"
cat <<EOF | oc create -f -
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: osp-director-operator-index
namespace: "$TARGET_NAMESPACE"
spec:
sourceType: grpc
image: $INDEX_IMAGE
EOF
fi
echo "Wait for the catalogSource to be available"
oc wait deploy "osp-director-operator-index" --for condition=available -n ${TARGET_NAMESPACE} --timeout="360s"
echo "Waiting for packagemanifest 'osp-director-operator' to be created in namespace '${TARGET_NAMESPACE}'"
sleep 10
RETRIES="${RETRIES:-20}"
for i in $(seq 1 $RETRIES); do
oc get packagemanifest -n "${TARGET_NAMESPACE}" "osp-director-operator" && break
sleep $i
if [ "$i" -eq "${RETRIES}" ]; then
echo "packagemanifest 'osp-director-operator' was never created in namespace '${TARGET_NAMESPACE}'"
exit 1
fi
done
if [ `oc get operatorgroup -n "${TARGET_NAMESPACE}" --no-headers 2> /dev/null | wc -l` -eq 0 ]; then
echo "Creating OperatorGroup"
cat <<EOF | oc create -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: "osp-director-operator-group"
namespace: "$TARGET_NAMESPACE"
spec:
targetNamespaces:
- "$TARGET_NAMESPACE"
EOF
fi
echo "Creating Subscription"
cat <<EOF | oc create -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: osp-director-operator-subscription
namespace: $TARGET_NAMESPACE
spec:
config:
env:
- name: WATCH_NAMESPACE
value: $TARGET_NAMESPACE,openshift-machine-api,openshift-sriov-network-operator
source: osp-director-operator-index
sourceNamespace: $TARGET_NAMESPACE
name: osp-director-operator
startingCSV: osp-director-operator.v$CSV_VERSION
channel: alpha
EOF