From 69df088b95de9b0b6ba6937261f7aecbd126ad77 Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Fri, 6 Oct 2023 17:07:58 +0300 Subject: [PATCH] add five upgrade specs for two vendors (#4853) * add three upgrade specs * wip * more upgrades * use shas --- testgrid/specs/customer-migration-specs.yaml | 608 ++++++++++++++++++- 1 file changed, 607 insertions(+), 1 deletion(-) diff --git a/testgrid/specs/customer-migration-specs.yaml b/testgrid/specs/customer-migration-specs.yaml index cc0eaea8d6..0505c4a2a1 100644 --- a/testgrid/specs/customer-migration-specs.yaml +++ b/testgrid/specs/customer-migration-specs.yaml @@ -212,7 +212,7 @@ # write to the volume create_random_file_and_upload_to_deployment "migration-test" "default" "./test.data" "/data/test.data" - # deploy sample app + # deploy sample app install_and_customize_kurl_integration_test_application postUpgradeScript: | # source helper functions @@ -235,3 +235,609 @@ echo "Kubernetes was not upgraded to 1.27.x" exit 1 fi + +- name: "Cust sha1:a272ff47a5d0163c65b97c2d2c5acfbc0396f2c4: k8s 1.19 -> 1.21, rook 1.0.4 -> openebs 3.3" + flags: "yes" + numSecondaryNodes: 2 + installerApiEndpoint: https://kurl.sh + installerSpec: + kubernetes: + version: 1.19.3 + docker: + daemonConfig: | + { + "exec-opts": ["native.cgroupdriver=systemd"], + "log-opts": { + "max-size": "100m", + "max-file": "3" + } + } + version: 19.03.10 + weave: + version: 2.6.5 + rook: + version: 1.0.4 + openebs: + isCstorEnabled: false + isLocalPVEnabled: true + localPVStorageClassName: openebs + namespace: openebs + version: 1.6.0 + contour: + tlsMinimumProtocolVersion: '1.2' + version: 1.7.0 + registry: + version: 2.7.1 + prometheus: + version: 0.49.0-17.1.3 + kotsadm: + applicationSlug: a-test-app + version: 1.57.0 + velero: + version: 1.6.0 + ekco: + minReadyMasterNodeCount: 2 + minReadyWorkerNodeCount: 0 + nodeUnreachableToleration: 5m + rookShouldUseAllNodes: false + shouldDisableClearNodes: false + shouldDisableRebootServices: false + shouldEnablePurgeNodes: false + version: 0.16.0 + kurl: + installerVersion: v2023.03.28-0 + additionalNoProxyAddresses: [ ] + goldpinger: + version: 3.2.0-4.1.1 + upgradeSpec: + kubernetes: + version: 1.21.14 + docker: + daemonConfig: | + { + "exec-opts": ["native.cgroupdriver=systemd"], + "log-opts": { + "max-size": "100m", + "max-file": "3" + } + } + version: 19.03.10 + weave: + version: 2.6.5-20221025 + openebs: + isCstorEnabled: false + isLocalPVEnabled: true + localPVStorageClassName: openebs + namespace: openebs + version: 3.3.0 + minio: + version: 2022-10-20T00-55-09Z + contour: + tlsMinimumProtocolVersion: '1.2' + version: 1.23.0 + registry: + version: 2.8.1 + kotsadm: + applicationSlug: a-test-app + version: 1.90.0 + s3Override: https://s3.kurl.sh/external/kotsadm-1.90.0.tar.gz + velero: + resticTimeout: 24h0m0s + version: 1.9.2 + ekco: + minReadyMasterNodeCount: 2 + minReadyWorkerNodeCount: 0 + nodeUnreachableToleration: 5m + shouldDisableClearNodes: false + shouldDisableRebootServices: false + shouldEnablePurgeNodes: false + version: 0.25.0 + goldpinger: + version: 3.7.0-5.5.0 + unsupportedOSIDs: + - ubuntu-2204 # this version of docker is too old for 22.04 + - rocky-92 + - ol-8x + postInstallScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # deploy sample app + install_and_customize_kurl_integration_test_application + postUpgradeScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # ensure we can redeploy sample app + check_and_customize_kurl_integration_test_application + + # ensure rook was removed + if kubectl get ns rook-ceph >/dev/null 2>&1; then + echo "rook-ceph namespace still exists" + exit 1 + fi + + # ensure kubernetes was upgraded + if [[ ! "$(kubectl get nodes --sort-by='{.status.nodeInfo.kubeletVersion}' -o=jsonpath='{.items[0].status.nodeInfo.kubeletVersion}' | sed 's/^v*//')" =~ "1.21" ]]; then + echo "Kubernetes was not upgraded to 1.21.x" + exit 1 + fi + + +- name: "Cust sha1:a272ff47a5d0163c65b97c2d2c5acfbc0396f2c4: k8s 1.21->1.26, openebs 3.3 -> 3.8.0, weave->flannel, docker->containerd" + flags: "yes" + numSecondaryNodes: 2 + installerApiEndpoint: https://kurl.sh + installerSpec: + kubernetes: + version: 1.21.14 + docker: + daemonConfig: | + { + "exec-opts": ["native.cgroupdriver=systemd"], + "log-opts": { + "max-size": "100m", + "max-file": "3" + } + } + version: 19.03.10 + weave: + version: 2.6.5-20221025 + openebs: + isCstorEnabled: false + isLocalPVEnabled: true + localPVStorageClassName: openebs + namespace: openebs + version: 3.3.0 + minio: + version: 2022-10-20T00-55-09Z + contour: + tlsMinimumProtocolVersion: '1.2' + version: 1.23.0 + registry: + version: 2.8.1 + kotsadm: + applicationSlug: a-test-app + version: 1.90.0 + s3Override: https://s3.kurl.sh/external/kotsadm-1.90.0.tar.gz + velero: + resticTimeout: 24h0m0s + version: 1.9.2 + ekco: + minReadyMasterNodeCount: 2 + minReadyWorkerNodeCount: 0 + nodeUnreachableToleration: 5m + shouldDisableClearNodes: false + shouldDisableRebootServices: false + shouldEnablePurgeNodes: false + version: 0.25.0 + kurl: + installerVersion: v2023.03.28-0 + additionalNoProxyAddresses: [ ] + goldpinger: + version: 3.7.0-5.5.0 + upgradeSpec: + kubernetes: + version: 1.26.6 + flannel: + version: 0.22.0 + openebs: + isLocalPVEnabled: true + localPVStorageClassName: openebs + namespace: openebs + version: 3.8.0 + minio: + version: 2023-09-04T19-57-37Z + contour: + tlsMinimumProtocolVersion: '1.2' + version: 1.25.0 + registry: + version: 2.8.2 + kotsadm: + applicationSlug: a-test-app + version: 1.102.0 + s3Override: https://s3.kurl.sh/external/kotsadm-1.102.0.tar.gz + velero: + resticTimeout: 24h0m0s + version: 1.11.0 + ekco: + minReadyMasterNodeCount: 2 + minReadyWorkerNodeCount: 0 + nodeUnreachableToleration: 5m + shouldDisableClearNodes: false + shouldDisableRebootServices: false + shouldEnablePurgeNodes: false + version: 0.28.3 + containerd: + version: 1.6.21 + goldpinger: + version: 3.7.0-6.0.1 + unsupportedOSIDs: + - ubuntu-2204 # this version of docker is too old for 22.04 + - rocky-92 + - ol-8x + postInstallScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # deploy sample app + install_and_customize_kurl_integration_test_application + postUpgradeScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # ensure we can redeploy sample app + check_and_customize_kurl_integration_test_application + + # ensure kubernetes was upgraded + if [[ ! "$(kubectl get nodes --sort-by='{.status.nodeInfo.kubeletVersion}' -o=jsonpath='{.items[0].status.nodeInfo.kubeletVersion}' | sed 's/^v*//')" =~ "1.26" ]]; then + echo "Kubernetes was not upgraded to 1.26.x" + exit 1 + fi + +- name: "Cust sha1:a272ff47a5d0163c65b97c2d2c5acfbc0396f2c4: k8s 1.19->1.26, rook 1.0.4 -> openebs 3.8.0, weave->flannel, docker->containerd" + flags: "yes" + numSecondaryNodes: 2 + installerApiEndpoint: https://kurl.sh + installerSpec: + kubernetes: + version: 1.19.3 + docker: + daemonConfig: | + { + "exec-opts": ["native.cgroupdriver=systemd"], + "log-opts": { + "max-size": "100m", + "max-file": "3" + } + } + version: 19.03.10 + weave: + version: 2.6.5 + rook: + version: 1.0.4 + openebs: + isCstorEnabled: false + isLocalPVEnabled: true + localPVStorageClassName: openebs + namespace: openebs + version: 1.6.0 + contour: + tlsMinimumProtocolVersion: '1.2' + version: 1.7.0 + registry: + version: 2.7.1 + prometheus: + version: 0.49.0-17.1.3 + kotsadm: + applicationSlug: a-test-app + version: 1.57.0 + velero: + version: 1.6.0 + ekco: + minReadyMasterNodeCount: 2 + minReadyWorkerNodeCount: 0 + nodeUnreachableToleration: 5m + rookShouldUseAllNodes: false + shouldDisableClearNodes: false + shouldDisableRebootServices: false + shouldEnablePurgeNodes: false + version: 0.16.0 + kurl: + installerVersion: v2023.03.28-0 + additionalNoProxyAddresses: [ ] + goldpinger: + version: 3.2.0-4.1.1 + upgradeSpec: + kubernetes: + version: 1.26.6 + flannel: + version: 0.22.3 # changed from 0.22.0 for testgrid support + openebs: + isLocalPVEnabled: true + localPVStorageClassName: openebs + namespace: openebs + version: 3.8.0 + minio: + version: 2023-09-04T19-57-37Z + contour: + tlsMinimumProtocolVersion: '1.2' + version: 1.25.0 + registry: + version: 2.8.2 + kotsadm: + applicationSlug: a-test-app + version: 1.102.0 + s3Override: https://s3.kurl.sh/external/kotsadm-1.102.0.tar.gz + velero: + resticTimeout: 24h0m0s + version: 1.11.0 + ekco: + minReadyMasterNodeCount: 2 + minReadyWorkerNodeCount: 0 + nodeUnreachableToleration: 5m + shouldDisableClearNodes: false + shouldDisableRebootServices: false + shouldEnablePurgeNodes: false + version: 0.28.3 + containerd: + version: 1.6.21 + goldpinger: + version: 3.7.0-6.0.1 + unsupportedOSIDs: + - ubuntu-2204 # this version of docker is too old for 22.04 + - rocky-92 + - ol-8x + postInstallScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # deploy sample app + install_and_customize_kurl_integration_test_application + postUpgradeScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # ensure we can redeploy sample app + check_and_customize_kurl_integration_test_application + + # ensure rook was removed + if kubectl get ns rook-ceph >/dev/null 2>&1; then + echo "rook-ceph namespace still exists" + exit 1 + fi + + # ensure kubernetes was upgraded + if [[ ! "$(kubectl get nodes --sort-by='{.status.nodeInfo.kubeletVersion}' -o=jsonpath='{.items[0].status.nodeInfo.kubeletVersion}' | sed 's/^v*//')" =~ "1.26" ]]; then + echo "Kubernetes was not upgraded to 1.26.x" + exit 1 + fi + + + +- name: "Cust sha1:52ed79b81826a130502b5df18c00d872e70c3b8e: k8s 1.17->1.26, rook 1.0.4 -> openebs 3.8.0, weave->flannel, docker->containerd, singlenode" + flags: "yes" + numSecondaryNodes: 0 + installerSpec: + kubernetes: + version: 1.17.13 + weave: + version: 2.6.5 + podCidrRange: /22 + rook: + version: 1.0.4 + contour: + version: 1.12.0 + registry: + version: 2.7.1 + prometheus: + version: 0.44.1 + kotsadm: + version: 1.38.0 + applicationSlug: cd4pe + velero: + version: 1.5.1 + ekco: + version: 0.10.0 + containerd: + version: 1.4.3 + upgradeSpec: + kubernetes: + containerLogMaxFiles: 10 + containerLogMaxSize: 50Mi + version: 1.26.6 + flannel: + podCIDRRange: /22 + version: 0.22.2 + openebs: + isLocalPVEnabled: true + localPVStorageClassName: default + version: 3.8.0 + minio: + version: 2023-09-04T19-57-37Z + contour: + version: 1.25.2 + registry: + version: 2.8.2 + prometheus: + version: 0.68.0-51.0.0 + kotsadm: + applicationSlug: puppet-application-manager/standalone + version: 1.102.2 + s3Override: https://s3.kurl.sh/external/kotsadm-1.102.2.tar.gz + velero: + version: 1.11.1 + ekco: + version: 0.28.3 + kurl: + hostPreflights: + apiVersion: troubleshoot.sh/v1beta2 + kind: HostPreflight + spec: + analyzers: + - textAnalyze: + checkName: forward-chain-reject-check + fileName: host-collectors/run-host/iptables-forward-chain.txt + outcomes: + - pass: + message: No default REJECT rule found in iptables FORWARD chain + when: 'false' + - fail: + message: > + Default REJECT rule found in iptables FORWARD chain. + + Puppet Application Manager does not support a default + REJECT rule in the + + FORWARD chain during installation. Run \"iptables -S + FORWARD\" to identify + + the REJECT rule, remove it and re-run the installer. It + can be safely + + appended to the FORWARD chain after the installation has + completed. + when: 'true' + regex: (?m)^REJECT\\s+all\\s+.*\\s+anywhere\\s+anywhere + collectors: + - run: + args: + - '-L' + - FORWARD + collectorName: iptables-forward-chain + command: iptables + additionalNoProxyAddresses: [ ] + containerd: + version: 1.6.22 + metricsServer: + version: 0.6.4 + unsupportedOSIDs: + - ubuntu-2204 # this version of docker is too old for 22.04 + - rocky-92 + - ol-8x + postInstallScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # deploy sample app + install_and_customize_kurl_integration_test_application + postUpgradeScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # ensure we can redeploy sample app + check_and_customize_kurl_integration_test_application + + # ensure rook was removed + if kubectl get ns rook-ceph >/dev/null 2>&1; then + echo "rook-ceph namespace still exists" + exit 1 + fi + + # ensure kubernetes was upgraded + if [[ ! "$(kubectl get nodes --sort-by='{.status.nodeInfo.kubeletVersion}' -o=jsonpath='{.items[0].status.nodeInfo.kubeletVersion}' | sed 's/^v*//')" =~ "1.26" ]]; then + echo "Kubernetes was not upgraded to 1.26.x" + exit 1 + fi + + +- name: "Cust sha1:52ed79b81826a130502b5df18c00d872e70c3b8e: k8s 1.17->1.26, rook 1.0.4 -> 1.12, weave->flannel, docker->containerd" + flags: "yes" + numPrimaryNodes: 3 + installerSpec: + kubernetes: + version: 1.17.13 + weave: + version: 2.6.5 + podCidrRange: /22 + rook: + version: 1.0.4 + contour: + version: 1.12.0 + registry: + version: 2.7.1 + prometheus: + version: 0.44.1 + kotsadm: + version: 1.38.0 + applicationSlug: cd4pe + velero: + version: 1.5.1 + ekco: + version: 0.10.0 + containerd: + version: 1.4.3 + upgradeSpec: + kubernetes: + HACluster: true + containerLogMaxFiles: 10 + containerLogMaxSize: 50Mi + version: 1.26.6 + flannel: + podCIDRRange: /22 + version: 0.22.2 + rook: +# blockDeviceFilter: vd[b-z] # removed + isBlockStorageEnabled: true + isSharedFilesystemDisabled: true + version: 1.12.3 + contour: + version: 1.25.2 + registry: + version: 2.8.2 + prometheus: + version: 0.68.0-51.0.0 + kotsadm: + applicationSlug: puppet-application-manager + version: 1.102.2 + s3Override: https://s3.kurl.sh/external/kotsadm-1.102.2.tar.gz + velero: + version: 1.11.1 + ekco: + version: 0.28.3 + kurl: + hostPreflights: + apiVersion: troubleshoot.sh/v1beta2 + kind: HostPreflight + spec: + analyzers: + - textAnalyze: + checkName: forward-chain-reject-check + fileName: host-collectors/run-host/iptables-forward-chain.txt + outcomes: + - pass: + message: No default REJECT rule found in iptables FORWARD chain + when: 'false' + - fail: + message: > + Default REJECT rule found in iptables FORWARD chain. + + Puppet Application Manager does not support a default + REJECT rule in the + + FORWARD chain during installation. Run \"iptables -S + FORWARD\" to identify + + the REJECT rule, remove it and re-run the installer. It + can be safely + + appended to the FORWARD chain after the installation has + completed. + when: 'true' + regex: (?m)^REJECT\\s+all\\s+.*\\s+anywhere\\s+anywhere + collectors: + - run: + args: + - '-L' + - FORWARD + collectorName: iptables-forward-chain + command: iptables + additionalNoProxyAddresses: [ ] + containerd: + version: 1.6.22 + metricsServer: + version: 0.6.4 + goldpinger: + version: 3.7.0-6.0.1 + unsupportedOSIDs: + - ubuntu-2204 # this version of docker is too old for 22.04 + - rocky-92 + - ol-8x + postInstallScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # deploy sample app + install_and_customize_kurl_integration_test_application + postUpgradeScript: | + # source helper functions + source /opt/kurl-testgrid/testhelpers.sh + + # ensure we can redeploy sample app + check_and_customize_kurl_integration_test_application + + # ensure kubernetes was upgraded + if [[ ! "$(kubectl get nodes --sort-by='{.status.nodeInfo.kubeletVersion}' -o=jsonpath='{.items[0].status.nodeInfo.kubeletVersion}' | sed 's/^v*//')" =~ "1.26" ]]; then + echo "Kubernetes was not upgraded to 1.26.x" + exit 1 + fi