Skip to content

Commit

Permalink
Address comments
Browse files Browse the repository at this point in the history
Signed-off-by: Joe Nathan Abellard <[email protected]>
  • Loading branch information
jabellard committed Sep 9, 2024
1 parent 83ea285 commit 02c0b27
Showing 1 changed file with 15 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Support to Specify Extra Volumes and Volume Mounts for Karmada Control Plane Components
title: Support to Specify Extra Volumes and Volume Mounts for Karmada API Server Component
authors:
- "@jabellard"
reviewers:
Expand All @@ -11,36 +11,41 @@ creation-date: 2024-07-29

---

# Support to Specify Extra Volumes and Volume Mounts for Karmada Control Plane Components
# Support to Specify Extra Volumes and Volume Mounts for Karmada API Server Component


## Summary

This proposal aims to introduce the ability to specify extra volumes and volume mounts for Karmada control plane components when creating a Karmada instance managed by the Karmada operator.
This proposal aims to introduce the ability to specify extra volumes and volume mounts for the Karmada API server component when creating a Karmada instance managed by the Karmada operator.
This enhancement will extend the current configuration capabilities, allowing users to meet additional requirements such as having the ability to configure encryption at rest or to configure
custom authentication webhooks.

## Motivation
Currently, the Karmada operator allows specifying extra arguments for the Karmada control plane components, but lacks support for specifying extra volumes and volume mounts for those components.
Currently, the Karmada operator allows specifying extra arguments for the Karmada API server component, but lacks support for specifying extra volumes and volume mounts for it.
This limitation hinders certain use cases that require additional configurations for security and customization. For instance, as of today, it's not possible to configure a custom authentication
webhook nor encryption at rest.

### Goals
- Enable users to specify extra volumes and volume mounts for Karmada control plane components.
- Enable users to specify extra volumes and volume mounts for Karmada API server components to unlock the following use cases:
- Ability to configure a custom authentication webhook
- Ability to configure encryption at rest

It's important to note that although this support will unlock the aforementioned use cases, given that there is a lot that can be configured for the API server component by having the ability to specify not only extra args, but
also extra volumes and volume mounts, other potential use cases requiring similar configurations are also unlocked.


### Non-Goals
- Introducing changes to the core functionality of the Karmada control plane components.
- Overhauling the existing configuration of Karmada control plane components beyond the scope of adding extra volumes and volume mounts.
- Introducing changes to the core functionality of the Karmada API server component.
- Overhauling the existing configuration of the Karmada API server component beyond the scope of adding extra volumes and volume mounts.


## Proposal
Introduce the new optional fields `ExtraVolumes` and `ExtraVolumeMounts` within Karmada control plane component configurations.
Introduce the new optional fields `ExtraVolumes` and `ExtraVolumeMounts` within the Karmada API server component configuration.

## Design Details

Introduce the new optional fields `ExtraVolumes` and `ExtraVolumeMounts` within Karmada control plane component configurations.
Let's take the API server component as an example. With these new fields, the configuration would look as follows:
Introduce the new optional fields `ExtraVolumes` and `ExtraVolumeMounts` within Karmada API server component configuration.
With these new fields, the configuration would look as follows:
```go
// KarmadaAPIServer holds settings to kube-apiserver component of the kubernetes.
// Karmada uses it as its own apiserver in order to provide Kubernetes-native APIs.
Expand Down

0 comments on commit 02c0b27

Please sign in to comment.