Skip to content

Modernize etcd storageclass to out-of-tree provisioner#1764

Merged
gardener-prow[bot] merged 3 commits intogardener:masterfrom
voelzmo:enh/modernize-etcd-storageclass
Apr 13, 2026
Merged

Modernize etcd storageclass to out-of-tree provisioner#1764
gardener-prow[bot] merged 3 commits intogardener:masterfrom
voelzmo:enh/modernize-etcd-storageclass

Conversation

@voelzmo
Copy link
Copy Markdown
Member

@voelzmo voelzmo commented Apr 10, 2026

How to categorize this PR?

/area storage
/kind enhancement
/platform aws

What this PR does / why we need it:

Modernizes the etcd StorageClass for AWS:

  1. Replaces the deprecated in-tree provisioner kubernetes.io/aws-ebs with the EBS CSI driver ebs.csi.aws.com
  2. Extracts the hardcoded type: gp3 disk parameter from the StorageClass template into values.yaml under config.etcd.storage.parameters, making it configurable by operators.

The existing config.etcd.storage.encrypted boolean is preserved for backwards compatibility.

Which issue(s) this PR fixes:
Fixes #1716

Special notes for your reviewer:

The StorageClass template now renders arbitrary key/value pairs from config.etcd.storage.parameters, so operators can pass any EBS
CSI driver parameter (e.g. kmsKeyId, throughput) without chart changes.

The encrypted boolean in values is kept for backwards compatibility: if set, encrypted: "true" is still emitted unless the operator has already included encrypted in the parameters map, avoiding duplicate keys.

Release note:

The etcd StorageClass provisioner has been switched from in-tree `kubernetes.io/aws-ebs` to the EBS CSI driver `ebs.csi.aws.com`. The disk type is now configurable via `config.etcd.storage.parameters` in the Helm values (default: `type: gp3`).
The old way of configuring it via `.Values.config.etcd.storage.encrypted` is now deprecated and will be removed with a future release.

voelzmo added 3 commits April 10, 2026 09:41
Replace the deprecated in-tree provisioner `kubernetes.io/aws-ebs` with
the out-of-tree EBS CSI driver `ebs.csi.aws.com`.
Introduce `config.etcd.storage.parameters` in values.yaml so operators
can pass arbitrary CSI driver parameters (e.g. `type`, `kmsKeyId`)
without chart changes.

The existing `config.etcd.storage.encrypted` boolean is preserved for
backwards compatibility: if set, `encrypted: "true"` is still emitted
unless the operator has already included `encrypted` in the `parameters`
map, avoiding duplicate keys.
@gardener-prow gardener-prow Bot added the area/storage Storage related label Apr 10, 2026
@voelzmo voelzmo requested a review from a team as a code owner April 10, 2026 08:27
@gardener-prow gardener-prow Bot added kind/enhancement Enhancement, improvement, extension size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Apr 10, 2026
@github-actions
Copy link
Copy Markdown
Contributor

This update modernizes the AWS EBS storage configuration by transitioning from the legacy Kubernetes EBS provisioner to the AWS EBS CSI driver, while adding flexibility for custom storage parameters in Gardener extension deployments.

Walkthrough

  • Refactor: Migrated from legacy kubernetes.io/aws-ebs provisioner to modern ebs.csi.aws.com CSI driver for improved performance and feature support
  • New Feature: Added configurable storage parameters section allowing users to specify custom EBS settings beyond the default gp3 volume type
  • Bug Fix: Enhanced parameter validation logic to prevent conflicts when users provide custom encrypted settings in their parameters
  • Chore: Updated Helm chart rawChart with compressed configuration changes to reflect the new storage architecture

Model: claude-sonnet-4-20250514 | Prompt Tokens: 14995 | Completion Tokens: 177

@federated-github-access federated-github-access Bot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Apr 10, 2026
@voelzmo
Copy link
Copy Markdown
Member Author

voelzmo commented Apr 10, 2026

Especially not sure about the need for backwards compatibility regarding the encrypted configuration of the volumes. WDYT?

@federated-github-access federated-github-access Bot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. and removed ok-to-test Indicates a non-member PR verified by an org member that is safe to test. labels Apr 10, 2026
@gardener-prow gardener-prow Bot added the cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. label Apr 10, 2026
@voelzmo voelzmo changed the title Enh/modernize etcd storageclass Modernize etcd storageclass to out-of-tree provisioner Apr 10, 2026
@federated-github-access federated-github-access Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed ok-to-test Indicates a non-member PR verified by an org member that is safe to test. labels Apr 10, 2026
@hebelsan
Copy link
Copy Markdown
Contributor

Especially not sure about the need for backwards compatibility regarding the encrypted configuration of the volumes. WDYT?

Hm, I’d prefer having the encryption under the parameter field only...
Could we introduce this with a breaking change announcement?

Copy link
Copy Markdown
Member

@AndreasBurger AndreasBurger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

nvm, did not see the latest comments.

@gardener-prow gardener-prow Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 13, 2026
@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented Apr 13, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: AndreasBurger

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented Apr 13, 2026

LGTM label has been added.

DetailsGit tree hash: c4685f9b961ed256bb4769014fc9adebf5595fb5

@gardener-prow gardener-prow Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 13, 2026
@AndreasBurger AndreasBurger self-requested a review April 13, 2026 09:31
@gardener-prow gardener-prow Bot merged commit 79682d6 into gardener:master Apr 13, 2026
107 checks passed
@AndreasBurger
Copy link
Copy Markdown
Member

And it was merged by prow. Splendid.

I'll follow up on the latest comment from Alex and do the work

@federated-github-access federated-github-access Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed ok-to-test Indicates a non-member PR verified by an org member that is safe to test. labels Apr 13, 2026
@AndreasBurger
Copy link
Copy Markdown
Member

We talked about it, and this is good for now. We'll move towards the new scheme (i.e. using .Values.config.etcd.storage.parameters for all config) at a future point. I've put a deprecation notice for the old way into the release notes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/storage Storage related cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. kind/enhancement Enhancement, improvement, extension lgtm Indicates that a PR is ready to be merged. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Modernize etcd storageclass to use out-of-tree csi provisioner

3 participants