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

[CPDEV-95920] Support KubeProxyConfiguration as services.kubeadm_kube-proxy section #571

Merged
merged 2 commits into from
Dec 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions documentation/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ This section provides information about the inventory, features, and steps for i
- [Cloud Provider Plugin](#cloud-provider-plugin)
- [Service Account Issuer](#service-account-issuer)
- [kubeadm_kubelet](#kubeadm_kubelet)
- [kubeadm_kube-proxy](#kubeadm_kube-proxy)
- [kubeadm_patches](#kubeadm_patches)
- [kernel_security](#kernel_security)
- [selinux](#selinux)
Expand Down Expand Up @@ -1078,7 +1079,8 @@ In the `services` section, you can configure the service settings. The settings

*OS specific*: No

In `services.kubeadm` section, you can override the original settings for the kubeadm. For more information these settings, refer to the [Official Kubernetes Documentation](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file).
In the `services.kubeadm` section, you can override the original settings for kubeadm.
For more information about these settings, refer to the official Kubernetes documentation at [https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file).
By default, the installer uses the following parameters:

|Parameter| Default Value |
Expand Down Expand Up @@ -1476,7 +1478,8 @@ Example result:

*OS specific*: No

In `services.kubeadm_kubelet` section, you can override the original settings for the kubelet. For more information these settings, refer to the [Official Kubernetes Documentation](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file).
In the `services.kubeadm_kubelet` section, you can override the original settings for kubelet.
For more information about these settings, refer to the official Kubernetes documentation at [https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file).
By default, the installer uses the following parameters:

|Parameter|Default Value|
Expand Down Expand Up @@ -1508,6 +1511,23 @@ services:
cgroupDriver: systemd
```

#### kubeadm_kube-proxy

*Installation task*: `deploy.kubernetes`

*Can cause reboot*: No

*Can restart service*: Always yes, `kubelet`

*OS specific*: No

In the `services.kubeadm_kube-proxy` section, you can override the original settings for kube-proxy.
For more information about these settings, refer to the official Kubernetes documentation at [https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConfiguration](https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConfiguration).
By default, the installer uses the following parameters:

|Parameter|Default Value|
|---|---|

#### kubeadm_patches

*Installation task*: `deploy.kubernetes`
Expand Down
3 changes: 2 additions & 1 deletion kubemarine/kubernetes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -811,8 +811,9 @@ def is_cluster_installed(cluster: KubernetesCluster) -> bool:

def get_kubeadm_config(inventory: dict) -> str:
kubeadm_kubelet = yaml.dump(inventory["services"]["kubeadm_kubelet"], default_flow_style=False)
kubeadm_kube_proxy = yaml.dump(inventory["services"]["kubeadm_kube-proxy"], default_flow_style=False)
kubeadm = yaml.dump(inventory["services"]["kubeadm"], default_flow_style=False)
return f'{kubeadm_kubelet}---\n{kubeadm}'
return f'{kubeadm_kube_proxy}---\n{kubeadm_kubelet}---\n{kubeadm}'


def upgrade_first_control_plane(upgrade_group: NodeGroup, cluster: KubernetesCluster, **drain_kwargs: Any) -> None:
Expand Down
3 changes: 3 additions & 0 deletions kubemarine/resources/configurations/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ services:
podPidsLimit: 4096
cgroupDriver: systemd
serializeImagePulls: false
kubeadm_kube-proxy:
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
kubeadm_flags:
ignorePreflightErrors: Port-6443,CoreDNSUnsupportedPlugins
kubeadm:
Expand Down
3 changes: 3 additions & 0 deletions kubemarine/resources/schemas/definitions/services.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
"kubeadm_kubelet": {
"$ref": "services/kubeadm_kubelet.json"
},
"kubeadm_kube-proxy": {
"$ref": "services/kubeadm_kube-proxy.json"
},
"kubeadm_patches": {
"$ref": "services/kubeadm_patches.json"
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"type": "object",
"description": "Override the original settings for the kube-proxy",
"properties": {
"apiVersion": {"enum": ["kubeproxy.config.k8s.io/v1alpha1"], "default": "kubeproxy.config.k8s.io/v1alpha1"},
"kind": {"enum": ["KubeProxyConfiguration"], "default": "KubeProxyConfiguration"}
}
}