### Clone Karmada and Start Local Environment Source: https://github.com/fluxcd/website/blob/main/content/en/flux/use-cases/karmada.md Clone the Karmada repository and execute the local setup script to start a development environment. This script sets up a Kubernetes cluster using kind for the Karmada control plane and member clusters. ```sh git clone https://github.com/karmada-io/karmada cd karmada hack/local-up-karmada.sh ``` -------------------------------- ### Install Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-google-cloud.md Install the Helm CLI tool. ```text brew install kubernetes-helm ``` -------------------------------- ### Install Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-eks-appmesh.md Install the Helm v3 command-line tool. ```text brew install helm ``` -------------------------------- ### Install podinfo demo application Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/prometheus-operator.md Adds the podinfo repository and installs the demo application in the test namespace. ```bash helm repo add podinfo https://stefanprodan.github.io/podinfo kubectl create ns test helm upgrade -i podinfo podinfo/podinfo \ --namespace test \ --set service.enabled=false ``` -------------------------------- ### Deploy Flux v1 in Read-Only Mode Source: https://github.com/fluxcd/website/blob/main/content/en/flux/migration/flux-v1-migration.md Example commands for installing Flux v1 to sync a directory from a private Git repository. ```sh # create namespace kubectl create ns flux # deploy Flux v1 fluxctl install \ --git-url=git@github.com:org/app \ --git-branch=main \ --git-path=./deploy \ --git-readonly \ --namespace=flux | kubectl apply -f - # print deploy key fluxctl identity --k8s-fwd-ns flux # trigger sync fluxctl sync --k8s-fwd-ns flux ``` -------------------------------- ### Install Linkerd and Flagger via kubectl Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/linkerd-progressive-delivery.md Commands to install Linkerd, Prometheus, and the SMI extension, followed by Flagger installation using Kustomize. ```bash # For linkerd versions 2.12 and later, the CRDs need to be installed beforehand linkerd install --crds | kubectl apply -f - linkerd install | kubectl apply -f - linkerd viz install | kubectl apply -f - # For linkerd versions 2.12 and later, the SMI extension needs to be install in # order to enable TrafficSplits curl -sL https://linkerd.github.io/linkerd-smi/install | sh linkerd smi install | kubectl apply -f - ``` ```bash kubectl apply -k github.com/fluxcd/flagger//kustomize/linkerd ``` -------------------------------- ### End-to-End Testing with Flux and Kind Source: https://github.com/fluxcd/website/blob/main/content/en/flux/flux-gh-action.md This workflow sets up a Kubernetes Kind cluster and installs Flux CD within it for end-to-end testing purposes. It requires checkout, Flux CLI setup, and Kind setup actions. ```yaml name: e2e on: push: branches: - '*' jobs: kubernetes: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Flux CLI uses: fluxcd/flux2/action@main - name: Setup Kubernetes Kind uses: helm/kind-action@main - name: Install Flux in Kubernetes Kind run: flux install ``` -------------------------------- ### Platform admin repository structure Source: https://github.com/fluxcd/website/blob/main/content/en/flux/guides/repository-structure.md Example directory layout for a platform admin repository in a multi-tenancy setup. ```console ├── teams │ ├── team1 │ ├── team2 ├── infrastructure │ ├── base │ ├── production │ └── staging └── clusters ├── production └── staging ``` -------------------------------- ### Flux Multi-tenancy Demo for OpenShift Source: https://github.com/fluxcd/website/blob/main/content/en/blog/2021-10-29-november-update/index.md This repository provides a proof-of-concept for a multi-tenant Flux setup on OpenShift, installable and bootstrappable using only the OpenShift Web UI. ```shell # Multi-tenant demo for Flux on OpenShift # https://github.com/openshift-fluxv2-poc/platform-team ``` -------------------------------- ### Install kubectl Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-google-cloud.md Install the kubectl command-line tool via gcloud components. ```text gcloud components install kubectl ``` -------------------------------- ### Install Flux CLI via Bash Script Source: https://github.com/fluxcd/website/blob/main/content/en/flux/cmd/_index.md Use the official install script to download and install the Flux binary. ```bash curl -s https://fluxcd.io/install.sh | sudo bash ``` ```bash curl -s https://fluxcd.io/install.sh | bash -s ~/.local/bin ``` ```bash curl -s https://fluxcd.io/install.sh | FLUX_VERSION=2.7.0 bash -s ~/.local/bin ``` -------------------------------- ### Install Linkerd and Flagger via Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/linkerd-progressive-delivery.md Alternative installation method using Helm charts for Linkerd components and Flagger. ```bash helm repo add linkerd https://helm.linkerd.io/stable helm install linkerd-crds linkerd/linkerd-crds -n linkerd --create-namespace # See https://linkerd.io/2/tasks/generate-certificates/ for how to generate the # certs referred below helm install linkerd-control-plane linkerd/linkerd-control-plane \ -n linkerd \ --set-file identityTrustAnchorsPEM=ca.crt \ --set-file identity.issuer.tls.crtPEM=issuer.crt \ --set-file identity.issuer.tls.keyPEM=issuer.key \ helm install linkerd-viz linkerd/linkerd-viz -n linkerd-viz --create-namespace helm repo add l5d-smi https://linkerd.github.io/linkerd-smi helm install linkerd-smi l5d-smi/linkerd-smi -n linkerd-smi --create-namespace # Note that linkerdAuthPolicy.create=true is only required for Linkerd 2.12 and # later helm install flagger flagger/flagger \ --namespace flagger-system \ --set meshProvider=linkerd \ --set metricsServer=http://prometheus.linkerd-viz:9090 \ --set linkerdAuthPolicy.create=true ``` -------------------------------- ### Hugo Configuration Example Source: https://github.com/fluxcd/website/blob/main/layouts/shortcodes/home/calendar.html Example of a Hugo configuration file, specifying the version. ```yaml { "version": 1 } ``` -------------------------------- ### Install Istio and Prometheus Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/istio-ab-testing.md Installs Istio using the default profile and applies Prometheus addon configuration. ```bash istioctl manifest install --set profile=default kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.8/samples/addons/prometheus.yaml ``` -------------------------------- ### Install Flagger Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/contour-progressive-delivery.md Provides options to install Flagger using either Kustomize or Helm v3. ```bash kubectl apply -k https://github.com/fluxcd/flagger//kustomize/contour?ref=main ``` ```bash helm repo add flagger https://flagger.app helm upgrade -i flagger flagger/flagger \ --namespace projectcontour \ --set meshProvider=contour \ --set ingressClass=contour \ --set prometheus.install=true ``` -------------------------------- ### Install Automation Controllers Directly Source: https://github.com/fluxcd/website/blob/main/content/en/flux/migration/flux-v1-automation-migration.md Install the image automation controllers directly into the cluster when not using bootstrap. ```bash $ flux install --components-extra=image-reflector-controller,image-automation-controller ``` -------------------------------- ### Install NGINX Ingress Controller Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/linkerd-progressive-delivery.md Install the NGINX ingress controller using Helm. ```bash helm upgrade -i nginx-ingress stable/nginx-ingress \ --namespace ingress-nginx ``` -------------------------------- ### Install KEDA using Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/keda-scaledobject.md Installs KEDA using its Helm chart. Ensure you have Helm and kubectl configured. ```bash helm repo add kedacore https://kedacore.github.io/charts kubectl create namespace keda helm install keda kedacore/keda --namespace keda ``` -------------------------------- ### Install eksctl on MacOS Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-eks-appmesh.md Use Homebrew to install the eksctl command-line utility. ```bash brew tap weaveworks/tap brew install weaveworks/tap/eksctl ``` -------------------------------- ### Install Flux CLI with Nix Source: https://github.com/fluxcd/website/blob/main/content/en/flux/installation/_index.md Install the Flux CLI on NixOS using the `nix-env` command. ```sh nix-env -i fluxcd ``` -------------------------------- ### Install Gloo Edge with Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/gloo-progressive-delivery.md Add the Gloo repository and install the ingress controller into the gloo-system namespace. ```bash helm repo add gloo https://storage.googleapis.com/solo-public-helm kubectl create ns gloo-system helm upgrade -i gloo gloo/gloo \ --namespace gloo-system ``` -------------------------------- ### Set up QEMU and Docker Buildx Source: https://github.com/fluxcd/website/blob/main/content/en/flux/use-cases/gh-actions-app-builder.md Prepare the build environment by setting up QEMU for emulation and Docker Buildx for multi-platform builds. ```yaml - name: Set up QEMU # ... - name: Set up Docker Buildx ``` -------------------------------- ### Install Flux with kubectl Source: https://github.com/fluxcd/website/blob/main/content/en/flux/installation/_index.md Applies the Flux installation manifest directly using kubectl. This method is useful for development or quick setups. ```shell kubectl apply -f https://github.com/fluxcd/flux2/releases/latest/download/install.yaml ``` -------------------------------- ### Install kubeseal CLI Source: https://github.com/fluxcd/website/blob/main/content/en/flux/guides/sealed-secrets.md Installs the kubeseal CLI tool using Homebrew. For other operating systems, download the binary from GitHub releases. ```bash brew install kubeseal ``` -------------------------------- ### Bootstrap Application Resources Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/apisix-progressive-delivery.md Commands to prepare the test namespace and deploy the sample application. ```bash kubectl create ns test ``` ```bash kubectl apply -k https://github.com/fluxcd/flagger//kustomize/podinfo?ref=main ``` ```bash helm upgrade -i flagger-loadtester flagger/loadtester \ --namespace=test ``` -------------------------------- ### Install Flux Controllers for Helm Operations Source: https://github.com/fluxcd/website/blob/main/content/en/flux/faq.md Install the necessary Flux controllers (source-controller and helm-controller) directly on a cluster using the `flux install` command. This allows managing Helm releases with `kubectl` without a full GitOps setup. ```sh flux install \ --namespace=flux-system \ --network-policy=false \ --components=source-controller,helm-controller ``` -------------------------------- ### Helm Controller Events Example Source: https://github.com/fluxcd/website/blob/main/content/en/blog/2023-12-12-announcing-flux-v2.2.0/index.md This example shows typical events generated by the helm-controller during Helm chart operations, including creation, successful installation, and successful testing. ```console Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal HelmChartCreated 25s helm-controller Created HelmChart/demo/demo-podinfo with SourceRef 'HelmRepository/demo/podinfo' Normal InstallSucceeded 20s helm-controller Helm install succeeded for release demo/podinfo.v1 with chart podinfo@6.5.3 Normal TestSucceeded 12s helm-controller Helm test succeeded for release demo/podinfo.v1 with chart podinfo@6.5.3: 3 test hooks completed successfully ``` -------------------------------- ### CI Example: Update Image and Monitor Rollout Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/usage/how-it-works.md A continuous integration example demonstrating how to update a deployment's container image, monitor Flagger's 'Progressing' status, wait for successful promotion, and verify the deployment. ```bash # update the container image kubectl set image deployment/podinfo podinfod=stefanprodan/podinfo:3.0.1 # wait for Flagger to detect the change ok=false until ${ok}; do kubectl get canary/podinfo | grep 'Progressing' && ok=true || ok=false sleep 5 done # wait for the canary analysis to finish kubectl wait canary/podinfo --for=condition=promoted --timeout=5m # check if the deployment was successful kubectl get canary/podinfo | grep Succeeded ``` -------------------------------- ### Example OIDC Configuration Output Source: https://github.com/fluxcd/website/blob/main/content/en/flux/integrations/cross-cloud.md This is an example of the JSON output from the OIDC configuration endpoint. It includes the 'issuer' field, which is the critical URL needed for cross-cloud authentication setup. ```json { "issuer": "https://container.googleapis.com/v1/projects//locations//clusters/", "jwks_uri": "https://:443/openid/v1/jwks", "response_types_supported": [ "id_token" ], "subject_types_supported": [ "public" ], "id_token_signing_alg_values_supported": [ "RS256" ] } ``` -------------------------------- ### Dev team repository structure Source: https://github.com/fluxcd/website/blob/main/content/en/flux/guides/repository-structure.md Example directory layout for a dev team repository in a multi-tenancy setup. ```console └── apps ├── base ├── production └── staging ``` -------------------------------- ### Clone and build sample controller Source: https://github.com/fluxcd/website/blob/main/content/en/flux/gitops-toolkit/source-watcher.md Downloads the source-watcher template and builds the binary. ```sh git clone https://github.com/fluxcd/source-watcher cd source-watcher git checkout release/v1.3.x ``` ```sh make ``` -------------------------------- ### Bootstrap Test Environment Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/gloo-progressive-delivery.md Create the test namespace and deploy the sample application and load testing service. ```bash kubectl create ns test ``` ```bash kubectl -n test apply -k https://github.com/fluxcd/flagger//kustomize/podinfo?ref=main ``` ```bash kubectl -n test apply -k https://github.com/fluxcd/flagger//kustomize/tester?ref=main ``` -------------------------------- ### Create development directory Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/dev/dev-guide.md Initialize the project directory structure within GOPATH. ```bash mkdir -p $GOPATH/src/github.com/fluxcd ``` -------------------------------- ### Build project binaries Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/dev/dev-guide.md Download dependencies and compile the Flagger and load tester binaries. ```bash go mod download ``` ```bash make build ``` ```bash make loadtester-build ``` -------------------------------- ### Helm CLI Values File Override Example Source: https://github.com/fluxcd/website/blob/main/content/en/flux/use-cases/helm.md Use the `--values` flag with the Helm CLI to specify override values from a YAML file during installation. ```sh helm install my-traefik traefik/traefik --values ci/kind-values.yaml ``` -------------------------------- ### Helm CLI Value Override Example Source: https://github.com/fluxcd/website/blob/main/content/en/flux/use-cases/helm.md Use the `--set` flag with the Helm CLI to imperatively specify override values for a Helm chart installation. ```sh helm install my-traefik traefik/traefik --set service.type=ClusterIP ``` -------------------------------- ### Deployment Verification Output Source: https://github.com/fluxcd/website/blob/main/content/en/flux/get-started.md Example output showing the status of podinfo deployments and services. ```text NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/podinfo 2/2 2 2 108s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/podinfo ClusterIP 10.100.149.126 9898/TCP,9999/TCP 108s ``` -------------------------------- ### Canary Status Table Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/apisix-progressive-delivery.md Example output of the 'kubectl get canaries --all-namespaces' command, showing the status, weight, and last transition time for canaries. ```text NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME test podinfo-2 Progressing 10 2022-11-23T05:00:54Z test podinfo Succeeded 0 2022-11-23T06:00:54Z ``` -------------------------------- ### Apply VirtualService Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/gloo-progressive-delivery.md Apply the VirtualService configuration file. ```bash kubectl apply -f ./podinfo-virtualservice.yaml ``` -------------------------------- ### Install Prometheus for Istio Telemetry Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-google-cloud.md Applies a Prometheus configuration to the 'istio-system' namespace. This setup is necessary for scraping Istio telemetry metrics, which are used by tools like Flagger for canary analysis. ```bash kubectl -n istio-system apply -f \ https://storage.googleapis.com/gke-release/istio/release/1.0.6-gke.3/patches/install-prometheus.yaml ``` -------------------------------- ### Configure Flux Instance with OCI Artifact Sync Source: https://github.com/fluxcd/website/blob/main/content/en/flux/installation/_index.md Defines a FluxInstance resource to install Flux and configure it to sync from an OCI artifact. This example specifies Flux version, components, cluster settings, kustomize patches, and sync configuration. ```yaml apiVersion: fluxcd.controlplane.io/v1 kind: FluxInstance metadata: name: flux namespace: flux-system annotations: fluxcd.controlplane.io/reconcileEvery: "1h" fluxcd.controlplane.io/reconcileTimeout: "10m" spec: distribution: version: "2.x" registry: "ghcr.io/fluxcd" artifact: "oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests" components: - source-controller - source-watcher - kustomize-controller - helm-controller - notification-controller - image-reflector-controller - image-automation-controller cluster: type: kubernetes size: medium multitenant: false networkPolicy: true domain: "cluster.local" kustomize: patches: - target: kind: Deployment patch: | - op: replace path: /spec/template/spec/nodeSelector value: kubernetes.io/os: linux - op: add path: /spec/template/spec/tolerations value: - key: "CriticalAddonsOnly" operator: "Exists" sync: kind: OCIRepository url: "oci://ghcr.io/my-org/my-fleet-manifests" ref: "latest" path: "clusters/my-cluster" pullSecret: "ghcr-auth" ``` -------------------------------- ### Install App Mesh controller Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-eks-appmesh.md Deploy the App Mesh controller using Helm. ```bash helm upgrade -i appmesh-controller eks/appmesh-controller \ --wait --namespace appmesh-system ``` -------------------------------- ### Run the site locally Source: https://github.com/fluxcd/website/blob/main/README.md Starts the Hugo development server to preview changes locally. ```cli make serve ``` -------------------------------- ### Example YAML for Tenant Creation Source: https://github.com/fluxcd/website/blob/main/content/en/flux/use-cases/gh-actions-manifest-generation.md This YAML snippet represents a basic structure for creating a Kubernetes tenant, potentially including a ServiceAccount. It's a starting point that might be generated by `flux create tenant` and can be customized for specific needs, such as discarding unnecessary components like Namespace or ClusterRoleBinding. ```yaml --- ``` -------------------------------- ### Install SOPS and GnuPG Source: https://github.com/fluxcd/website/blob/main/content/en/flux/guides/mozilla-sops.md Installs the SOPS CLI and GnuPG using Homebrew. Ensure you have Homebrew installed before running this command. ```sh brew install gnupg sops ``` -------------------------------- ### Run site in Docker Source: https://github.com/fluxcd/website/blob/main/README.md Starts the development environment inside a container. ```cli make docker-preview ``` -------------------------------- ### Kubecfg CLI Setup and Usage Source: https://github.com/fluxcd/website/blob/main/content/en/flux/use-cases/gh-actions-manifest-generation.md Steps to set up the kubecfg CLI and use it to render Jsonnet manifests into YAML output. ```yaml - name: Setup kubecfg CLI uses: kingdonb/kubecfg/action@main - name: kubecfg show run: kubecfg show manifests/example.jsonnet > output/production.yaml - name: Prepare target branch run: ./ci/rake.sh deploy ``` -------------------------------- ### Install cert-manager CRDs Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-google-cloud.md Installs the Custom Resource Definitions for cert-manager. Ensure you are using the correct version tag for your installation. ```bash CERT_REPO=https://raw.githubusercontent.com/jetstack/cert-manager kubectl apply -f ${CERT_REPO}/release-0.10/deploy/manifests/00-crds.yaml ``` -------------------------------- ### Install Flux Operator with Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flux/installation/_index.md Installs the Flux Operator using Helm. Ensure the Flux Operator is installed in the 'flux-system' namespace. ```shell helm install flux-operator oci://ghcr.io/controlplaneio-fluxcd/flux-operator \ --namespace flux-system \ --create-namespace ``` -------------------------------- ### Enable Istio Injection and Deploy Podinfo Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/istio-progressive-delivery.md Creates a test namespace, enables Istio sidecar injection, and deploys the podinfo application using Flagger's Kustomize. ```bash kubectl create ns test kubectl label namespace test istio-injection=enabled kubectl apply -k https://github.com/fluxcd/flagger//kustomize/podinfo?ref=main ``` -------------------------------- ### Install Istio Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/istio-progressive-delivery.md Installs Istio using the default profile and applies Prometheus addon. Ensure you adjust the Istio version in the Prometheus command. ```bash istioctl manifest install --set profile=default # Suggestion: Please change release-1.8 in below command, to your real istio version. kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.8/samples/addons/prometheus.yaml ``` -------------------------------- ### Install Flux with Helm Chart Source: https://github.com/fluxcd/website/blob/main/content/en/flux/installation/_index.md Installs Flux using the community Helm chart. This command installs Flux in the 'flux-system' namespace and creates it if it doesn't exist. ```shell helm install -n flux-system --create-namespace flux oci://ghcr.io/fluxcd-community/charts/flux2 ``` -------------------------------- ### Install Terraform Controller with HelmRelease Source: https://github.com/fluxcd/website/blob/main/content/en/blog/2022-09-14-how-to-gitops-your-terraform/index.md Add this HelmRelease to your bootstrap repository to easily install the Terraform Controller. Ensure Flux is installed and meets the version requirements. ```yaml apiVersion: source.toolkit.fluxcd.io/v1beta1 kind: GitRepository metadata: name: helloworld namespace: flux-system spec: interval: 30s url: https://github.com/tf-controller/helloworld ref: branch: main ``` -------------------------------- ### Install source-controller Source: https://github.com/fluxcd/website/blob/main/content/en/flux/gitops-toolkit/source-watcher.md Installs the source-controller component into the flux-system namespace. ```sh flux install \ --namespace=flux-system \ --network-policy=false \ --components=source-controller ``` -------------------------------- ### Configure Docker Buildx for CI/CD Source: https://github.com/fluxcd/website/blob/main/content/en/flux/use-cases/gh-actions-manifest-generation.md Sets up QEMU and Buildx for cross-platform Docker image builds in a GitHub Actions workflow. Requires Docker Hub credentials. ```yaml - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 ``` -------------------------------- ### Install cert-manager with Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-google-cloud.md Installs cert-manager using Helm. It adds the Jetstack Helm repository, updates it, and then performs a Helm upgrade to install cert-manager version v0.10.0 into the 'cert-manager' namespace. ```bash helm repo add jetstack https://charts.jetstack.io && \ helm repo update && \ helm upgrade -i cert-manager \ --namespace cert-manager \ --version v0.10.0 \ jetstack/cert-manager ``` -------------------------------- ### Install Kuma Control Plane and Observability Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/kuma-progressive-delivery.md Installs the Kuma control plane and Prometheus/Grafana for observability. Ensure Kuma and Kubernetes meet the version prerequisites. ```bash kumactl install control-plane | kubectl apply -f - kumactl install observability --components "grafana,prometheus" | kubectl apply -f - ``` -------------------------------- ### Integration testing with Kind Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/dev/dev-guide.md Commands to create a local cluster, build images, and execute end-to-end tests. ```bash kind create cluster ``` ```bash make build docker build -t test/flagger:latest . kind load docker-image test/flagger:latest ``` ```bash ./test/istio/run.sh ``` -------------------------------- ### Install Flux v2 Source: https://github.com/fluxcd/website/blob/main/content/en/flux/migration/flux-v1-migration.md Installs Flux v2 components into the flux-system namespace. ```sh $ flux install \ --network-policy=true \ --watch-all-namespaces=true \ --namespace=flux-system ``` ```sh flux install ``` -------------------------------- ### Install Flagger with Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/gloo-progressive-delivery.md Install Flagger and the Prometheus add-on in the same namespace as Gloo. ```bash helm repo add flagger https://flagger.app helm upgrade -i flagger flagger/flagger \ --namespace gloo-system \ --set prometheus.install=true \ --set meshProvider=gloo ``` -------------------------------- ### Initialize Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-google-cloud.md Deploy Tiller into the cluster. ```bash helm init --service-account tiller ``` -------------------------------- ### Setup Tiller service account Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/install/flagger-install-on-google-cloud.md Create a service account and role binding for Tiller. ```bash kubectl -n kube-system create sa tiller kubectl create clusterrolebinding tiller-cluster-rule \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:tiller ``` -------------------------------- ### Bootstrap Flux with Gitea Source: https://github.com/fluxcd/website/blob/main/content/en/blog/2023-12-12-announcing-flux-v2.2.0/index.md Use this command to initialize Flux on a cluster using Gitea as the Git provider. ```bash flux bootstrap gitea --repository --owner ``` -------------------------------- ### Install Flagger Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/nginx-progressive-delivery.md Adds the Flagger repository and installs Flagger with the Prometheus add-on enabled. ```bash helm repo add flagger https://flagger.app helm upgrade -i flagger flagger/flagger \ --namespace ingress-nginx \ --set prometheus.install=true \ --set meshProvider=nginx ``` -------------------------------- ### Install Flagger via Helm Source: https://github.com/fluxcd/website/blob/main/content/en/flagger/tutorials/apisix-progressive-delivery.md Installs Flagger and the Prometheus add-on in the specified namespace. ```bash helm repo add flagger https://flagger.app helm upgrade -i flagger flagger/flagger \ --namespace apisix \ --set prometheus.install=true \ --set meshProvider=apisix ```