-
Notifications
You must be signed in to change notification settings - Fork 36
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
New feature: list-operatorgroups #82
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: cdjohnson The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Curious, what use case does this address? |
Our larger customers want to create large deployment topologies within a single cluster that allow different isolation layers to allow different instances of Products (Operators and Operands). Our products are made up of many operators, some of which are shared and some are not, so it can get fairly complicated quickly. In the most complicated scenario, you may have a multiple Trees of Namespaces, where each layer in the tree represents a different Control Plane, or Isolation Layer. The goal of this was to help developers and SREs visualize these more complex deployment scenarios and validate their configurations. |
Wouldn't this question be best answered from the perspective of an operator configured / scoped via an |
@dmesser This is in the scope of the current OLM APIs and it's current capabilities. This is showing what the Deployment Environment/Topology that the Operators will be installed into. Although the OperatorGroup is an abstraction, customers need to set them up correctly and orchestrate the operators to install into that environment to have success. So, this shows that the Namespaces are setup properly even before the first operator is provisioned. So:
|
I guess I am trying to understand the situation in which a user would use this command. It's not obvious to me. Let's say I want to install an operator or a set of related operators. Why is the question which operator groups already exist interesting to me? Wouldn't I be rather interest in:
I don't see |
The problem is that we can't rely on OLM to resolve and provision the dependent operators for us, because they live at different scopes. Some customers (big ones) want to use the principle of least privilege a the Namespace layer. This is an extremely "advanced" use case, but one that we need to support. Primary goals:
Let's say we have 4 layers:
In order to realize this, we have a tree of namespaces and nested operator groups. Because of this, we need to design the Namespaces and their OperatorGroups ahead of time, essentially Modeling the desired topology, and then deploy the Operators and Operands into that topology, not depending on OLM to auto-provision dependencies. |
Signed-off-by: cdjohnson <cdjohnson@us.ibm.com> Signed-off-by: cdjohnson <cdjohnson@us.ibm.com> Signed-off-by: Chris D. Johnson <cdjohnson@us.ibm.com>
* Initial operatorgroup-list command - List out all OperatorGroup and related namespaces as Tenants - Provide both Tabular and Mermaid support Signed-off-by: cdjohnson <cdjohnson@us.ibm.com> Signed-off-by: Chris D. Johnson <cdjohnson@us.ibm.com>
Signed-off-by: cdjohnson <cdjohnson@us.ibm.com> Signed-off-by: Chris D. Johnson <cdjohnson@us.ibm.com>
* Initial operatorgroup-list command - List out all OperatorGroup and related namespaces as Tenants - Provide both Tabular and Mermaid support Signed-off-by: Chris D. Johnson <cdjohnson@us.ibm.com> Signed-off-by: Chris D. Johnson <cdjohnson@us.ibm.com>
@dmesser So, I think I can clarify what the benefit of this tool could be:
|
@cdjohnson: PR needs rebase. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
This is a new feature:
kubectl-operator list-operatorgroups
The goal here is to:
Example output using a set of test data found in
assets/operatorgroup-list-test
:$ bin/kubectl-operator list-operatorgroups -A -g