Skip to content

Provide configurable Gardener Generic Extensions to Kyma users #992

@ruanxin

Description

@ruanxin

Created on 2025-07-29 by Xin Ruan (@ruanxin ).

Decision log

Name Description
Title Provide Gardener Generic Extensions to Kyma users
Due date 2025-08-31
Status Accepted on 2025-08-13
Decision type Choice
Affected decisions The Registry Cache ADR

Context

Gardener offers generic extensions to enhance cluster capabilities — for example:

  • Falco: Improves security monitoring.
  • Registry Cache: Speeds up image pulls and reduces external dependencies.

These extensions are configured in the Gardener Shoot CR via Gardener API.

However, Kyma end users do not have direct Gardener API access. Instead, the Kyma Infrastructure Manager (KIM) acts as the bridge between SKR and the Garden cluster.

The Registry Cache ADR established a pattern where KIM:

  • Reads configuration from the Kyma runtime.
  • Delivers necessary resources to the Garden cluster via the Gardener API.

We now aim to extend this pattern to other Gardener extensions, creating a general, unified solution for enabling Kyma users to configure selected extensions.

Decision Drivers

  • Security: The solution must follow the principle of least privilege, minimizing access scopes and potential attack vectors.
  • User Experience (UX): The process for a user to enable and configure an extension should be straightforward and consistent with existing Kyma and Kubernetes practices.
  • Architectural Cohesion: The design should align with the existing Kyma and Gardener architecture, maintaining a clear separation of concerns between components.

Have a unified user experience

Treat extension as kyma regular module

apiVersion: operator.kyma-project.io/v1beta2
kind: Kyma
spec:
  channel: fast
  modules:
    - name: api-gateway
    - name: falco
    - name: registry-cache

Provide configuration resources to Gardener

To align with this decision and the Kyma module concept, the following architecture is proposed:

  1. User is able to enable extension as a standard Kyma module in SKR Kyma CR
    1. Optional: allow the user to configure the extension through BTP cockpit while provisioning Kyma
  2. KLM deploys the extension as a standard Kyma module. This module only contains the CRD and CR related to extension configuration.
  3. An Extension Manager (not decided if is a single manager or multiple ones) runs in the KCP and is responsible for syncing extension configuration from the SKR to the KCP, updating the corresponding Runtime CR.
  4. KIM reads the extension configuration from the Runtime CR and interacts with the Gardener API to fetch the shoot status.
    1. If there are additional external extension resources required, KIM access the SKR and send them to Gardener accordingly.
  5. KIM updates the Runtime CR about the extension status.
  6. The Extension Manager updates the extension CR in the SKR based on the status in the Runtime CR.
Image

Decision

  1. Scope

    • Applies only to Gardener extensions that:
      • Provide clear value to Kyma end users.
      • Require user configuration.
      • Can be safely exposed in Kyma.
    • In scope initially: Registry Cache, Falco.
    • Out of scope: Auditlog, DNS, and extensions not feasible for user exposure.
  2. Unified Module Approach

    • All supported extensions will be implemented as regular Kyma modules.
    • Each extension must:
      1. Provide a Kyma-specific configuration CR with a schema tailored for end users.
      2. Follow the Kyma module release process, including versioning and essential information, e.g: documentation.
      3. Deliver the configuration CR and its CRD as core module resources.
  3. Ownership

    • @kyma-project/framefrog team will implement and maintain Registry Cache and Falco.
    • Any future extension covered by this ADR will have a designated owner.

Consequences

Advantages

  • Unified, familiar UX for enabling and configuring extensions.
  • Leverages existing Kyma module tooling, release process, and lifecycle management.
  • Maintains clear separation of concerns between user-level CRs and Gardener-level operations.

Disadvantages

  • Each supported extension requires its own Kyma module with ongoing maintenance.
  • Adds sync complexity between SKR, KCP, and Gardener.

References

https://gardener.cloud/docs/extensions/_index#generic-extensions
https://gardener.cloud/docs/gardener/managed_seed/#managedseeds-register-shoot-as-seed

Metadata

Metadata

Assignees

No one assigned

    Labels

    decisionRelated to all issues that need a decision

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions