11#! /bin/sh
22
3- export TUTORIAL_HOME=$( pwd) /../
3+ SCRIPT_DIR=" $( dirname -- " $0 " ; ) "
4+ export TUTORIAL_HOME=$SCRIPT_DIR /../
45DNS_DOMAIN=nip.io
56KNATIVE_EVENTING_KAFKA_VERSION=v1.8.1
67KNATIVE_SERVING_VERSION=v1.8.3
@@ -14,11 +15,36 @@ function confirm() {
1415 echo
1516}
1617
17- echo " This script automatically install and configure: Knative, Strimzi Kafka, Kourier Ingress, Contour Ingress Controller, Nexus and Camel-K on a Minikube Environment"
18+ echo "
19+ =========================================
20+ This script assumes you have Minikube properly installed and will automatically install and configure:
21+
22+ * Knative (Serving and Eventing),
23+ * Kafka Cluster (using Strimzi Operator),
24+ * Kourier (Knative Serving) Ingress (a lightweight alternative for the Istio ingress),
25+ * Contour (Kubernetes) Ingress,
26+ * Nexus (Maven Repo Manager),
27+ * Camel-K Operator
28+
29+ on your local active cluster instance.
30+ =========================================
31+ "
1832confirm
1933
2034echo
21- echo " Install Knative Serving ($KNATIVE_SERVING_VERSION ) and Eventing ($KNATIVE_EVENTING_VERSION ) CRDs..."
35+ echo " >>> Check Minikube status"
36+ echo
37+ minikube -p $MINIKUBE_PROFILE status
38+ if [ $? -eq 0 ]; then
39+ echo " Ok!"
40+ else
41+ echo " Minikube profile $MINIKUBE_PROFILE not started."
42+ echo " Make sure to create and start it first!"
43+ exit 1
44+ fi
45+
46+ echo
47+ echo " >>> Install Knative Serving ($KNATIVE_SERVING_VERSION ) and Eventing ($KNATIVE_EVENTING_VERSION ) CRDs..."
2248confirm
2349kubectl apply \
2450 --filename https://github.com/knative/serving/releases/download/knative-$KNATIVE_SERVING_VERSION /serving-crds.yaml \
@@ -39,7 +65,7 @@ kubectl api-resources --api-group='sources.knative.dev'
3965
4066echo
4167echo " ----"
42- echo " Install Knative Serving ($KNATIVE_SERVING_VERSION )..."
68+ echo " >>> Install Knative Serving ($KNATIVE_SERVING_VERSION )..."
4369confirm
4470kubectl apply \
4571 --filename https://github.com/knative/serving/releases/download/knative-$KNATIVE_SERVING_VERSION /serving-core.yaml
@@ -52,20 +78,23 @@ kubectl rollout status deploy controller -n knative-serving
5278kubectl rollout status deploy activator -n knative-serving
5379kubectl rollout status deploy autoscaler -n knative-serving
5480kubectl rollout status deploy webhook -n knative-serving
81+ echo
5582kubectl get pods -n knative-serving
5683
84+ echo
5785echo " ----"
58- echo " Install Kourier Ingress Gateway ($KOURIER_VERSION )"
86+ echo " >>> Install Kourier Ingress Gateway ($KOURIER_VERSION )"
5987confirm
6088kubectl apply \
6189 --filename https://github.com/knative/net-kourier/releases/download/knative-$KOURIER_VERSION /kourier.yaml
6290
63- sleep 2
91+ sleep 5
6492
6593echo
6694echo " Kourier deployment status"
67- kubectl rollout status deploy 3scale-kourier-control -n knative-serving
6895kubectl rollout status deploy 3scale-kourier-gateway -n kourier-system
96+ kubectl rollout status deploy 3scale-kourier-control -n knative-serving
97+ echo
6998kubectl get pods --all-namespaces -l ' app in(3scale-kourier-gateway,3scale-kourier-control)'
7099
71100echo
@@ -77,16 +106,17 @@ kubectl patch configmap/config-network \
77106
78107echo
79108echo " ----"
80- echo " Install and Configure Contour Ingress Controller"
109+ echo " >>> Install and Configure Contour Ingress Controller"
81110confirm
82111kubectl apply \
83112 --filename https://projectcontour.io/quickstart/contour.yaml
84113
85114sleep 2
115+ echo
86116kubectl get pods -n projectcontour
87117
88118echo
89- echo " create an Ingress to Kourier Ingress Gateway..."
119+ echo " >>> Create an Ingress to Kourier Ingress Gateway..."
90120cat << EOF | kubectl apply -n kourier-system -f -
91121apiVersion: networking.k8s.io/v1
92122kind: Ingress
@@ -107,7 +137,7 @@ spec:
107137EOF
108138
109139echo
110- echo " Configure Knative to use the kourier-ingress Gateway"
140+ echo " >>> Configure Knative to use the kourier-ingress Gateway"
111141ksvc_domain=" \" data\" :{\" " $( minikube -p $MINIKUBE_PROFILE ip) " .$DNS_DOMAIN \" : \"\" }"
112142kubectl patch configmap/config-domain \
113143 -n knative-serving \
@@ -116,7 +146,7 @@ kubectl patch configmap/config-domain \
116146
117147echo
118148echo " ----"
119- echo " Install Knative Eventing ($KNATIVE_EVENTING_VERSION ) resources"
149+ echo " >>> Install Knative Eventing ($KNATIVE_EVENTING_VERSION ) resources"
120150confirm
121151kubectl apply \
122152 --filename \
@@ -136,23 +166,25 @@ kubectl rollout status deploy mt-broker-controller -n knative-eventing
136166kubectl rollout status deploy mt-broker-filter -n knative-eventing
137167kubectl rollout status deploy mt-broker-filter -n knative-eventing
138168
169+ echo
139170kubectl get pods -n knative-eventing
140171
141172sleep 3
142173
143174echo
144175echo " ----"
145- echo " Create Tutorial Namespace"
176+ echo " >>> Create Tutorial Namespace"
146177confirm
147178kubectl create namespace knativetutorial
179+ echo
148180kubens knativetutorial
149181
150182echo " Minikube Docker env"
151183eval $( minikube docker-env)
152184
153185echo
154186echo " ----"
155- echo " Install Apache Camel K"
187+ echo " >>> Install Apache Camel K"
156188confirm
157189echo
158190echo " Configure Maven Settings pointing to a local Nexus Instance to be used by the Camel-K Operator..."
@@ -161,63 +193,75 @@ kubectl create configmap \
161193 --from-file=settings.xml=" $TUTORIAL_HOME /install/utils/camel-k-maven-settings.xml"
162194
163195echo
164- echo " Install Camel-K Operator..."
196+ echo " >>> Enable image registry addon on Minikube"
197+ minikube -p $MINIKUBE_PROFILE addons enable registry
198+
199+ echo
200+ echo " >>> Install Camel-K Operator..."
165201kamel install \
166202 --namespace knativetutorial \
167203 --olm=false \
168- --maven-cli-option=" -e, --no-transfer-progress, -Dstyle.color=never" \
204+ --maven-cli-option=" -e" \
205+ --maven-cli-option=" --no-transfer-progress" \
206+ --maven-cli-option=" -Dstyle.color=never" \
169207 --maven-settings=" configmap:my-camel-k-maven-settings/settings.xml" \
170208 --wait
171209
172210echo
173211echo " ----"
174- echo " Deploy Nexus"
212+ echo " >>> Deploy Nexus"
175213confirm
176214kubectl apply -n knativetutorial -f $TUTORIAL_HOME /install/utils/nexus.yaml
177215
178216sleep 10
217+ echo
179218kubectl get -n knativetutorial pods
180219
181220echo
182221echo " Get nexus Admin pwd"
183222export NEXUS_POD=$( kubectl -n knativetutorial get pods \
184223 -lapp=nexus -ojsonpath=' {.items[0].metadata.name}' )
185224kubectl exec $NEXUS_POD -- cat /nexus-data/admin.password
186-
187225minikube -p $MINIKUBE_PROFILE service -n knativetutorial nexus
188226
189227echo
190228echo " ----"
191- echo " Deploy Kafka through Strimzi Operator ($STRIMZI_OP_VERSION )"
229+ echo " >>> Deploy Kafka through Strimzi Operator ($STRIMZI_OP_VERSION )"
192230confirm
193231kubectl create namespace kafka
194232
195233curl -L https://github.com/strimzi/strimzi-kafka-operator/releases/download/$STRIMZI_OP_VERSION /strimzi-cluster-operator-$STRIMZI_OP_VERSION .yaml \
196234| sed ' s/namespace:.*/namespace: kafka/' \
197235| kubectl apply -n kafka -f -
198236
237+ echo
199238kubectl api-resources --api-group=' kafka.strimzi.io'
200239
201240echo
202- echo " create a Kafka Cluster"
241+ echo " >>> Create a Kafka Cluster"
203242kubectl -n kafka apply -f $TUTORIAL_HOME /eventing/kafka-broker-my-cluster.yaml
204243
244+ echo
205245kubectl get pods -n kafka
206246
207247echo
208- echo " Deploy Knative Eventing KafkaSource ($KNATIVE_EVENTING_KAFKA_VERSION )"
248+ echo " >>> Deploy Knative Eventing KafkaSource ($KNATIVE_EVENTING_KAFKA_VERSION )"
209249kubectl apply -f https://github.com/knative-sandbox/eventing-kafka/releases/download/knative-$KNATIVE_EVENTING_KAFKA_VERSION /source.yaml
210250
211251echo
212- echo " deploy a Knative Kafka Channel"
252+ echo " >>> Deploy a Knative Kafka Channel"
213253curl -L " https://github.com/knative-sandbox/eventing-kafka/releases/download/knative-$KNATIVE_EVENTING_KAFKA_VERSION /channel-consolidated.yaml" \
214254 | sed ' s/REPLACE_WITH_CLUSTER_URL/my-cluster-kafka-bootstrap.kafka:9092/' \
215255 | kubectl apply --filename -
216256
257+ echo
217258kubectl get pods -n knative-eventing
218259kn source list-types
219260
220261echo
221262echo " ----"
222- echo " Using Kafka Channel as Default Knative Channel"
223- kubectl apply -f $TUTORIAL_HOME /eventing/default-channel-config.yaml
263+ echo " >>> Using Kafka Channel as Default Knative Channel"
264+ kubectl apply -f $TUTORIAL_HOME /eventing/default-channel-config.yaml
265+
266+ echo
267+ echo " All set!"
0 commit comments