-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for ingress and automation for developers to test on mini…
…kube (#56) * add automation to create two minikube clusters * Add --endpoint flag to transfer-pvc subcommand * add hack/delete-clusters.sh * garbage collect resources after trying to follow logs * fixups: add changes to scripts from PR review Co-authored-by: David Zager <dzager@redhat.com> * update ingress endpoint to pass subdomain * fixups: update bash scripts with suggestions from code review round 2 Co-authored-by: David Zager <dzager@redhat.com> * fixups: run gofmt and goimports * bump go mod to use latest crane-lib
- Loading branch information
Alay Patel
authored
Dec 8, 2021
1 parent
f45be82
commit 6704b54
Showing
5 changed files
with
246 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#!/usr/bin/env bash | ||
set +x | ||
|
||
SRC_CLUSTER_NAME=src | ||
DEST_CLUSTER_NAME=dest | ||
|
||
SOURCE_IP=$(minikube ip -p ${SRC_CLUSTER_NAME}) | ||
DEST_IP=$(minikube ip -p ${DEST_CLUSTER_NAME}) | ||
SOURCE_IP_RANGE="${SOURCE_IP%.*}.0/24" | ||
DEST_IP_RANGE="${DEST_IP%.*}.0/24" | ||
|
||
sudo iptables -D FORWARD -p all -s $SOURCE_IP_RANGE -d $DEST_IP_RANGE -j ACCEPT | ||
sudo iptables -D FORWARD -p all -s $DEST_IP_RANGE -d $SOURCE_IP_RANGE -j ACCEPT | ||
|
||
minikube delete -p ${SRC_CLUSTER_NAME} | ||
minikube delete -p ${DEST_CLUSTER_NAME} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/usr/bin/env bash | ||
set +x | ||
|
||
SRC_CLUSTER_NAME=src | ||
DEST_CLUSTER_NAME=dest | ||
|
||
minikube status -p ${SRC_CLUSTER_NAME} >> /dev/null | ||
if [[ $? == 0 ]]; then | ||
echo "run hack/minikube-delete-clusters.sh before running this script"; exit 1 | ||
fi | ||
minikube status -p ${DEST_CLUSTER_NAME} >> /dev/null | ||
if [[ $? == 0 ]]; then | ||
echo "run hack/minikube-delete-clusters.sh before running this script"; exit 1 | ||
fi | ||
|
||
echo "create two minikube clusters" | ||
|
||
minikube start -p ${SRC_CLUSTER_NAME} | ||
minikube start -p ${DEST_CLUSTER_NAME} | ||
|
||
echo "clusters started, configuring networking between source and destination clusters" | ||
|
||
SOURCE_IP=$(minikube ip -p ${SRC_CLUSTER_NAME}) | ||
DEST_IP=$(minikube ip -p ${DEST_CLUSTER_NAME}) | ||
SOURCE_IP_RANGE="${SOURCE_IP%.*}.0/24" | ||
DEST_IP_RANGE="${DEST_IP%.*}.0/24" | ||
|
||
sudo iptables -I FORWARD 2 -p all -s $SOURCE_IP_RANGE -d $DEST_IP_RANGE -j ACCEPT | ||
sudo iptables -I FORWARD 3 -p all -s $DEST_IP_RANGE -d $SOURCE_IP_RANGE -j ACCEPT | ||
|
||
minikube ssh -p ${SRC_CLUSTER_NAME} sudo ip r add $DEST_IP_RANGE via $(echo $SOURCE_IP | cut -d"." -f1-3).1 | ||
minikube ssh -p ${DEST_CLUSTER_NAME} sudo ip r add $SOURCE_IP_RANGE via $(echo $DEST_IP | cut -d"." -f1-3).1 | ||
|
||
minikube ssh -p ${SRC_CLUSTER_NAME} "ping -c 4 ${DEST_IP}" | ||
if [ "$?" != 0 ]; | ||
then | ||
echo "unable to set up networking" | ||
exit 1 | ||
fi | ||
|
||
echo "network setup successful, configuring nginx ingress on destination cluster" | ||
minikube addons -p ${DEST_CLUSTER_NAME} enable ingress | ||
|
||
minikube update-context -p ${SRC_CLUSTER_NAME} | ||
|
||
# this hack does not work if the script is run twice | ||
COREFILE=$(kubectl get cm -n kube-system coredns -ojson | jq '.data.Corefile') | ||
COREFILE=$(echo $COREFILE | sed s/'fallthrough\\n }\\n/& file \/etc\/coredns\/crane.db crane.dev\\n/') | ||
kubectl get cm -n kube-system coredns -ojson | jq ".data.Corefile = ${COREFILE}" | kubectl replace -f - | ||
|
||
kubectl patch cm -n kube-system coredns --type='json' -p='[{"op": "replace", "path": "/data/crane.db", "value": "; crane.dev test file\ncrane.dev. IN SOA a.crane.dev. b.crane.dev. 2 604800 86400 2419200 604800\ncrane.dev. IN NS a.crane.dev.\ncrane.dev. IN NS b.crane.dev.\na.crane.dev. IN A 127.0.0.1\nb.crane.dev. IN A 127.0.0.1\n\n*.crane.dev. IN A DEST_IP\n"}]' | ||
kubectl get cm -n kube-system coredns -oyaml | sed "s/DEST_IP/${DEST_IP}/" | kubectl replace -f - | ||
|
||
kubectl patch deploy -n kube-system coredns --type='json' -p='[{"op": "add", "path": "/spec/template/spec/volumes/0/configMap/items/1", "value": {"key": "crane.db", "path": "crane.db"}}]' | ||
|
||
kubectl patch deploy --context=${DEST_CLUSTER_NAME} -n ingress-nginx ingress-nginx-controller --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/12", "value": "--enable-ssl-passthrough"}]' | ||
|
||
# force a rollout | ||
kubectl delete rs -n ingress-nginx --context=${DEST_CLUSTER_NAME} -l app.kubernetes.io/component=controller,app.kubernetes.io/instance=ingress-nginx |