Skip to content

Conversation

@stefanprodan
Copy link
Member

@stefanprodan stefanprodan commented Oct 30, 2025

This pull request introduces major improvements to the Flux-based GitOps setup, focusing on enhanced artifact management, improved Helm release failure handling, and updated documentation. The main changes include switching to OCI-based helm charts, updating cluster configuration to use ArtifactGenerator, modernizing Helm release definitions, and refining the documentation to reflect these updates.

Artifact and Source Management:

  • Introduced ArtifactGenerator resources in each cluster (artifacts.yaml) to split the monorepo into independent infrastructure and apps artifacts, enabling more granular reconciliation and improved scalability. Kustomizations now use ExternalArtifact sources instead of directly referencing the Git repository.

Helm Release and Repository Handling:

  • Migrated the cert-manager release source from HelmRepository to OCIRepository.
  • Improved the ingress-nginx release by enabling the admission webhook with cert-manager integration.
  • The infrastructure HelmRelease definitions now include retry strategies for install/upgrade.

Cluster Configuration:

  • Updated Kustomization specs in all clusters to use new artifact paths, set longer intervals, and add retry/timeout settings for more robust reconciliation.

Documentation Updates:

  • Revised the README.md to reflect the new minimum Kubernetes version, updated example manifests, and clarified cluster setup, artifact generation, and reconciliation flows.

CI and Tooling Updates:

  • Updated CI workflow files to use the latest GitHub Actions versions and Kubernetes kind images, and improved validation script prerequisites for compatibility with newer tools.

Fix: #115
Fix: #102

@stefanprodan stefanprodan added the enhancement New feature or request label Oct 30, 2025
Signed-off-by: Stefan Prodan <[email protected]>
@stefanprodan stefanprodan merged commit 7b9196e into main Oct 30, 2025
4 checks passed
@stefanprodan stefanprodan deleted the flux-2.7 branch October 30, 2025 17:57
@yondkoo
Copy link

yondkoo commented Dec 18, 2025

Sorry, I'm not sure this update relates to it but seems like kustomization/infra-controllers couldn't get the ExternalArtifact

NAME                            REVISION                SUSPENDED       READY   MESSAGE
gitrepository/flux-system       main@sha1:6da5c076      False           True    stored artifact for revision 'main@sha1:6da5c076'

NAME                            REVISION                SUSPENDED       READY   MESSAGE
kustomization/apps                                      False           False   dependency 'flux-system/infra-configs' is not ready
kustomization/flux-system       main@sha1:6da5c076      False           True    Applied revision: main@sha1:6da5c076
kustomization/infra-configs                             False           False   dependency 'flux-system/infra-controllers' is not ready
kustomization/infra-controllers                         False           False   Source is not ready, artifact not found, retrying in 5s
Name:         flux-system
Namespace:    flux-system
Labels:       kustomize.toolkit.fluxcd.io/name=flux-system
              kustomize.toolkit.fluxcd.io/namespace=flux-system
Annotations:  <none>
API Version:  source.extensions.fluxcd.io/v1beta1
Kind:         ArtifactGenerator
Metadata:
  Creation Timestamp:  2025-12-18T10:03:32Z
  Finalizers:
    source.extensions.fluxcd.io/finalizer
  Generation:        1
  Resource Version:  183654
  UID:               3c3e095a-ad3e-4ba5-b524-ce8baf23ac16
Spec:
  Artifacts:
    Copy:
      From:           @monorepo/infrastructure/**
      To:             @artifact/
    Name:             infrastructure
    Origin Revision:  @monorepo
    Copy:
      From:           @monorepo/apps/base/**
      To:             @artifact/base/
      From:           @monorepo/apps/staging/**
      To:             @artifact/staging/
    Name:             apps
    Origin Revision:  @monorepo
  Sources:
    Alias:  monorepo
    Kind:   GitRepository
    Name:   flux-system
Status:
  Conditions:
    Last Transition Time:  2025-12-18T10:03:32Z
    Message:               reconciliation succeeded, generated 2 artifact(s)
    Observed Generation:   1
    Reason:                Succeeded
    Status:                True
    Type:                  Ready
  Inventory:
    Digest:                 sha256:c0ac3648ac7e182e444c200e507f40b4814d0a6dc6dbefa668d881fe9d6e7e0c
    Filename:               3581895720.tar.gz
    Name:                   infrastructure
    Namespace:              flux-system
    Digest:                 sha256:433935fa0bb832034e90c016530020421b6553f9d4f90427903745cde05d3b9c
    Filename:               702634372.tar.gz
    Name:                   apps
    Namespace:              flux-system
  Observed Sources Digest:  sha256:f860f24944e9839cfeee2c9a3f32582b772da99a5d30685715f9cd18640dcd19
Events:
  Type    Reason  Age   From            Message
  ----    ------  ----  ----            -------
  Normal  Ready   58s   source-watcher  ExternalArtifact/flux-system/infrastructure reconciled with revision latest@sha256:c0ac3648ac7e182e444c200e507f40b4814d0a6dc6dbefa668d881fe9d6e7e0c
  Normal  Ready   58s   source-watcher  ExternalArtifact/flux-system/apps reconciled with revision latest@sha256:433935fa0bb832034e90c016530020421b6553f9d4f90427903745cde05d3b9c
  Normal  Ready   58s   source-watcher  reconciliation succeeded, generated 2 artifact(s)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect ingress-nginx controller helm values apps/production/kustomization.yaml: namespace left out by intention?

4 participants