Skip to content

Instantly share code, notes, and snippets.

@mmmarceleza
Last active May 23, 2024 20:32
Show Gist options
  • Save mmmarceleza/0d7cd47bd01bf4c72a78acef122c085b to your computer and use it in GitHub Desktop.
Save mmmarceleza/0d7cd47bd01bf4c72a78acef122c085b to your computer and use it in GitHub Desktop.

Estudos de caso com o Flux

Tópicos da apresentação

  • estratégias de deploy
  • tipos de fontes usadas pelo Flux
  • CRDs do Flux
  • benefícios de se usar flux na estrutura de gitops
  • estudo de caso: vículo básico de um repositório
  • estudo de caso: instalação de uma aplicação com helmrelease
  • estudo de caso: bootstrap de um repositório existente
  • estudo de caso: CI/CD completo com os objetos de imagem

Referências

Comandos usados

  • Criação do cluster:
kind create cluster
  • Instalação do binário do Flux:
curl -s https://fluxcd.io/install.sh | sudo bash
  • Instalação básica do Flux no cluster:
flux install
  • Instalação completa do Flux:
flux install --components-extra='image-reflector-controller,image-automation-controller'
  • Criação do gitrepository:
flux create source git podinfo \
  --url=https://github.com/stefanprodan/podinfo \
  --branch=master \
  --interval=30s \
  --export > gitrepo-podinfo.yaml
  • Criação do kustomization:
flux create kustomization podinfo \
  --target-namespace=default \
  --source=podinfo \
  --path="./kustomize" \
  --prune=true \
  --interval=30s \
  --export > kustomization-podinfo.yaml
  • Criação do helmrepository:
flux create source helm podinfo \
  --url https://stefanprodan.github.io/podinfo --namespace default \
  --interval 1h \
  --export > helmrepository.yaml
  • Criação do helmrelease:
flux create helmrelease podinfo --chart podinfo \
  --source HelmRepository/podinfo \
  --chart-version 6.6.2 \
  --namespace default \
  --export > helmrelease-podinfo.yaml
  • Bootstrap de um repositório Github (exemplo básico):
flux bootstrap github \
  --owner=mmmarceleza \
  --repository=workshop \
  --branch=main \
  --path=flux/examples/01 \
  --interval=1m \
  --personal
  • Bootstrap de um repositório Github (exemplo completo):
flux bootstrap github \
  --components-extra=image-reflector-controller,image-automation-controller \
  --owner=mmmarceleza \
  --repository=workshop \
  --path=flux/examples/05 \
  --interval=1m \
  --read-write-key=true \
  --personal
  • Instalação do binário do Weave Gitops:
curl --silent --location "https://github.com/weaveworks/weave-gitops/releases/download/v0.38.0/gitops-$(uname)-$(uname -m).tar.gz" | tar xz -C /tmp
sudo mv /tmp/gitops /usr/local/bin
gitops version
  • Criação dos manifestos para instalação do Weave Gitops:
PASSWORD="<your password>"
gitops create dashboard ww-gitops \
  --password=$PASSWORD \
  --export > weave-gitops.yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment