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