Skip to content
This repository has been archived by the owner on Dec 4, 2024. It is now read-only.

Commit

Permalink
Configure Traefik to improve availability (#292)
Browse files Browse the repository at this point in the history
* Bump traefik addon revision

This adds a missing bump to a prior revision of the Traefik addon.

* Add new traefik addon revision

* Bump traefik addon revision

* Configure Traefik for HA

* Use deprecated zone label

This label is deprecated in k8s 1.17, but is supported on older versions
that are supported by this addon.

* Set custom label to use for affinity
  • Loading branch information
branden authored Jun 17, 2020
1 parent a37cca2 commit e70b53a
Show file tree
Hide file tree
Showing 2 changed files with 134 additions and 1 deletion.
2 changes: 1 addition & 1 deletion addons/traefik/1.7.x/traefik-11.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ metadata:
kubeaddons.mesosphere.io/name: traefik
kubeaddons.mesosphere.io/provides: ingresscontroller
annotations:
catalog.kubeaddons.mesosphere.io/addon-revision: "1.7.23-10"
catalog.kubeaddons.mesosphere.io/addon-revision: "1.7.23-11"
appversion.kubeaddons.mesosphere.io/traefik: "1.7.23"
endpoint.kubeaddons.mesosphere.io/traefik: "/ops/portal/traefik"
docs.kubeaddons.mesosphere.io/traefik: "https://docs.traefik.io/v1.7"
Expand Down
133 changes: 133 additions & 0 deletions addons/traefik/1.7.x/traefik-12.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
---
apiVersion: kubeaddons.mesosphere.io/v1beta1
kind: ClusterAddon
metadata:
name: traefik
labels:
kubeaddons.mesosphere.io/name: traefik
kubeaddons.mesosphere.io/provides: ingresscontroller
annotations:
catalog.kubeaddons.mesosphere.io/addon-revision: "1.7.23-12"
appversion.kubeaddons.mesosphere.io/traefik: "1.7.23"
endpoint.kubeaddons.mesosphere.io/traefik: "/ops/portal/traefik"
docs.kubeaddons.mesosphere.io/traefik: "https://docs.traefik.io/v1.7"
values.chart.helm.kubeaddons.mesosphere.io/traefik: "https://raw.githubusercontent.com/mesosphere/charts/00b019ef3610ca8221a8cf283b4d7046a50702c4/staging/traefik/values.yaml"
spec:
kubernetes:
minSupportedVersion: v1.15.6
requires:
- matchLabels:
kubeaddons.mesosphere.io/name: cert-manager
chartReference:
chart: traefik
repo: https://mesosphere.github.io/charts/staging
version: 1.72.19
values: |
---
# Configure Traefik for HA.
replicas: 2
podDisruptionBudget:
minAvailable: 1
# Distribute pods to tolerate node or zone failure.
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
labelSelector:
matchExpressions:
- key: kubeaddons.mesosphere.io/name
operator: In
values:
- traefik
topologyKey: kubernetes.io/hostname
- weight: 1
podAffinityTerm:
labelSelector:
matchExpressions:
- key: kubeaddons.mesosphere.io/name
operator: In
values:
- traefik
topologyKey: failure-domain.beta.kubernetes.io/zone
deployment:
podLabels:
kubeaddons.mesosphere.io/name: traefik
service:
labels:
servicemonitor.kubeaddons.mesosphere.io/path: "metrics"
resources:
limits:
cpu: 1000m
requests:
cpu: 500m
rbac:
enabled: true
metrics:
prometheus:
enabled: true
dashboard:
enabled: true
domain: ""
serviceType: ClusterIP
ingress:
path: /ops/portal/traefik
annotations:
kubernetes.io/ingress.class: traefik
traefik.frontend.rule.type: PathPrefixStrip
traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group
traefik.ingress.kubernetes.io/auth-type: forward
traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/
traefik.ingress.kubernetes.io/priority: "2"
kubernetes:
ingressEndpoint:
publishedService: "kubeaddons/traefik-kubeaddons"
ssl:
enabled: true
enforced: true
# TODO: This comment is no longer true.
# dex service is exposed with TLS certificate signed by self signed root
# Dex CA certificate. It is not clear if traefik supports configuring
# trusted certificates per backend. This should be investiaged in a
# separate issue.
# See: https://jira.mesosphere.com/browse/DCOS-56033
insecureSkipVerify: true
# We use cert-manager to automate certificate management thus we
# do not need the default cert secret.
useCertManager: true
deploymentAnnotations:
# Watching this CM will trigger traefik init container that updates certificate
# object with new DNS names. That will cascade secret update which will trigger
# another reload.
configmap.reloader.stakater.com/reload: konvoyconfig-kubeaddons
secret.reloader.stakater.com/reload: traefik-kubeaddons-certificate
initContainers:
- name: initialize-traefik-certificate
image: mesosphere/kubeaddons-addon-initializer:v0.2.10
args: ["traefik"]
env:
- name: "TRAEFIK_INGRESS_NAMESPACE"
value: "kubeaddons"
- name: "TRAEFIK_INGRESS_SERVICE_NAME"
value: "traefik-kubeaddons"
- name: "TRAEFIK_INGRESS_CERTIFICATE_NAME"
value: "traefik-kubeaddons"
- name: "TRAEFIK_INGRESS_CERTIFICATE_ISSUER"
value: "kubernetes-ca"
- name: "TRAEFIK_INGRESS_CERTIFICATE_SECRET_NAME"
value: "traefik-kubeaddons-certificate"
- name: "TRAEFIK_KONVOY_ADDONS_CONFIG_MAP"
value: "konvoyconfig-kubeaddons"
- name: "TRAEFIK_CLUSTER_HOSTNAME_KEY"
value: "clusterHostname"
initCertJobImage: mesosphere/kubeaddons-addon-initializer:v0.2.10
extraServicePorts:
- name: velero-minio
port: 9000
protocol: TCP
targetPort: 9000
extraSSLEntrypoints:
velero-minio:
address: ":9000"

0 comments on commit e70b53a

Please sign in to comment.