fluxcd/flux2

flux bootstrap doesn't support oci repositories

Opened this issue · 2 comments

Describe the bug

I had just discovered the OCIRepository capability, which seems nice as I can 'render' manifests if needed, rather having being the state completely be rendered in git, and was looking at changing everything over to OCI, so I don't have to maintain SSH-keys.

In doing that, I was going to upgrade flux, which needs to call flux bootstrap. However it seems that OCI isn't an option here.
Even upgrading via bootstrap seems to perform a lot of cloning etc steps, so it's tricky to even work around and force flux to just use OCIRepositories, rather than git itself (it might feel I am going against gitops, by avoiding git :)).

It's way more complicated for bootstrap, but is there any other ways to upgrade without bootstrap?. I can probably tweak the repository to be an OCI repo, but I suspect bootstrap will forever be broken for me that way.

Steps to reproduce

flux bootstrap
The bootstrap sub-commands push the Flux manifests to a Git repository
and deploy Flux on the cluster.

Usage:
  flux bootstrap [command]

Available Commands:
  bitbucket-server Deploy Flux on a cluster connected to a Bitbucket Server repository
  git              Deploy Flux on a cluster connected to a Git repository
  gitea            Deploy Flux on a cluster connected to a Gitea repository
  github           Deploy Flux on a cluster connected to a GitHub repository
  gitlab           Deploy Flux on a cluster connected to a GitLab repository
  

Expected behavior

OCI Repository is an option

Screenshots and recordings

No response

OS / Distro

alpine

Flux version

flux: v2.4.0

Flux check

flux check
► checking prerequisites
✔ Kubernetes 1.29.4-k3s1 >=1.28.0-0
► checking version in cluster
✔ distribution: flux-v2.3.0
✔ bootstrapped: true
► checking controllers
✔ helm-controller: deployment ready
► ghcr.io/fluxcd/helm-controller:v1.0.1
✔ image-automation-controller: deployment ready
► ghcr.io/fluxcd/image-automation-controller:v0.38.0
✔ image-reflector-controller: deployment ready
► ghcr.io/fluxcd/image-reflector-controller:v0.32.0
✔ kustomize-controller: deployment ready
► ghcr.io/fluxcd/kustomize-controller:v1.3.0
✔ notification-controller: deployment ready
► ghcr.io/fluxcd/notification-controller:v1.3.0
✔ source-controller: deployment ready
► ghcr.io/fluxcd/source-controller:v1.3.0
► checking crds
✔ alerts.notification.toolkit.fluxcd.io/v1beta3
✔ buckets.source.toolkit.fluxcd.io/v1beta2
✔ gitrepositories.source.toolkit.fluxcd.io/v1
✔ helmcharts.source.toolkit.fluxcd.io/v1
✔ helmreleases.helm.toolkit.fluxcd.io/v2
✔ helmrepositories.source.toolkit.fluxcd.io/v1
✔ imagepolicies.image.toolkit.fluxcd.io/v1beta2
✔ imagerepositories.image.toolkit.fluxcd.io/v1beta2
✔ imageupdateautomations.image.toolkit.fluxcd.io/v1beta2
✔ kustomizations.kustomize.toolkit.fluxcd.io/v1
✔ ocirepositories.source.toolkit.fluxcd.io/v1beta2
✔ providers.notification.toolkit.fluxcd.io/v1beta3
✔ receivers.notification.toolkit.fluxcd.io/v1
✔ all checks passed

Git provider

Forgejo

Container Registry provider

forgejo

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

You can use the Flux Operator and setup Flux with OCI as single source of truth, docs here: https://fluxcd.control-plane.io/operator/flux-sync/#sync-from-a-container-registry