Skip to content

Commit

Permalink
Add debug logging patch to ClusterClass
Browse files Browse the repository at this point in the history
Signed-off-by: killianmuldoon <kmuldoon@vmware.com>
  • Loading branch information
killianmuldoon committed Sep 26, 2023
1 parent a36712e commit ccf8a93
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ spec:
value: false
- name: externalCloudProvider
value: true
- name: kubeControlPlaneLogLevel
value: "2"
- name: kubeletLogLevel
value: "4"
clusterNetwork:
services:
cidrBlocks:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ spec:
value: true
- name: externalCloudProvider
value: true
- name: kubeControlPlaneLogLevel
value: "2"
- name: kubeletLogLevel
value: "4"
clusterNetwork:
services:
cidrBlocks:
Expand Down
112 changes: 96 additions & 16 deletions test/e2e/data/infrastructure-docker/main/clusterclass-quick-start.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,18 @@ spec:
openAPIV3Schema:
type: boolean
default: false
- name: kubeControlPlaneLogLevel
schema:
openAPIV3Schema:
type: string
description: "Log level for kube-apiserver, kube-scheduler and kube-controller-manager"
default: "0"
- name: kubeletLogLevel
schema:
openAPIV3Schema:
type: string
description: "Log level for kubelets on control plane and worker nodes"
default: "0"
patches:
- name: lbImageRepository
definitions:
Expand Down Expand Up @@ -290,13 +302,11 @@ spec:
controlPlane: true
jsonPatches:
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/joinConfiguration/nodeRegistration/kubeletExtraArgs"
value:
cloud-provider: "external"
path: "/spec/template/spec/kubeadmConfigSpec/joinConfiguration/nodeRegistration/kubeletExtraArgs/cloud-provider"
value: "external"
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/initConfiguration/nodeRegistration/kubeletExtraArgs"
value:
cloud-provider: "external"
path: "/spec/template/spec/kubeadmConfigSpec/initConfiguration/nodeRegistration/kubeletExtraArgs/cloud-provider"
value: "external"
- name: machineDeploymentExternalCloudProvider
enabledIf: "{{ .externalCloudProvider }}"
description: "Configures kubelet to run with an external cloud provider for machineDeployment nodes."
Expand All @@ -310,9 +320,8 @@ spec:
- '*-worker'
jsonPatches:
- op: add
path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs"
value:
cloud-provider: "external"
path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/cloud-provider"
value: "external"
- selector:
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
Expand All @@ -322,9 +331,8 @@ spec:
- '*-worker'
jsonPatches:
- op: add
path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs"
value:
cloud-provider: "external"
path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/cloud-provider"
value: "external"
- name: localEndpointIPv6
enabledIf: "{{ .ipv6Primary }}"
description: "Configures KCP to use IPv6 for its localAPIEndpoint."
Expand All @@ -349,9 +357,8 @@ spec:
controlPlane: true
jsonPatches:
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/extraArgs"
value:
admission-control-config-file: "/etc/kubernetes/kube-apiserver-admission-pss.yaml"
path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/extraArgs/admission-control-config-file"
value: "/etc/kubernetes/kube-apiserver-admission-pss.yaml"
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/extraVolumes"
value:
Expand Down Expand Up @@ -385,6 +392,71 @@ spec:
namespaces: [kube-system]
path: /etc/kubernetes/kube-apiserver-admission-pss.yaml
enabledIf: '{{ semverCompare ">= v1.24" .builtin.controlPlane.version }}'
- name: controlPlaneLogLevel
description: "Configures control plane components and kubelet to log at v=4."
definitions:
- selector:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlaneTemplate
matchResources:
controlPlane: true
jsonPatches:
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/extraArgs/v"
valueFrom:
variable: kubeControlPlaneLogLevel
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/controllerManager/extraArgs/v"
valueFrom:
variable: kubeControlPlaneLogLevel
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/scheduler/extraArgs/v"
valueFrom:
variable: kubeControlPlaneLogLevel
- name: controlPlaneKubeletLogLevel
description: "Configures worker kubelets to log at v=4."
definitions:
- selector:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlaneTemplate
matchResources:
controlPlane: true
jsonPatches:
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/joinConfiguration/nodeRegistration/kubeletExtraArgs/v"
valueFrom:
variable: kubeletLogLevel
- op: add
path: "/spec/template/spec/kubeadmConfigSpec/initConfiguration/nodeRegistration/kubeletExtraArgs/v"
valueFrom:
variable: kubeletLogLevel
- name: workerKubeletLogLevel
description: "Configures worker kubelets to log at v=4."
definitions:
- selector:
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
matchResources:
machineDeploymentClass:
names:
- '*-worker'
jsonPatches:
- op: add
path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/v"
valueFrom:
variable: kubeletLogLevel
- selector:
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
matchResources:
machinePoolClass:
names:
- '*-worker'
jsonPatches:
- op: add
path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/v"
valueFrom:
variable: kubeletLogLevel
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: DockerClusterTemplate
Expand Down Expand Up @@ -447,9 +519,17 @@ spec:
nodeDrainTimeout: 1s
kubeadmConfigSpec:
clusterConfiguration:
# extraArgs must be non-empty for control plane components to enable patches from ClusterClass to work.
controllerManager:
extraArgs: { enable-hostpath-provisioner: 'true' }
extraArgs:
enable-hostpath-provisioner: 'true'
v: "0"
scheduler:
extraArgs:
v: "0"
apiServer:
extraArgs:
v: "0"
# host.docker.internal is required by kubetest when running on MacOS because of the way ports are proxied.
certSANs: [localhost, host.docker.internal, "::", "::1", "127.0.0.1", "0.0.0.0"]
initConfiguration:
Expand Down

0 comments on commit ccf8a93

Please sign in to comment.