• Stars
    star
    939
  • Rank 46,717 (Top 1.0 %)
  • Language Smarty
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Traefik Proxy Helm Chart

Traefik

Traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease.

Introduction

This chart bootstraps Traefik version 2 as a Kubernetes ingress controller, using Custom Resources IngressRoute: https://docs.traefik.io/providers/kubernetes-crd/.

It's now possible to use this chart with Traefik v3 (current tested with beta3). Helm will auto detect which version is used based on image.tag. Set image.tag to a semver higher than 3.0, e.g. "v3.0.0-beta3". See Migration guide from v2 to v3 and upgrading section of this chart on CRDs.

Philosophy

The Traefik HelmChart is focused on Traefik deployment configuration.

To keep this HelmChart as generic as possible we tend to avoid integrating any third party solutions nor any specific use cases.

Accordingly, the encouraged approach to fulfill your needs:

  1. Override the default Traefik configuration values (yaml file or cli)
  2. Append your own configurations (kubectl apply -f myconf.yaml)

If needed, one may use extraObjects or extend this HelmChart as a Subchart

Installing

Prerequisites

  1. Helm v3 > 3.9.0 installed: helm version
  2. Traefik's chart repository: helm repo add traefik https://traefik.github.io/charts

Kubernetes Version Support

Due to changes in CRD version support, the following versions of the chart are usable and supported on the following Kubernetes versions:

Kubernetes v1.15 and below Kubernetes v1.16-v1.21 Kubernetes v1.22 and above
Chart v9.20.2 and below [x] [x]
Chart v10.0.0 and above [x] [x]
Chart v22.0.0 and above [x]

Deploying Traefik

helm install traefik traefik/traefik

You can customize the install with a values file. There are some EXAMPLES provided. Complete documentation on all available parameters is in the default file.

helm install -f myvalues.yaml traefik traefik/traefik

πŸ›‚ Warning: Helm v2 support was removed in the chart version 10.0.0.

Upgrading

One can check what has changed in the Changelog.

# Update repository
helm repo update
# See current Chart & Traefik version
helm search repo traefik/traefik
# Upgrade Traefik
helm upgrade traefik traefik/traefik

New major version indicates that there is an incompatible breaking change.

Upgrading CRDs

πŸ›‚ Warning: Traefik v3 totally removes the crd support for traefik.containo.us CRDs. By default this helm installs the CRDs compatible with v2 also, but Traefik v3 will no longer monitor them. There is no support for deprecation errors, so your existing resources may silently fail to work after upgrade to Traefik v3. See Migration guide from v2 to v3 for more details.

With Helm v3, CRDs created by this chart can not be updated, cf the Helm Documentation on CRDs. Please read carefully release notes of this chart before upgrading CRDs.

kubectl apply --server-side --force-conflicts -k https://github.com/traefik/traefik-helm-chart/traefik/crds/

Upgrading after 18.X+

It's detailed in release notes.

Upgrading from 17.x to 18.x

Since v18.x, this chart by default merges TCP and UDP ports into a single (LoadBalancer) Service. Load balancers with mixed protocols are available since v1.20 and in beta as of Kubernetes v1.24. Availability may depend on your Kubernetes provider.

To retain the old default behavior, set service.single to false in your values.

When using TCP and UDP with a single service, you may encounter this issue from Kubernetes.

On HTTP/3, if you want to avoid this issue, you can set ports.websecure.http3.advertisedPort to an other value than 443

If you were previously using HTTP/3, you should update your values as follows:

  • Replace the old value (true) of ports.websecure.http3 with a key enabled: true
  • Remove experimental.http3.enabled=true entry

Upgrading from 16.x to 17.x

Since v17.x, this chart provides unified labels following Kubernetes recommendation.

This version needs to change an immutable field, which is not supported by Kubernetes and Helm, see this issue for more details. So you will have to delete your Service, Deployment or DaemonSet in order to be able to upgrade.

You may also upgrade by deploying another Traefik to a different namespace and removing after your first Traefik.

Alternatively, since version 20.3.0 of this chart, you may set instanceLabelOverride to the previous value of that label. This will override the new Release.Name-Release.Namespace pattern to avoid any (longer) downtime.

Contributing

If you want to contribute to this chart, please read the Contributing Guide.

Thanks to all the people who have already contributed!

More Repositories

1

traefik

The Cloud Native Application Proxy
Go
47,533
star
2

yaegi

Yaegi is Another Elegant Go Interpreter
Go
6,609
star
3

mesh

Traefik Mesh - Simpler Service Mesh
Go
1,979
star
4

whoami

Tiny Go server that prints os information and HTTP request to output
Go
906
star
5

mocktail

Naive code generator that creates mock implementation using testify.mock
Go
199
star
6

traefik-migration-tool

A migration tool from Traefik v1 to Traefik v2
Go
146
star
7

traefik-library-image

Used to build Official Docker image of Traefik Proxy
Dockerfile
131
star
8

plugindemo

This repository includes an example plugin, for you to use as a reference for developing your own plugins
Go
121
star
9

blog-posts

Jinja
61
star
10

plugin-rewritebody

Rewrite body is a middleware plugin for Traefik which rewrites the HTTP response body by replacing a search regex by a replacement string
Go
50
star
11

paerser

Loads configuration from many sources
Go
47
star
12

plugin-simplecache

Simple cache plugin middleware caches responses on disk
Go
40
star
13

structor

[Messor Structor 🐜] Manage multiple versions of a Mkdocs documentation
Go
37
star
14

plugin-log4shell

Log4Shell is a middleware plugin for Traefik which blocks JNDI attacks based on HTTP header values
Go
37
star
15

faency

Faency is the Traefik Labs React component library
TypeScript
36
star
16

hub-agent-traefik

Traefik Hub agent for Traefik
Go
34
star
17

lobicornis

πŸ€– [Myrmica Lobicornis 🐜] Bot: Update and Merge Pull Request
Go
29
star
18

hub-agent-kubernetes

Traefik Hub agent for Kubernetes
Go
19
star
19

aloba

πŸ€– [Myrmica Aloba 🐜] Bot: Add labels and milestone on pull requests and issues
Go
18
star
20

whoamitcp

Tiny Go server that prints os information and TCP request to output
Go
17
star
21

plugin-blockpath

Block Path is a middleware plugin for Traefik which sends an HTTP 403 Forbidden response when the requested HTTP path matches one the configured regular expressions
Go
15
star
22

pluginproviderdemo

This repository includes an example provider plugin, for you to use as a reference for developing your own plugins
Go
13
star
23

mesh-helm-chart

Traefik Mesh - Helm Chart
Mustache
13
star
24

whoamiudp

Tiny Go webserver that prints os information and UDP request to output
Go
9
star
25

gallienii

πŸ€– [Myrmica Gallienii 🐜] Bot: Keep Forks Synchronized
Go
8
star
26

hub-helm-chart

Traefik Hub helm chart
Smarty
5
star
27

yaegi-talk

Talks about Yaegi
Go
4
star
28

contributors-guide

Contributors Guide
4
star
29

bibikoffi

πŸ€– [Myrmica Bibikoffi 🐜] Bot: Closes stale issues
Go
4
star
30

kutteri

πŸ€– [Chalepoxenus Kutteri 🐜] Bot: Track a GitHub repository and publish on Slack
Go
3
star
31

seo-doc

This program aims to process a documentation folder from traefik/doc and iterate each HTML file adding the requirements for a better SEO
HTML
3
star
32

plugindemowasm

This repository includes an example wasm plugin, for you to use as a reference for developing your own plugins
Go
3
star
33

traefikee-helm-chart

This chart installs the Traefik Enterprise on a Kubernetes cluster, an optional subchart of Traefik Mesh is also bundled
Smarty
3
star
34

traefik-hub-helm-chart

Traefik Hub is a Kubernetes-native API Management solution for publishing, securing, and managing APIs. Configuration is driven by Kubernetes CRDs, labels, and selectors for effective GitOps.
Makefile
2
star
35

traefiklabs-header-app

This Project aims to solve the issue to have a consistent header in many sites running different frameworks.
TypeScript
1
star
36

hub-apiportal-ui

CSS
1
star
37

homebrew-tap

Ruby
1
star
38

mixtus

πŸ€– [Lasius Mixtus 🐜] Bot: Publish Documentation to a GitHub Repository from another
Go
1
star
39

discourse-theme

Theme of Discourse Community Forum
SCSS
1
star