-
Notifications
You must be signed in to change notification settings - Fork 620
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The "Kustomization" kind should really be KustomizationBuild #321
Comments
I would like to add that using |
Yeah, I agree with this. This was particularly confusing to me when I first came across the Kustomize controller and Kustomization resource. Potential alternative:
I'll think of a few more alternatives for the next call |
+1 on renaming Kustomization to something less confusing. kustomize already has a kind: Reading getting started guides, user questions, and blog-posts as well as watching my own videos, it seems like it's difficult to finish a paragraph about Flux's Kustomization object without sounding like you're referring to a kustomize directory. Seems like Apply , Applier , Reconcile , or Reconciler would all be more clear? Let's also consider that
|
The difference here is the used API. Flux:
Kustomize:
As there are many CRDs out there i guess it's not uncommon that kind could have the same name in different crds. |
^ yes this is good to point out. |
I know these are technically two different API groups, but it's still awkward for tooling, where you usually don't spell out the Group of a Resource, and items of a common Kind but different Group are usually semantically compatible, where items of different Groups but the same Kind can be naturally converted between the two (eg. beta's Ingress kind versus v1's Ingress kind). If you're not caring about cross-group compatibility within the kinds, you might as well just call every kind "Resource" and give each one its own API group - there's nothing technically stopping you from doing that in the current Kubernetes model. It's only a common social contract across the community, to express analogous Kinds of document without stepping on each others' toes. |
I also found having two things called "Checks yaml in open tab..., ah, so this is the Kustomatization ok... swithes tab.. ah, so this is the Kustomatization.. but hang on wasn't the other file the Kustomatization ... switches tab.. ah yes, this one is the Kustomatization.... but hang on...." and so on. I know they differ in the To me apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
kind: Kustomization
metadata:
name: apps
namespace: myns looks the same as apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
metadata:
name: apps
namespace: myns So basically +1 for any name that is not the same as a well known native k8s kind :-). |
I second this. I found it very confusing too. Trying to ellucidate what does each do and also I get messed up with both two parameters multiple times. |
Well, that solves that conundrum. |
Have you seen? https://toolkit.fluxcd.io/faq/#are-there-two-kustomization-types |
See this Slack thread in the "flux" channel of the "Cloud Native Computing Foundation" workspace for yet more confusion from these names—and a few suggestions for alternatives. |
That's a nice document, making this all seem so much clearer. And yet, with five minutes away from it, and with every developer who faces this system for the first time or two, we're going to suffer this confusion. |
Extremely confusing even after a week of working with it. |
Hi all, it is indeed confusing. I came across this fluxcd/flux#3533 because as soon as I updated the
However, in the docs for the kustomization API https://fluxcd.io/docs/components/kustomize/api/ there is no mention of this https://fluxcd.io/docs/faq/#are-there-two-kustomization-types More over, if you go here https://fluxcd.io/docs/components/kustomize/api/#kustomize.config.k8s.io/v1beta1.Kustomization and here Both links redirect to the same documentation. Thanks!!! |
Another angle to this confusion... each resource can be in a different "The Kustomization is defined in It's like Abbott & Costello Who's On First. If you don't think that skit is funny, then you wouldn't see problems with two P.S. We often encounter the same term used in two different technologies with different meanings, and there's no outcry of confusion because the technologies don't overlap. For example, a Kubernetes "cluster" is in an entirely different area of technology from a Kafka "cluster" -- in this case, the term "cluster" isn't confusing anybody. However, these two "Kustomization" refer to two very closely related things. It's like naming all your children "Bob" and claim that you can always distinguish them by their driver's license numbers anyway and therefore no confusion. On the other hand, two Bobs belonging to two different families living in two different cities will never cause confusion. |
If a
|
Given that Flux v2 is being used in production by many organisation, we have no intention of breaking everyones clusters by renaming a core CRD. We could reopen this in a couple of years when we'll be designing Flux v3 😄 |
@stefanprodan Great idea :D |
Release v0.10.0
@stefanprodan Hi, sorry for bumping this thread once again. Firstly: I truly understand the reason behind closing this issue. It is indeed not correct to change resource names during a single major version, so your point is right. But what do you think about extending docs? As a new Flux user I've literally already spent a few hours trying to understand the difference and how they are used, looked through multiple github issues, checked the docs page: https://fluxcd.io/flux/faq/#are-there-two-kustomization-types. I've tried googling both APIs and... For me it is still extremely confusing (I am still in re-reading loop of that docs page as it still doesn't make much sense to me, but I am trying), and I bet every new engineer might go through the same process. |
kustomization.yaml
files useKustomization
as their kind. In GOTK right now, that's also the name of the kind that's used to build kustomizations. This is especially confusing considering that the alternative, HelmCharts, are distinct from HelmRelease, the kind that is used to represent a build of a Helm Chart.Ideally, it would be possible to include Kustomization documents themselves in the cluster (ie. where all of their data is either a remote URL or specified inline), and have them be maintained by operators just like HelmChart objects are now. In that scenario, it would be much tricker to work with GitOps Toolkit (from a kubectl point of view) if it's using the same Kind name to mean a different thing.
The text was updated successfully, but these errors were encountered: