Skip to content

FLUXCD

Fluxcd CLI

Schema dell’architettura fluxcd

1. Ispezione e Stato Generale

Comando Descrizione
flux check Verifica l'installazione e la compatibilità dei componenti nel cluster.
flux get all -A Visualizza tutte le risorse (Git, Helm, KS) in tutti i namespace.
flux stats Mostra statistiche sulle risorse e le performance dei controller.

2. Riconciliazione (Sync Forzato)

Comando Descrizione
flux reconcile source git <nome> Forza il pull immediato dei nuovi commit dal repository Git.
flux reconcile ks <nome> Forza l'applicazione immediata dei manifesti Kustomize.
flux reconcile hr <nome> Sincronizza i valori e aggiorna la HelmRelease specificata.

3. Debug e Troubleshooting

Comando Descrizione
flux logs --all-namespaces Streaming aggregato dei log di tutti i controller Flux.
flux events -n <ns> Mostra la cronologia degli eventi (errori di sync, pull falliti, ecc.).
flux trace <kind> <name> Ricostruisce la catena di dipendenze di una risorsa fino al commit Git.
flux get hr <nome> -o yaml Ispeziona lo stato (status) e i messaggi d'errore dettagliati di una release.

4. Gestione Ciclo di Vita (Maintenance)

Comando Descrizione
flux suspend ks <nome> Sospende la sincronizzazione (utile per modifiche manuali "hotfix").
flux resume ks <nome> Riprende la riconciliazione automatica.
flux suspend hr <nome> Blocca gli aggiornamenti automatici di un Helm Chart.
flux resume hr <nome> Riabilita gli aggiornamenti della HelmRelease.

5. Preview e Validazione Locale

Comando Descrizione
flux build ks <nome> --path ./percorso Renderizza localmente lo YAML finale (dry-run locale).
flux diff ks <nome> --path ./percorso Mostra le differenze tra Git e lo stato attuale del cluster.

6. Risorse Sorgente

Comando Descrizione
flux get sources git Elenca i GitRepository configurati e i relativi branch/commit.
flux get sources helm Elenca i repository Helm e lo stato degli indici (index.yaml).
flux get sources chart Mostra i chart scaricati e pronti per l'installazione.

Alias Rapidi (Shortcuts)

  • ks = kustomization
  • hr = helmrelease
  • git = source git
  • repo = source helm

Esempi

# File gestiro dal kustomize controller flux

apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: monitoring
  namespace: flux-system
spec:
  dependsOn:
    - name: infrastructure
  interval: 3m
  timeout: 15m
  path: "./clusters/rke2-home/monitoring" 
  prune: true 
  sourceRef:
    kind: GitRepository
    name: flux-system
  wait: true 
# File gestiro dal helm controller flux 

apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
  name: grafana
  namespace: monitoring
spec:
  interval: 1h
  chart:
    spec:
      chart: grafana
      version: ">= 10.5.15"
      sourceRef:
        kind: HelmRepository
        name: grafana
        namespace: flux-system
  values:
    ingress:
      enabled: true
      ingressClassName: traefik
      annotations:
        traefik.ingress.kubernetes.io/router.entrypoints: web
      hosts:
        - test.com
    persistence:
      enabled: true
      storageClassName: local-path-retain
      size: 2Gi
# Source chart

apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
  name: gitlab
  namespace: flux-system
spec:
  interval: 1h
  url: https://charts.gitlab.io