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

kinder: add test workflow for testing ControlPlaneKubeletLocalMode feature gate #3080

Merged
merged 3 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
12 changes: 12 additions & 0 deletions kinder/ci/tools/update-workflows/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -248,3 +248,15 @@ jobGroups:
- ./templates/workflows/encryption-algorithm-tasks.yaml
jobs:
- kubernetesVersion: latest

- name: control-plane-local-kubelet-mode
testInfraJobSpec:
targetFile: kubeadm-kinder-control-plane-local-kubelet-mode.yaml
template: ./templates/testinfra/kubeadm-kinder-control-plane-local-kubelet-mode.yaml
kinderWorkflowSpec:
targetFile: control-plane-local-kubelet-mode-{{ .KubernetesVersion }}.yaml
template: ./templates/workflows/control-plane-local-kubelet-mode.yaml
additionalFiles:
- ./templates/workflows/control-plane-local-kubelet-mode-tasks.yaml
jobs:
- kubernetesVersion: latest
chrischdi marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
- name: ci-kubernetes-e2e-kubeadm-kinder-cp-kubelet-local-{{ dashVer .KubernetesVersion }}
chrischdi marked this conversation as resolved.
Show resolved Hide resolved
cluster: eks-prow-build-cluster
interval: {{ .JobInterval }}
decorate: true
labels:
preset-dind-enabled: "true"
preset-kind-volume-mounts: "true"
annotations:
testgrid-dashboards: sig-cluster-lifecycle-kubeadm
testgrid-tab-name: kubeadm-kinder-cp-kubelet-local-{{ dashVer .KubernetesVersion }}
chrischdi marked this conversation as resolved.
Show resolved Hide resolved
testgrid-alert-email: sig-cluster-lifecycle-kubeadm-alerts@kubernetes.io
description: "OWNER: sig-cluster-lifecycle (kinder); Uses kubeadm/kinder to create a cluster using ControlPlaneKubeletLocalMode to join control-plane and run kubeadm-e2e and the conformance suite"
chrischdi marked this conversation as resolved.
Show resolved Hide resolved
testgrid-num-columns-recent: "20"
{{ .AlertAnnotations }}
decoration_config:
timeout: 60m
extra_refs:
- org: kubernetes
repo: kubernetes
base_ref: {{ branchFor .KubernetesVersion }}
path_alias: k8s.io/kubernetes
- org: kubernetes
repo: kubeadm
base_ref: main
path_alias: k8s.io/kubeadm
spec:
containers:
- image: gcr.io/k8s-staging-test-infra/kubekins-e2e:{{ .TestInfraImage }}-{{ imageVer .KubernetesVersion }}
command:
- runner.sh
- "../kubeadm/kinder/ci/kinder-run.sh"
args:
- {{ .WorkflowFile }}
securityContext:
privileged: true
resources:
limits:
memory: "9000Mi"
cpu: 2000m
requests:
memory: "9000Mi"
cpu: 2000m
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# IMPORTANT! this workflow is imported by control-plane-local-kubelet-mode-* workflows.
version: 1
summary: |
This workflow implements a sequence of tasks used test the proper functioning
of kubeadm not in control plane local kubelet mode during joining control plane.
chrischdi marked this conversation as resolved.
Show resolved Hide resolved
vars:
# vars defines default values for variable used by tasks in this workflow;
# those values might be overridden when importing this files.
kubernetesVersion: v1.31.0
upgradeVersion: v1.31.0
controlPlaneNodes: 3
workerNodes: 2
baseImage: kindest/base:v20221102-76f15095 # has containerd
image: kindest/node:test
clusterName: kinder-control-plane-local-kubelet-mode
kubeadmVerbosity: 6
tasks:
- name: pull-base-image
description: |
pulls kindest/base image with docker in docker and all the prerequisites necessary for running kind(er)
cmd: docker
args:
- pull
- "{{ .vars.baseImage }}"
- name: add-kubernetes-versions
description: |
creates a node-image-variant by adding a Kubernetes version
cmd: kinder
args:
- build
- node-image-variant
- --base-image={{ .vars.baseImage }}
- --image={{ .vars.image }}
- --with-init-artifacts={{ .vars.kubernetesVersion }}
- --with-upgrade-artifacts={{ .vars.upgradeVersion }}
- --loglevel=debug
timeout: 15m
- name: create-cluster
description: |
create a set of nodes ready for hosting the Kubernetes cluster
cmd: kinder
args:
- create
- cluster
- --name={{ .vars.clusterName }}
- --image={{ .vars.image }}
- --control-plane-nodes={{ .vars.controlPlaneNodes }}
- --worker-nodes={{ .vars.workerNodes }}
- --loglevel=debug
timeout: 5m
- name: init
description: |
Initializes the Kubernetes cluster with version "initVersion"
by starting the boostrap control-plane nodes
cmd: kinder
args:
- do
- kubeadm-init
- --name={{ .vars.clusterName }}
- --loglevel=debug
- --kubeadm-verbosity={{ .vars.kubeadmVerbosity }}
- --kubeadm-feature-gate="ControlPlaneKubeletLocalMode=true"
- --copy-certs=auto
timeout: 5m
- name: join
chrischdi marked this conversation as resolved.
Show resolved Hide resolved
description: |
Join the other nodes to the Kubernetes cluster
cmd: kinder
args:
- do
- kubeadm-join
- --name={{ .vars.clusterName }}
- --loglevel=debug
- --kubeadm-verbosity={{ .vars.kubeadmVerbosity }}
- --copy-certs=auto
timeout: 10m
- name: upgrade
neolit123 marked this conversation as resolved.
Show resolved Hide resolved
description: |
upgrades the cluster to Kubernetes "upgradeVersion"
cmd: kinder
args:
- do
- kubeadm-upgrade
- --upgrade-version={{ .vars.upgradeVersion }}
- --name={{ .vars.clusterName }}
- --loglevel=debug
- --kubeadm-verbosity={{ .vars.kubeadmVerbosity }}
timeout: 15m
- name: cluster-info
description: |
Runs cluster-info
cmd: kinder
args:
- do
- cluster-info
- --name={{ .vars.clusterName }}
- --loglevel=debug
- name: e2e-kubeadm
description: |
Runs kubeadm e2e tests
cmd: kinder
args:
- test
- e2e-kubeadm
- --test-flags=--report-dir={{ .env.ARTIFACTS }} --report-prefix=e2e-kubeadm
- --name={{ .vars.clusterName }}
- --loglevel=debug
timeout: 10m
- name: e2e
description: |
Runs Kubernetes e2e test (conformance)
cmd: kinder
args:
- test
- e2e
- --test-flags=--report-dir={{ .env.ARTIFACTS }} --report-prefix=e2e
- --parallel
- --name={{ .vars.clusterName }}
- --loglevel=debug
timeout: 35m
- name: get-logs
description: |
Collects all the test logs
cmd: kinder
args:
- export
- logs
- --loglevel=debug
- --name={{ .vars.clusterName }}
- "{{ .env.ARTIFACTS }}"
force: true
timeout: 5m
# kind export log is know to be flaky, so we are temporary ignoring errors in order
# to make the test pass in case everything else passed
# see https://github.com/kubernetes-sigs/kind/issues/456
ignoreError: true
- name: reset
description: |
Exec kubeadm reset
cmd: kinder
args:
- do
- kubeadm-reset
- --name={{ .vars.clusterName }}
- --loglevel=debug
- --kubeadm-verbosity={{ .vars.kubeadmVerbosity }}
force: true
- name: delete
description: |
Deletes the cluster
cmd: kinder
args:
- delete
- cluster
- --name={{ .vars.clusterName }}
- --loglevel=debug
force: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: 1
summary: |
This workflow tests the proper functioning of the {{ .KubernetesVersion }} version of both kubeadm and Kubernetes using
control plane local kubelet mode to join control plane.
chrischdi marked this conversation as resolved.
Show resolved Hide resolved
test grid > https://testgrid.k8s.io/sig-cluster-lifecycle-kubeadm#kubeadm-kinder-control-plane-local-kubelet-mode{{ dashVer .KubernetesVersion }}
config > https://git.k8s.io/test-infra/config/jobs/kubernetes/sig-cluster-lifecycle/{{ .TargetFile }}
vars:
kubernetesVersion: "\{\{ resolve `ci/{{ ciLabelFor .KubernetesVersion }}` \}\}"
upgradeVersion: "\{\{ resolve `ci/{{ ciLabelFor .KubernetesVersion }}` \}\}"
tasks:
- import: control-plane-local-kubelet-mode-tasks.yaml
12 changes: 12 additions & 0 deletions kinder/ci/workflows/control-plane-local-kubelet-mode-latest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# AUTOGENERATED by https://git.k8s.io/kubeadm/kinder/ci/tools/update-workflows
version: 1
summary: |
This workflow tests the proper functioning of the latest version of both kubeadm and Kubernetes using
control plane local kubelet mode to join control plane.
test grid > https://testgrid.k8s.io/sig-cluster-lifecycle-kubeadm#kubeadm-kinder-control-plane-local-kubelet-modelatest
config > https://git.k8s.io/test-infra/config/jobs/kubernetes/sig-cluster-lifecycle/kubeadm-kinder-control-plane-local-kubelet-mode.yaml
vars:
kubernetesVersion: "{{ resolve `ci/latest` }}"
upgradeVersion: "{{ resolve `ci/latest` }}"
tasks:
- import: control-plane-local-kubelet-mode-tasks.yaml
Loading