diff --git a/documentation/Installation.md b/documentation/Installation.md index 9ee66e69a..557162d0b 100644 --- a/documentation/Installation.md +++ b/documentation/Installation.md @@ -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) @@ -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 | @@ -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| @@ -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` diff --git a/kubemarine/kubernetes/__init__.py b/kubemarine/kubernetes/__init__.py index 75a5dc65a..63a100a17 100644 --- a/kubemarine/kubernetes/__init__.py +++ b/kubemarine/kubernetes/__init__.py @@ -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: diff --git a/kubemarine/resources/configurations/defaults.yaml b/kubemarine/resources/configurations/defaults.yaml index c559441e0..88751c212 100644 --- a/kubemarine/resources/configurations/defaults.yaml +++ b/kubemarine/resources/configurations/defaults.yaml @@ -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: diff --git a/kubemarine/resources/schemas/definitions/services.json b/kubemarine/resources/schemas/definitions/services.json index 050f30ef6..cb616a7e6 100644 --- a/kubemarine/resources/schemas/definitions/services.json +++ b/kubemarine/resources/schemas/definitions/services.json @@ -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" }, diff --git a/kubemarine/resources/schemas/definitions/services/kubeadm_kube-proxy.json b/kubemarine/resources/schemas/definitions/services/kubeadm_kube-proxy.json new file mode 100644 index 000000000..89ff4a564 --- /dev/null +++ b/kubemarine/resources/schemas/definitions/services/kubeadm_kube-proxy.json @@ -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"} + } +}