cnoe-io / idpbuilder

Spin up a complete internal developer platform with only Docker required as a dependency.
https://cloud-native.slack.com/archives/C05TN9WFN5S
Apache License 2.0
200 stars 59 forks source link

Feature: Support Overriding CNI #453

Open blakeromano opened 6 days ago

blakeromano commented 6 days ago

Have you searched for this feature request?

Problem Statement

I want to be able to use idpbuilder with a CNI of my choice. For example I should be able to override to avoid using the default CNI and use something like cilium https://docs.cilium.io/en/stable/installation/kind/

Possible Solution

We should add a cli argument to idpbuilder that is --cni and if set to something like cilium we should update KIND Config we generate to have:

networking:
  disableDefaultCNI: true

And we should also orchestrate for the CNI to be created (if we don't do this the other pods won't come up, like gitea, etc;)

Alternatives Considered

I mean we could have a generic hook instead to install things outside of the ArgoCD model but I think that is a worse way to do this because ideally we should have very few exceptions to managing things outside of ArgoCD

nabuskey commented 5 days ago

This would require:

I agree that CNI is an unique use case because it involves special configuration at bootstrap time and effectively required for other pods to work. Something idpbuilder should support imo.

blakeromano commented 5 days ago

I do get concerned about bloatedness of the idpbuilder cli.

I almost wonder if we could make it so there is a special CNOE annotation to apply a package first outside of argocd first, then let Argo take control after initial deployment