diff --git a/devel/BUILD.bazel b/devel/BUILD.bazel index ff2a88abc..27ce76880 100644 --- a/devel/BUILD.bazel +++ b/devel/BUILD.bazel @@ -18,6 +18,7 @@ filegroup( "//devel/addon/pebble:all-srcs", "//devel/addon/sample-external-issuer:all-srcs", "//devel/addon/samplewebhook:all-srcs", + "//devel/addon/traefik:all-srcs", "//devel/addon/vault:all-srcs", "//devel/bin:all-srcs", "//devel/cluster:all-srcs", diff --git a/devel/addon/bind/manifests/configmap.yaml b/devel/addon/bind/manifests/configmap.yaml index fef833041..311158d58 100644 --- a/devel/addon/bind/manifests/configmap.yaml +++ b/devel/addon/bind/manifests/configmap.yaml @@ -39,6 +39,8 @@ data: ingress-nginx IN A {SERVICE_IP_PREFIX}.15 *.gateway IN A {SERVICE_IP_PREFIX}.14 gateway IN A {SERVICE_IP_PREFIX}.14 + *.traefik IN A {SERVICE_IP_PREFIX}.13 + traefik IN A {SERVICE_IP_PREFIX}.13 db.dns01.example.com: | ; diff --git a/devel/addon/traefik/BUILD.bazel b/devel/addon/traefik/BUILD.bazel new file mode 100644 index 000000000..678253cd7 --- /dev/null +++ b/devel/addon/traefik/BUILD.bazel @@ -0,0 +1,23 @@ +load("@io_bazel_rules_docker//container:bundle.bzl", "container_bundle") + +container_bundle( + name = "bundle", + images = { + "traefik:2.4.9": "@io_traefik_traefik//image", + }, + tags = ["manual"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/devel/addon/traefik/install.sh b/devel/addon/traefik/install.sh new file mode 100755 index 000000000..f7ee84dfa --- /dev/null +++ b/devel/addon/traefik/install.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash + +# Copyright 2021 The cert-manager Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Install HAProxy as a gateway-API e2e test. + +set -o nounset +set -o errexit +set -o pipefail + +SCRIPT_ROOT=$(dirname "${BASH_SOURCE}") +source "${SCRIPT_ROOT}/../../lib/lib.sh" + +check_tool helm +check_tool kubectl + +helm repo add traefik --force-update https://helm.traefik.io/traefik + +IMAGE_TAG="2.4.9" + +require_image "traefik:${IMAGE_TAG}" "//devel/addon/traefik:bundle" + +helm upgrade --install --create-namespace \ + --namespace traefik \ + --version 10.1.1 \ + --set additionalArguments='{--experimental.kubernetesgateway=true,--providers.kubernetesgateway=true}' \ + --set image.tag=${IMAGE_TAG} \ + --set "service.type=ClusterIP" \ + --set "service.spec.clusterIP=10.0.0.13" \ + traefik traefik/traefik + +kubectl apply -f- <