@@ -11,6 +11,11 @@ KNATIVE_EVENTING_VERSION=v0.3.0
1111
1212INSTALL_SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " > /dev/null && pwd ) "
1313
14+ CMD=kubectl
15+ if hash oc 2> /dev/null; then
16+ CMD=$_
17+ fi
18+
1419# Loops until duration (car) is exceeded or command (cdr) returns non-zero
1520function timeout() {
1621 SECONDS=0; TIMEOUT=$1 ; shift
@@ -22,24 +27,44 @@ function timeout() {
2227
2328# Waits for all pods in the given namespace to complete successfully.
2429function wait_for_all_pods {
25- timeout 300 " oc get pods -n $1 2>&1 | grep -v -E '(Running|Completed|STATUS)'"
30+ timeout 300 " $CMD get pods -n $1 2>&1 | grep -v -E '(Running|Completed|STATUS)'"
31+ }
32+
33+ function show_server {
34+ if [ " $CMD " = " oc" ]; then
35+ $CMD whoami --show-server
36+ else
37+ $CMD cluster-info | head -1
38+ fi
2639}
2740
2841function check_minishift {
29- (hash minishift && oc whoami --show-server | grep " $( minishift ip) " ) > /dev/null 2>&1
42+ (hash minishift &&
43+ minishift ip | grep -oE " \b([0-9]{1,3}\.){3}[0-9]{1,3}\b" &&
44+ show_server | grep " $( minishift ip) "
45+ ) > /dev/null 2>&1
46+ }
47+
48+ function check_minikube {
49+ (hash minikube &&
50+ minikube ip | grep -oE " \b([0-9]{1,3}\.){3}[0-9]{1,3}\b" &&
51+ show_server | grep " $( minikube ip) "
52+ ) > /dev/null 2>&1
3053}
3154
3255function check_openshift_4 {
33- oc api-resources | grep machineconfigs | grep machineconfiguration.openshift.io > /dev/null 2>&1
56+ $CMD api-resources | grep machineconfigs | grep machineconfiguration.openshift.io > /dev/null 2>&1
3457}
3558
3659function check_operatorgroups {
37- oc get crd operatorgroups.operators.coreos.com > /dev/null 2>&1
60+ $CMD get crd operatorgroups.operators.coreos.com > /dev/null 2>&1
3861}
3962
4063function enable_admission_webhooks {
4164 if check_openshift_4; then
42- echo " Detected OpenShift 4 - skipping enabling admission webhooks."
65+ echo " Detected OpenShift 4 - skipping enabling admission webhooks"
66+ elif check_minikube; then
67+ echo " Detected minikube - assuming admission webhooks enabled via --extra-config"
4368 elif check_minishift; then
4469 echo " Detected minishift - checking if admission webhooks are enabled."
4570 if ! minishift openshift config view --target=kube | grep ValidatingAdmissionWebhook > /dev/null; then
@@ -72,7 +97,7 @@ function enable_admission_webhooks {
7297 else
7398 echo " Attempting to enable admission webhooks via SSH."
7499 KUBE_SSH_USER=${KUBE_SSH_USER:- cloud-user}
75- API_SERVER=$( oc config view --minify | grep server | awk -F' //' ' {print $2}' | awk -F' :' ' {print $1}' )
100+ API_SERVER=$( $CMD config view --minify | grep server | awk -F' //' ' {print $2}' | awk -F' :' ' {print $1}' )
76101
77102 ssh $KUBE_SSH_USER @$API_SERVER -i $KUBE_SSH_KEY /bin/bash << - EOF
78103 sudo -i
@@ -121,7 +146,7 @@ function install_olm {
121146 if check_openshift_4; then
122147 echo " Detected OpenShift 4 - skipping OLM installation."
123148 OLM_NS=" openshift-operator-lifecycle-manager"
124- elif oc get ns " $OLM_NS " ; then
149+ elif $CMD get ns " $OLM_NS " 2> /dev/null ; then
125150 echo " Detected OpenShift 3 with OLM already installed."
126151 # we'll assume this is v3.11.0, which doesn't support
127152 # OperatorGroups, or ClusterRoles in the CSV, so...
@@ -136,32 +161,37 @@ function install_olm {
136161 rm -rf " $OLM_DIR "
137162 git clone https://github.com/operator-framework/operator-lifecycle-manager " $OLM_DIR "
138163 pushd $OLM_DIR ; git checkout eaf605cca864e; popd
139- for i in " $OLM_DIR " /deploy/okd/manifests/latest/* .crd.yaml; do oc apply -f $i ; done
140- for i in $( find " $OLM_DIR /deploy/okd/manifests/latest/" -type f ! -name " *crd.yaml" | sort) ; do oc create -f $i ; done
164+ for i in " $OLM_DIR " /deploy/okd/manifests/latest/* .crd.yaml; do $CMD apply -f $i ; done
165+ for i in $( find " $OLM_DIR /deploy/okd/manifests/latest/" -type f ! -name " *crd.yaml" | sort) ; do $CMD create -f $i ; done
141166 wait_for_all_pods openshift-operator-lifecycle-manager
142167 # perms required by the OLM console: $OLM_DIR/scripts/run_console_local.sh
143- oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:kube-system:default
168+ # oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:kube-system:default
144169 # check our namespace
145170 OLM_NS=$( grep " catalog_namespace:" " $OLM_DIR /deploy/okd/values.yaml" | awk ' {print $2}' )
146171 fi
147172 # and finally apply the catalog sources
148- oc apply -f " $ROOT_DIR /knative-operators.catalogsource.yaml" -n " $OLM_NS "
149- oc apply -f " $ROOT_DIR /maistra-operators.catalogsource.yaml" -n " $OLM_NS "
173+ $CMD apply -f " $ROOT_DIR /knative-operators.catalogsource.yaml" -n " $OLM_NS "
174+ $CMD apply -f " $ROOT_DIR /maistra-operators.catalogsource.yaml" -n " $OLM_NS "
150175}
151176
152177function install_istio {
153- # istio
154- oc create ns istio-operator
155- if check_operatorgroups; then
156- cat << -EOF | oc apply -f -
178+ if check_minikube; then
179+ echo " Detected minikube - incompatible with Maistra operator, so installing upstream istio."
180+ $CMD apply -f " https://github.com/knative/serving/releases/download/${KNATIVE_SERVING_VERSION} /istio-crds.yaml" && \
181+ $CMD apply -f " https://github.com/knative/serving/releases/download/${KNATIVE_SERVING_VERSION} /istio.yaml"
182+ wait_for_all_pods istio-system
183+ else
184+ $CMD create ns istio-operator
185+ if check_operatorgroups; then
186+ cat << -EOF | $CMD apply -f -
157187 apiVersion: operators.coreos.com/v1alpha2
158188 kind: OperatorGroup
159189 metadata:
160190 name: istio-operator
161191 namespace: istio-operator
162192 EOF
163- fi
164- cat << -EOF | oc apply -f -
193+ fi
194+ cat << -EOF | $CMD apply -f -
165195 apiVersion: operators.coreos.com/v1alpha1
166196 kind: Subscription
167197 metadata:
@@ -172,9 +202,9 @@ function install_istio {
172202 name: maistra
173203 source: maistra-operators
174204 EOF
175- wait_for_all_pods istio-operator
205+ wait_for_all_pods istio-operator
176206
177- cat << -EOF | oc apply -f -
207+ cat << -EOF | $CMD apply -f -
178208 apiVersion: istio.openshift.com/v1alpha1
179209 kind: Installation
180210 metadata:
@@ -191,32 +221,33 @@ function install_istio {
191221 prefix: kiali/
192222 version: v0.7.1
193223 EOF
194- timeout 900 ' oc get pods -n istio-system && [[ $(oc get pods -n istio-system | grep openshift-ansible-istio-installer | grep -c Completed) -eq 0 ]]'
224+ timeout 900 ' $CMD get pods -n istio-system && [[ $($CMD get pods -n istio-system | grep openshift-ansible-istio-installer | grep -c Completed) -eq 0 ]]'
195225
196- # Scale down unused services deployed by the istio operator. The
197- # jaeger pods will fail anyway due to the elasticsearch pod failing
198- # due to "max virtual memory areas vm.max_map_count [65530] is too
199- # low, increase to at least [262144]" which could be mitigated on
200- # minishift with:
201- # minishift ssh "echo 'echo vm.max_map_count = 262144 >/etc/sysctl.d/99-elasticsearch.conf' | sudo sh"
202- oc scale -n istio-system --replicas=0 deployment/grafana
203- oc scale -n istio-system --replicas=0 deployment/jaeger-collector
204- oc scale -n istio-system --replicas=0 deployment/jaeger-query
205- oc scale -n istio-system --replicas=0 statefulset/elasticsearch
226+ # Scale down unused services deployed by the istio operator. The
227+ # jaeger pods will fail anyway due to the elasticsearch pod failing
228+ # due to "max virtual memory areas vm.max_map_count [65530] is too
229+ # low, increase to at least [262144]" which could be mitigated on
230+ # minishift with:
231+ # minishift ssh "echo 'echo vm.max_map_count = 262144 >/etc/sysctl.d/99-elasticsearch.conf' | sudo sh"
232+ $CMD scale -n istio-system --replicas=0 deployment/grafana
233+ $CMD scale -n istio-system --replicas=0 deployment/jaeger-collector
234+ $CMD scale -n istio-system --replicas=0 deployment/jaeger-query
235+ $CMD scale -n istio-system --replicas=0 statefulset/elasticsearch
236+ fi
206237}
207238
208239function install_knative_build {
209- oc create ns knative-build
240+ $CMD create ns knative-build
210241 if check_operatorgroups; then
211- cat << -EOF | oc apply -f -
242+ cat << -EOF | $CMD apply -f -
212243 apiVersion: operators.coreos.com/v1alpha2
213244 kind: OperatorGroup
214245 metadata:
215246 name: knative-build
216247 namespace: knative-build
217248 EOF
218249 fi
219- cat << -EOF | oc apply -f -
250+ cat << -EOF | $CMD apply -f -
220251 apiVersion: operators.coreos.com/v1alpha1
221252 kind: Subscription
222253 metadata:
@@ -232,17 +263,17 @@ function install_knative_build {
232263}
233264
234265function install_knative_serving {
235- oc create ns knative-serving
266+ $CMD create ns knative-serving
236267 if check_operatorgroups; then
237- cat << -EOF | oc apply -f -
268+ cat << -EOF | $CMD apply -f -
238269 apiVersion: operators.coreos.com/v1alpha2
239270 kind: OperatorGroup
240271 metadata:
241272 name: knative-serving
242273 namespace: knative-serving
243274 EOF
244275 fi
245- cat << -EOF | oc apply -f -
276+ cat << -EOF | $CMD apply -f -
246277 apiVersion: operators.coreos.com/v1alpha1
247278 kind: Subscription
248279 metadata:
@@ -258,17 +289,17 @@ function install_knative_serving {
258289}
259290
260291function install_knative_eventing {
261- oc create ns knative-eventing
292+ $CMD create ns knative-eventing
262293 if check_operatorgroups; then
263- cat << -EOF | oc apply -f -
294+ cat << -EOF | $CMD apply -f -
264295 apiVersion: operators.coreos.com/v1alpha2
265296 kind: OperatorGroup
266297 metadata:
267298 name: knative-eventing
268299 namespace: knative-eventing
269300 EOF
270301 fi
271- cat << -EOF | oc apply -f -
302+ cat << -EOF | $CMD apply -f -
272303 apiVersion: operators.coreos.com/v1alpha1
273304 kind: Subscription
274305 metadata:
0 commit comments