-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Can't inject on resources with the conduit.io/plane
label.
#201
Comments
Proposed changesSummary
Before
conduit controllerannotations:
conduit.io/created-by: conduit/cli git-7399df83
labels:
app: controller
conduit.io/plane: control injected appannotations:
conduit.io/created-by: conduit/cli git-7399df83
conduit.io/proxy-version: git-7399df83
labels:
app: emoji-svc
conduit.io/controller: conduit
conduit.io/plane: data After
conduit controllerannotations:
conduit.io/created-by: conduit/cli git-7399df83
labels:
app: web
conduit.io/controller-component: web injected appannotations:
conduit.io/created-by: conduit/cli git-7399df83
conduit.io/proxy-version: git-7399df83
labels:
app: emoji-svc
conduit.io/controller-ns: conduit |
I think The member thing is a little unfortunate -- that we have a label with only one value. I wonder if we would benefit from using labels like This enables label selections like TIOLI. generally seems fine to me. |
Proposal updated with:
|
It isn't clear to me what you are trying to accomplish with the "inception" example. Could you explain more what you're trying to do?
I agree.
We need these things to be labels because the Kubernetes API is good at selecting things based on labels and bad at selecting things based on any other criteria. For example, it is easy and efficient to find everything with the "conduit.io/control-plane" label. I don't know that it is easy and efficient to find everything with a similar annotation. I think we do want to have the Conduit proxy injected into the control plane pods, however I don't think |
I think this new scheme is fine. However, I would like to prevent (To be crystal clear, the |
@briansmith Agree on all points.
This is really just a proof of concept. Agree we can leverage the proxy between the control plane components, but it should not be left to the user to define that configuration.
Yup, we're sticking with labels. My proposal above is what we're planning to implement.
Correct, I left the |
OK, perfect. |
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 wip wip wip wip
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
The conduit.io/* k8s labels and annotations we're redundant in some cases, and not flexible enough in others. This change modifies the labels in the following ways: `conduit.io/plane: control` => `conduit.io/controller-component: web` `conduit.io/controller: conduit` => `conduit.io/controller-ns: conduit` `conduit.io/plane: data` => (remove, redundant with `conduit.io/controller-ns`) It also centralizes all k8s labels and annotations into pkg/k8s/labels.go, and adds tests for the install command. Part of #201 Signed-off-by: Andrew Seigner <siggy@buoyant.io>
There's already an another open issue, #311, for injecting the proxy into the control plane pods and this issue already had a PR landed for it, so I'm closing this. |
This picks up the following commits: * 0fe8063 replace with (#2370) (#201) * 1ea7559 Minor cleanup in the config tests (#188) * d0ef56b Update *ring* to 0.14.6 (#197) * c54377f fs-watch: Use a properly sized buffer for inotify events (#195) * 23e02a6 Update Router to wait for inner poll_ready before calling inner call * 2de8e9b Update metrics quickcheck to 0.8, and hyper to 0.12.24 * d1bbd4b make: Optionally include debug symbols with builds (#193) * 738a541 Fix compilation warnings in fs-watch (#192) * 6cc7558 Apply rustfmt (#191) Signed-off-by: Ivan Sim <ivan@buoyant.io>
Currently, linkerd2-proxy uses and implements `Error::cause` for error handling. This branch removes the use of the deprecated `Error::cause` method and implements and uses the `Error::source` method, as [recommended by the documentation](https://doc.rust-lang.org/std/error/trait.Error.html#method.cause). To implement `Error::source`, there are static lifetimes added to the `Error` traits. However, this doesn't remove the [use of `cause2`](https://github.com/DebugSteven/linkerd2-proxy/blob/231cb67b1a2178627bbb304055d408cee1007fd9/src/proxy/http/glue.rs#L226) because `hyper::Error` doesn't provide a `source` yet: https://docs.rs/hyper/0.12.24/src/hyper/error.rs.html#289-333. A separate issue could be opened to use `source` for `hyper::Error` when it becomes available. Fixes: linkerd#2370 Signed-off-by: J Haigh <DebugSteven@gmail.com>
Running a command like:
I'd expect us to add the proxy to all conduit pods in the inception namespace. Unfortunately, we use a single label,
conduit.io/plane
to indicate whether the node is in the control plane.It shouldn't be a requirement that a pod is only in one plane.
Furthermore, we should be able to run
inject
on pods that already have been injected (i.e. to update the proxy configuration).I propose moving these labels to annotations so that they are not mutually exclusive.
Something like
conduit.io/data-plane
conduit.io/control-plane
?The text was updated successfully, but these errors were encountered: