Skip to content
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

Global vs local operator #2177

Closed
lburgazzoli opened this issue Mar 26, 2021 · 2 comments · Fixed by #3358
Closed

Global vs local operator #2177

lburgazzoli opened this issue Mar 26, 2021 · 2 comments · Fixed by #3358
Assignees
Labels

Comments

@lburgazzoli
Copy link
Contributor

My understanding is that global and local scoped operators can co exists and the global operator won't try to handle any camel-k resource that is created in a namespace where a Lease resource (created by the local operator) exists.

This should be ok for most of the case but assuming a local operator is installed but not started, then the Lease is not created and the global operator may start taking ownership of namespace local resources.

To avoid such problem, would it be possible to also support namespace labels ? (something similar to what knative does)

@lburgazzoli
Copy link
Contributor Author

/cc @astefanutti @nicolaferraro

@astefanutti astefanutti added the area/installation Installation and Topology label May 3, 2021
@astefanutti astefanutti self-assigned this May 3, 2021
@github-actions
Copy link
Contributor

This issue has been automatically marked as stale due to 90 days of inactivity.
It will be closed if no further activity occurs within 15 days.
If you think that’s incorrect or the issue should never stale, please simply write any comment.
Thanks for your contributions!

christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Fix typos
- Use IsSecondary() utility method
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- By default use an operator-id (default='camel-k')
- Introduce operator-id setting on kamel CLI when installing Camel K
- Introduce operator-id setting on kamel CLI when running integrations
- Make sure to use an operator-id when installing Camel K and running integrations
- Set camel.apache.org/operator.id annotation on resources managed by operator with given id
- Add operator id as environment variable to integration pods
- Use default operator id in OLM deployment
- Add more comfortable way to set operator id annotation on resources
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Use operator id when creating the operator lease so only operator instances with the same id elect a leader
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Reinitialize integration when operator id annotation has changed
- Remove IntegrationKit reference for integration that has a new operator id annotation
- Add operator id annotation to relevant fields that determine the integration digest hash
- Add common utility method to get the operator id annotation from a resource
- Allow default operator (id="camel-k") to handle legacy resources that are missing proper operator id annotations
- Allow operators that use a proper id to reconcile resources on any namespace (regardless of operator mode global vs. local and regardless of existing namespace lease)
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Make sure to not install same operator id twice
- Users must use --force option to overwrite existing operator with given id
- Searches for all integration platforms in any namespace and verify that platform name does not exist
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Make sure to use a known operator id when running an integration
- Check performs a cluster wide search for integration platforms and verifies that the platform name exists
- Users may use --force option to skip the check
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Introduce operator-id option to kamel CLI bind command
- Make sure to use proper operator id when creating the binding
- Rebuild Kamelet binding when operator id annotation changes
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Integration platforms need to be visible to authenticated users in order to verify operator ids
- Add integration platform viewer role in all namespaces that hold at least one integration platform so users can get and list these platform instances
- Automatically add the role during kamel CLI installation and in platform trait
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
…erator

- Make sure that each operator instance adds its integration platform if not already exists
- Automatically adds an integration platform in operator start-up
- Also adds integration platform viewer role so authenticated users can see the platform instance
- Required for kamel CLI to verify existing operator ids on the cluster when doing an operator install or running integrations
christophd added a commit to christophd/camel-k that referenced this issue Jun 8, 2022
- Find local integration platform or try to search for default operator in any namespace instead of just looking for the "camel-k" integration platform in local namespace
- Should eliminate nasty "No Integration platform available in current namespace" warnings when using the kamel CLI
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
- Use unique operator id when installing operators in test namespaces
- Make sure to run integrations with respective operator id for selected reconciling
- Automatically uninstall operators after the test
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
- Use unique operator id when installing operators in test namespaces
- Make sure to run integrations with respective operator id for selected reconciling
- Automatically uninstall operators after the test
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
- Handle forbidden error when user lacks privileges to list all integration platforms on cluster during install command
- Use unique operator id when installing operators in test namespaces
- Make sure to run integrations with respective operator id for selected reconciling
- Automatically uninstall operators after the test
christophd added a commit to christophd/camel-k that referenced this issue Jun 9, 2022
- Handle forbidden error when user lacks privileges to list all integration platforms on cluster during install command
- Use unique operator id when installing operators in test namespaces
- Make sure to run integrations with respective operator id for selected reconciling
- Automatically uninstall operators after the test
christophd added a commit to christophd/camel-k that referenced this issue Jun 10, 2022
- Handle forbidden error when user lacks privileges to list all integration platforms on cluster during install command
- Use unique operator id when installing operators in test namespaces
- Make sure to run integrations with respective operator id for selected reconciling
- Automatically uninstall operators after the test
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
- Make sure to use a known operator id when running an integration
- Check performs a cluster wide search for integration platforms and verifies that the platform name exists
- Users may use --force option to skip the check
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
- Introduce operator-id option to kamel CLI bind command
- Make sure to use proper operator id when creating the binding
- Rebuild Kamelet binding when operator id annotation changes
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
- Integration platforms need to be visible to authenticated users in order to verify operator ids
- Add integration platform viewer role in all namespaces that hold at least one integration platform so users can get and list these platform instances
- Automatically add the role during kamel CLI installation and in platform trait
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
…erator

- Make sure that each operator instance adds its integration platform if not already exists
- Automatically adds an integration platform in operator start-up
- Also adds integration platform viewer role so authenticated users can see the platform instance
- Required for kamel CLI to verify existing operator ids on the cluster when doing an operator install or running integrations
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
- Find local integration platform or try to search for default operator in any namespace instead of just looking for the "camel-k" integration platform in local namespace
- Should eliminate nasty "No Integration platform available in current namespace" warnings when using the kamel CLI
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
- Handle forbidden error when user lacks privileges to list all integration platforms on cluster during install command
- Use unique operator id when installing operators in test namespaces
- Make sure to run integrations with respective operator id for selected reconciling
- Automatically uninstall operators after the test
- Introduce new GitHub action to install Camel K in global mode
- Run YAKS e2e tests with single global Camel K operator
- Use local operator with id camel-k-preflight in preflight test checks and remove operator once checks are done
- Update deployment ready logic with pod spec comparison based on integration digest and container image only
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
christophd added a commit to christophd/camel-k that referenced this issue Jul 8, 2022
In favor of using kamel-install-global-operator action
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Fix typos
- Use IsSecondary() utility method
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- By default use an operator-id (default='camel-k')
- Introduce operator-id setting on kamel CLI when installing Camel K
- Introduce operator-id setting on kamel CLI when running integrations
- Make sure to use an operator-id when installing Camel K and running integrations
- Set camel.apache.org/operator.id annotation on resources managed by operator with given id
- Add operator id as environment variable to integration pods
- Use default operator id in OLM deployment
- Add more comfortable way to set operator id annotation on resources
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Use operator id when creating the operator lease so only operator instances with the same id elect a leader
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Reinitialize integration when operator id annotation has changed
- Remove IntegrationKit reference for integration that has a new operator id annotation
- Add operator id annotation to relevant fields that determine the integration digest hash
- Add common utility method to get the operator id annotation from a resource
- Allow default operator (id="camel-k") to handle legacy resources that are missing proper operator id annotations
- Allow operators that use a proper id to reconcile resources on any namespace (regardless of operator mode global vs. local and regardless of existing namespace lease)
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Make sure to not install same operator id twice
- Users must use --force option to overwrite existing operator with given id
- Searches for all integration platforms in any namespace and verify that platform name does not exist
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Make sure to use a known operator id when running an integration
- Check performs a cluster wide search for integration platforms and verifies that the platform name exists
- Users may use --force option to skip the check
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Introduce operator-id option to kamel CLI bind command
- Make sure to use proper operator id when creating the binding
- Rebuild Kamelet binding when operator id annotation changes
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Integration platforms need to be visible to authenticated users in order to verify operator ids
- Add integration platform viewer role in all namespaces that hold at least one integration platform so users can get and list these platform instances
- Automatically add the role during kamel CLI installation and in platform trait
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Make sure that each operator instance adds its integration platform if not already exists
- Automatically adds an integration platform in operator start-up
- Also adds integration platform viewer role so authenticated users can see the platform instance
- Required for kamel CLI to verify existing operator ids on the cluster when doing an operator install or running integrations
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Find local integration platform or try to search for default operator in any namespace instead of just looking for the "camel-k" integration platform in local namespace
- Should eliminate nasty "No Integration platform available in current namespace" warnings when using the kamel CLI
astefanutti pushed a commit that referenced this issue Jul 11, 2022
- Handle forbidden error when user lacks privileges to list all integration platforms on cluster during install command
- Use unique operator id when installing operators in test namespaces
- Make sure to run integrations with respective operator id for selected reconciling
- Automatically uninstall operators after the test
- Introduce new GitHub action to install Camel K in global mode
- Run YAKS e2e tests with single global Camel K operator
- Use local operator with id camel-k-preflight in preflight test checks and remove operator once checks are done
- Update deployment ready logic with pod spec comparison based on integration digest and container image only
astefanutti pushed a commit that referenced this issue Jul 11, 2022
astefanutti pushed a commit that referenced this issue Jul 11, 2022
In favor of using kamel-install-global-operator action
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants