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

Remove secondary IntegrationPlatform in favor of using IntegrationProfile settings #5097

Closed
christophd opened this issue Jan 24, 2024 · 3 comments
Labels
kind/feature New feature or request

Comments

@christophd
Copy link
Contributor

christophd commented Jan 24, 2024

Requirement

Users can add a custom IntegrationPlatform CR to their individual user namespace in order to apply customized settings to the operator. In case multiple IntegrationPlatform CRs are added to the operator namespace the concept of secondary IntegrationPlatforms has been introduced.

We should separate user defined customization settings from the IntegrationPlatform CR for better maintainability.

Problem

The concept of user defined IntegrationPlatforms and secondary IntegrationPlatforms has been the source of many unknown side effects and general confusion in the past. The maintenance of the different IntegrationPlatforms is quite difficult.

Proposal

Completely remove the concept of secondary IntegrationPlatforms. Make the IntegrationPlatform 1:1 with an operator so there is only one single source of truth for the operator instance.

Introduce a separate custom resource definition called IntegrationProfile that allows the user to customize a subset of IntegrationPlatform settings. The user may add multiple IntegrationProfile custom resources in the user namespace and just select the configuration to apply (via annotation on the Integration resource for instance). The administrator may add multiple IntegrationProfile custom resources to the operator namespace, too in order to let the user choose from a predefined set of named configurations.

The separation of CRDs (IntegrationPlatform and IntegrationProfile) simplifies the logic as we do not have primary and secondary resources anymore. Also the user may not be allowed to overwrite all IntegrationPlatform settings for security reasons (e.g. buildStrategy, maxRunningBuildsLimit). These restricted settings may only be changed in the IntegrationPlatform resource by a system administrator.

Open questions

Do we need to apply an automated migration strategy from secondary IntegrationPlatform to IntegrationProfile

@christophd christophd added the kind/feature New feature or request label Jan 24, 2024
@lburgazzoli
Copy link
Contributor

@christophd
Copy link
Contributor Author

Maybe IntegrationProfile is a better name than PlatformConfiguration

@christophd christophd changed the title Remove secondary IntegrationPlatform in favor of using PlatformConfiguration settings Remove secondary IntegrationPlatform in favor of using IntegationProfile settings Feb 2, 2024
@christophd christophd changed the title Remove secondary IntegrationPlatform in favor of using IntegationProfile settings Remove secondary IntegrationPlatform in favor of using user IntegrationProfile settings Feb 2, 2024
@christophd christophd changed the title Remove secondary IntegrationPlatform in favor of using user IntegrationProfile settings Remove secondary IntegrationPlatform in favor of using IntegrationProfile settings Feb 2, 2024
christophd added a commit to christophd/camel-k that referenced this issue Feb 5, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Remove platform creation as part of the platform trait (avoids duplicate platform resources)
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 5, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Remove platform creation as part of the platform trait (avoids duplicate platform resources)
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 5, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Remove platform creation as part of the platform trait (avoids duplicate platform resources)
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 19, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Remove platform creation as part of the platform trait (avoids duplicate platform resources)
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 20, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 20, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 21, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 21, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 21, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 22, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 26, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 26, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- IntegrationPlatforms matching the operatorID do have precedence when searching for local platforms
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit to christophd/camel-k that referenced this issue Feb 27, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- IntegrationPlatforms matching the operatorID do have precedence when searching for local platforms
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
christophd added a commit that referenced this issue Feb 28, 2024
…tegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- IntegrationPlatforms matching the operatorID do have precedence when searching for local platforms
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
realMartinez pushed a commit to realMartinez/camel-k that referenced this issue Feb 29, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- IntegrationPlatforms matching the operatorID do have precedence when searching for local platforms
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
realMartinez pushed a commit to realMartinez/camel-k that referenced this issue Feb 29, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- IntegrationPlatforms matching the operatorID do have precedence when searching for local platforms
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
realMartinez pushed a commit to realMartinez/camel-k that referenced this issue Feb 29, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- IntegrationPlatforms matching the operatorID do have precedence when searching for local platforms
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
realMartinez pushed a commit to realMartinez/camel-k that referenced this issue Feb 29, 2024
…ing IntegrationProfile

- Remove secondary IntegrationPlatform mode
- Reduce logic to a single IntegrationPlatform per operator instance
- IntegrationPlatforms matching the operatorID do have precedence when searching for local platforms
- Introduce IntegrationProfile custom resource definition
- Let user customize a subset of IntegrationPlatform settings in IntegrationProfile
- Load IntegrationProfile settings when integration resource is annotated to select the profile
- Save trait configuration used to build the integration kit on the resource spec for future reference
@christophd
Copy link
Contributor Author

Closed with #5138

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants