kyma-project / control-plane

A flexible and easy way to manage Kyma Runtimes
Apache License 2.0
16 stars 113 forks source link

Default modules and configurable module list in KEB #3027

Closed pbochynski closed 7 months ago

pbochynski commented 11 months ago

Description Provide a way to specify the default module list for new Kyma instances in KEB. The default list should be applied only if the user does not select modules. The default modules are applied once when Kyma resource is created by KEB in the KCP, and then applied in the SKR by lifecycle-manager. When Kyma resource is created in the SKR it becomes the single source of truth. Users can modify Kyma resources in SKR and even remove default modules later.

Reasons Almost all usage scenarios for Kyma Runtime require an ingress gateway and some BTP services. Therefore after creating Kyma instance users have to enable istio and btp-operator modules before they can deploy their applications. It is also not trivial to automate module installation as it requires kubeconfig for the created cluster. Default modules will make standard use cases (like deploying CAP applications) working out of the box. On the other hand, users who have specific module requirements can still get what they want. Examples:

  1. Empty cluster (no modules)
     modules: []
  2. Cluster with default modules:
    <modules not configured in the instance parameters>
  3. Selected modules with default configuration:
      modules: ["istio", "btp-operator", "telemetry", "serverless"]
  4. Selected modules with custom configuration:
      modules: [
         {"name":"istio", "channel":"fast", "customResourcePolicy":"Ignore"},
         {"name":"serverless"}
      ]

Attachments

PK85 commented 11 months ago

Challenges:

Alternative MVP solution:

abbi-gaurav commented 11 months ago

Btp-operator would be required when extending SAP Cloud Solutions, especially with the S/4 Stack.

Currently, two major Cloud Solutions does not require use of BTP for extensibility

With SAP Cloud for customer v2, this will change and it will also need BTP Service consumption.

PK85 commented 10 months ago

Implementation ticket: https://github.com/kyma-project/kyma-environment-broker/issues/48

PK85 commented 9 months ago

Decision: We decided together with @pbochynski @ukff that KEB will not validate if the module name exists on the server side. The user just provides module names and then KEB passes it to Kyma resource. Then KEB returns the status to the user that the Kyma cluster is provisioned successfully.

What needs to be done is to add technical module names to the documentation so that users will know what they can use. + We will provide some JSON input parameters examples of how to work with modules so that users can use it in the JSON view.

Reason 1) We want to avoid having the whole LM validation in the KEB component that we would need to keep in sync every time LM releases a new feature for module templates. 2) Assuming we have also "only for BETA" and "only for INTERNAL" modules available, we cannot recognize what users can or cannot use when providing input parameters to KEB. In that phase, KEB has no way to validate that.

kyma-bot commented 7 months ago

This issue or PR has been automatically marked as stale due to the lack of recent activity. Thank you for your contributions.

This bot triages issues and PRs according to the following rules:

You can:

If you think that I work incorrectly, kindly raise an issue with the problem.

/lifecycle stale

kyma-bot commented 7 months ago

This issue or PR has been automatically closed due to the lack of activity. Thank you for your contributions.

This bot triages issues and PRs according to the following rules:

You can:

If you think that I work incorrectly, kindly raise an issue with the problem.

/close

kyma-bot commented 7 months ago

@kyma-bot: Closing this issue.

In response to [this](https://github.com/kyma-project/control-plane/issues/3027#issuecomment-1850038494): >This issue or PR has been automatically closed due to the lack of activity. >Thank you for your contributions. > >This bot triages issues and PRs according to the following rules: >- After 60d of inactivity, `lifecycle/stale` is applied >- After 7d of inactivity since `lifecycle/stale` was applied, the issue is closed > >You can: >- Reopen this issue or PR with `/reopen` >- Mark this issue or PR as fresh with `/remove-lifecycle stale` > >If you think that I work incorrectly, kindly [raise an issue](https://github.com/kyma-project/test-infra/issues/new/choose) with the problem. > >/close Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.