flagger/kustomize
Sanskar Jaiswal 89c1ddee79
Release v1.41.0
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2025-04-02 12:32:23 +01:00
..
apisix chore: add kustomize. fix: e2e test 2022-12-06 17:56:00 +05:30
appmesh Update Kubernetes manifests to rbac.authorization.k8s.io/v1 2021-05-28 09:37:51 +03:00
base Release v1.41.0 2025-04-02 12:32:23 +01:00
contour Include app.kubernetes.io labels by default 2020-12-22 12:45:03 +02:00
gatewayapi gatewayapi: add support for v1 and drop v1alpha2 2023-11-29 20:56:30 +05:30
istio Update Kubernetes manifests to rbac.authorization.k8s.io/v1 2021-05-28 09:37:51 +03:00
knative feat: add knative integration 2025-03-22 01:02:30 +05:30
kubernetes Include app.kubernetes.io labels by default 2020-12-22 12:45:03 +02:00
kuma kuma: update default namespace to kong-mesh-system 2024-07-26 15:27:47 +05:30
linkerd Update Linkerd tutorial 2023-09-15 12:08:23 -07:00
osm Support OSM progressive traffic shifting 2021-08-11 17:43:00 -07:00
podinfo Kustomize update hpa version 2023-08-21 12:12:03 -04:00
tester Release loadtester 0.35.0 2025-03-23 09:31:44 +02:00
README.md Add osm tutorial and docs 2021-08-20 14:25:47 -07:00

README.md

Flagger Kustomize installer

As an alternative to Helm, Flagger can be installed with Kustomize.

Prerequisites

  • Kubernetes cluster >=1.13.0
  • Kustomize >=3.6.0

Service mesh specific installers

Install Flagger for Istio:

kustomize build https://github.com/fluxcd/flagger/kustomize/istio?ref=main | kubectl apply -f -

This deploys Flagger in the istio-system namespace and sets the metrics server URL to Istio's Prometheus instance.

Install Flagger for AWS App Mesh:

kustomize build https://github.com/fluxcd/flagger/kustomize/appmesh?ref=main | kubectl apply -f -

This deploys Flagger in the appmesh-system namespace and sets the metrics server URL to App Mesh Prometheus instance.

Install Flagger for Linkerd:

kustomize build https://github.com/fluxcd/flagger/kustomize/linkerd?ref=main | kubectl apply -f -

This deploys Flagger in the linkerd namespace and sets the metrics server URL to linkerd-viz extension's Prometheus instance which lives under linkerd-viz namespace by default.

Install Flagger for Open Service Mesh:

kustomize build https://github.com/fluxcd/flagger/kustomize/osm?ref=main | kubectl apply -f -

This deploys Flagger in the osm-system namespace and sets the metrics server URL to OSM's Prometheus instance.

If you want to install a specific Flagger release, add the version number to the URL:

kustomize build https://github.com/fluxcd/flagger/kustomize/linkerd?ref=v1.0.0 | kubectl apply -f -

Install Flagger for Contour:

kustomize build https://github.com/fluxcd/flagger/kustomize/contour?ref=main | kubectl apply -f -

This deploys Flagger and Prometheus in the projectcontour namespace and sets Prometheus to scrape Contour's Envoy instances.

Generic installer

Install Flagger and Prometheus:

kustomize build https://github.com/fluxcd/flagger/kustomize/kubernetes?ref=main | kubectl apply -f -

This deploys Flagger and Prometheus in the flagger-system namespace, sets the metrics server URL to http://flagger-prometheus.flagger-system:9090 and the mesh provider to kubernetes.

To target a different provider you can specify it in the canary custom resource:

apiVersion: flagger.app/v1alpha3
kind: Canary
metadata:
  name: app
  namespace: test
spec:
  # can be: kubernetes, istio, linkerd, appmesh, nginx, skipper, gloo, osm
  # use the kubernetes provider for Blue/Green style deployments
  provider: nginx

You'll need Prometheus when using Flagger with AWS App Mesh, Gloo, NGINX or Skipper ingress controller. The Prometheus instance has a two hours data retention and is configured to scrape all pods in your cluster that have the prometheus.io/scrape: "true" annotation.

Customise the installation

Create a kustomization file using Flagger as base and patch the container args:

cat > kustomization.yaml <<EOF
namespace: istio-system
bases:
  - github.com/fluxcd/flagger/kustomize/base/flagger
patches:
- target:
    kind: Deployment
    name: flagger
  patch: |-
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: flagger
    spec:
      template:
        spec:
          containers:
          - name: flagger
            args:
              - -mesh-provider=istio
              - -metrics-server=http://prometheus.istio-system:9090
              - -slack-user=flagger
              - -slack-channel=alerts
              - -slack-url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK
EOF

Install Flagger for Istio with Slack notifications:

kustomize build . | kubectl apply -f -