github.com/eth-easl/loader@v0.0.0-20230908084258-8a37e1d94279/scripts/konk-ci/02-contour.sh (about) 1 #!/usr/bin/env bash 2 3 # 4 # MIT License 5 # 6 # Copyright (c) 2023 EASL and the vHive community 7 # 8 # Permission is hereby granted, free of charge, to any person obtaining a copy 9 # of this software and associated documentation files (the "Software"), to deal 10 # in the Software without restriction, including without limitation the rights 11 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 # copies of the Software, and to permit persons to whom the Software is 13 # furnished to do so, subject to the following conditions: 14 # 15 # The above copyright notice and this permission notice shall be included in all 16 # copies or substantial portions of the Software. 17 # 18 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 # SOFTWARE. 25 # 26 27 set -eo pipefail 28 set -u 29 30 KNATIVE_NET_CONTOUR_VERSION=${KNATIVE_NET_CONTOUR_VERSION:-1.4.0} 31 32 ## INSTALL CONTOUR 33 n=0 34 until [ $n -ge 2 ]; do 35 kubectl apply -f https://github.com/knative-sandbox/net-contour/releases/download/knative-v${KNATIVE_NET_CONTOUR_VERSION}/contour.yaml && break 36 n=$[$n+1] 37 sleep 5 38 done 39 kubectl wait --for=condition=Established --all crd 40 kubectl wait pod --timeout=-1s --for=condition=Ready -l '!job-name' -n contour-internal 41 kubectl wait pod --timeout=-1s --for=condition=Ready -l '!job-name' -n contour-external 42 43 ## INSTALL NET CONTOUR 44 n=0 45 until [ $n -ge 2 ]; do 46 kubectl apply -f https://github.com/knative-sandbox/net-contour/releases/download/knative-v${KNATIVE_NET_CONTOUR_VERSION}/net-contour.yaml && break 47 n=$[$n+1] 48 sleep 5 49 done 50 # deployment for net-contour gets deployed to namespace knative-serving 51 kubectl wait pod --timeout=-1s --for=condition=Ready -l '!job-name' -n knative-serving 52 53 # Configure Knative to use this ingress 54 kubectl patch configmap/config-network \ 55 --namespace knative-serving \ 56 --type merge \ 57 --patch '{"data":{"ingress.class":"contour.ingress.networking.knative.dev"}}' 58 59 60 cat <<EOF | kubectl apply -f - 61 apiVersion: v1 62 kind: Service 63 metadata: 64 name: contour-ingress 65 namespace: contour-external 66 labels: 67 networking.knative.dev/ingress-provider: contour 68 spec: 69 type: NodePort 70 selector: 71 app: envoy 72 ports: 73 - name: http 74 nodePort: 31080 75 port: 80 76 targetPort: 8080 77 EOF