diff --git a/clusterloader2/testing/experimental/storage/pod-startup/config.yaml b/clusterloader2/testing/experimental/storage/pod-startup/config.yaml index a733a83e70..4a3a6edd4f 100644 --- a/clusterloader2/testing/experimental/storage/pod-startup/config.yaml +++ b/clusterloader2/testing/experimental/storage/pod-startup/config.yaml @@ -9,7 +9,7 @@ # Test Variales {{$TEST_NAME := DefaultParam .TEST_NAME "generic-test"}} {{$PODS_PER_NODE := .PODS_PER_NODE}} - {{$POD_TEMPLATE_PATH := .POD_TEMPLATE_PATH }} + {{$DEPLOYMENT_TEMPLATE_PATH := .DEPLOYMENT_TEMPLATE_PATH }} {{$VOLUMES_PER_POD := .VOLUMES_PER_POD}} {{$VOLUME_TEMPLATE_PATH := .VOLUME_TEMPLATE_PATH}} {{$PROVISION_VOLUME := DefaultParam .PROVISION_VOLUME false}} @@ -21,7 +21,6 @@ # Computed Variables {{$namespaces := DivideInt .Nodes $NODES_PER_NAMESPACE | MaxInt 1}} - {{$totalPods := MultiplyInt $namespaces $NODES_PER_NAMESPACE $PODS_PER_NODE}} {{$podsPerNamespace := MultiplyInt $NODES_PER_NAMESPACE $PODS_PER_NODE}} {{$volumesPerNamespace := MultiplyInt $podsPerNamespace $VOLUMES_PER_POD}} {{$totalVols := MultiplyInt $volumesPerNamespace $namespaces}} @@ -81,7 +80,17 @@ steps: labelSelector: group = volume-test timeout: {{$PVCBoundTime}}s {{ end }} -# Create pods +- name: Starting measurement for waiting for deployments + measurements: + - Identifier: WaitForRunningDeployments + Method: WaitForControlledPodsRunning + Params: + action: start + apiVersion: apps/v1 + kind: Deployment + labelSelector: group = volume-test + operationTimeout: {{$POD_STARTUP_TIMEOUT}} +# Create deployments - phases: - namespaceRange: min: 1 @@ -89,19 +98,18 @@ steps: replicasPerNamespace: {{$podsPerNamespace}} tuningSet: Sequence objectBundle: - - basename: pod - objectTemplatePath: {{$POD_TEMPLATE_PATH}} + - basename: deployment + objectTemplatePath: {{$DEPLOYMENT_TEMPLATE_PATH}} templateFillMap: Group: volume-test VolumesPerPod: {{$VOLUMES_PER_POD}} -- measurements: - - Identifier: WaitForRunningPodsWithVolumes - Method: WaitForRunningPods +- name: Waiting for deployments to be running + measurements: + - Identifier: WaitForRunningDeployments + Method: WaitForControlledPodsRunning Params: - desiredPodCount: {{$totalPods}} - labelSelector: group = volume-test - timeout: {{$POD_STARTUP_TIMEOUT}} -# Delete pods + action: gather +# Delete deployments - phases: - namespaceRange: min: 1 @@ -109,8 +117,8 @@ steps: replicasPerNamespace: 0 tuningSet: Sequence objectBundle: - - basename: pod - objectTemplatePath: {{$POD_TEMPLATE_PATH}} + - basename: deployment + objectTemplatePath: {{$DEPLOYMENT_TEMPLATE_PATH}} {{ if $PROVISION_VOLUME }} # Delete volumes - phases: diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/deployment_with_configmap.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/deployment_with_configmap.yaml new file mode 100644 index 0000000000..d7f0b120da --- /dev/null +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/deployment_with_configmap.yaml @@ -0,0 +1,45 @@ +{{$index := .Index}} +{{$volumesPerPod := .VolumesPerPod}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{.Name}} + labels: + group: {{.Group}} +spec: + replicas: 1 + selector: + matchLabels: + name: {{.Name}} + template: + metadata: + labels: + group: {{.Group}} + name: {{.Name}} + spec: + containers: + - name: {{.Name}} + image: k8s.gcr.io/pause:3.1 + imagePullPolicy: IfNotPresent + volumeMounts: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + mountPath: /usr/share/{{$volumeIndex}} + {{ end }} + volumes: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + configMap: + name: vol-{{AddInt $volumeIndex (MultiplyInt $index $volumesPerPod)}} + {{ end }} + # Add not-ready/unreachable tolerations for 15 minutes so that node + # failure doesn't trigger pod deletion. + tolerations: + - key: "node.kubernetes.io/not-ready" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 + - key: "node.kubernetes.io/unreachable" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/override.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/override.yaml index 3cceb726f3..92261d6c20 100644 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/override.yaml +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/override.yaml @@ -1,3 +1,3 @@ PROVISION_VOLUME: true -POD_TEMPLATE_PATH: "volume-types/configmap/pod_with_configmap.yaml" +DEPLOYMENT_TEMPLATE_PATH: "volume-types/configmap/deployment_with_configmap.yaml" VOLUME_TEMPLATE_PATH: "volume-types/configmap/configmap.yaml" diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/pod_with_configmap.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/pod_with_configmap.yaml deleted file mode 100644 index 6be0ccc668..0000000000 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/configmap/pod_with_configmap.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{$index := .Index}} -{{$volumesPerPod := .VolumesPerPod}} -apiVersion: v1 -kind: Pod -metadata: - name: {{.Name}} - labels: - app: {{.Name}} - group: {{.Group}} -spec: - containers: - - name: {{.Name}} - image: k8s.gcr.io/pause:3.1 - imagePullPolicy: IfNotPresent - volumeMounts: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - mountPath: /usr/share/{{$volumeIndex}} - {{ end }} - volumes: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - configMap: - name: vol-{{AddInt $volumeIndex (MultiplyInt $index $volumesPerPod)}} - {{ end }} diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/deployment_with_downwardapi.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/deployment_with_downwardapi.yaml new file mode 100644 index 0000000000..9726b7cc2b --- /dev/null +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/deployment_with_downwardapi.yaml @@ -0,0 +1,51 @@ +{{$index := .Index}} +{{$volumesPerPod := .VolumesPerPod}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{.Name}} + labels: + group: {{.Group}} +spec: + replicas: 1 + selector: + matchLabels: + name: {{.Name}} + template: + metadata: + labels: + group: {{.Group}} + name: {{.Name}} + spec: + containers: + - name: {{.Name}} + image: k8s.gcr.io/pause:3.1 + imagePullPolicy: IfNotPresent + volumeMounts: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + mountPath: /usr/share/{{$volumeIndex}} + {{ end }} + volumes: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + downwardAPI: + items: + - path: "pod_name" + fieldRef: + fieldPath: metadata.name + - path: "pod_namespace" + fieldRef: + fieldPath: metadata.namespace + {{ end }} + # Add not-ready/unreachable tolerations for 15 minutes so that node + # failure doesn't trigger pod deletion. + tolerations: + - key: "node.kubernetes.io/not-ready" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 + - key: "node.kubernetes.io/unreachable" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/override.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/override.yaml index 92d01476d8..9fcc114be5 100644 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/override.yaml +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/override.yaml @@ -1 +1 @@ -POD_TEMPLATE_PATH: "volume-types/downwardapi/pod_with_downwardapi.yaml" +DEPLOYMENT_TEMPLATE_PATH: "volume-types/downwardapi/deployment_with_downwardapi.yaml" diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/pod_with_downwardapi.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/pod_with_downwardapi.yaml deleted file mode 100644 index 818c7cd805..0000000000 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/downwardapi/pod_with_downwardapi.yaml +++ /dev/null @@ -1,31 +0,0 @@ -{{$index := .Index}} -{{$volumesPerPod := .VolumesPerPod}} -apiVersion: v1 -kind: Pod -metadata: - name: {{.Name}} - labels: - app: {{.Name}} - group: {{.Group}} -spec: - containers: - - name: {{.Name}} - image: k8s.gcr.io/pause:3.1 - imagePullPolicy: IfNotPresent - volumeMounts: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - mountPath: /usr/share/{{$volumeIndex}} - {{ end }} - volumes: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - downwardAPI: - items: - - path: "pod_name" - fieldRef: - fieldPath: metadata.name - - path: "pod_namespace" - fieldRef: - fieldPath: metadata.namespace - {{ end }} diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/deployment_with_emptydir.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/deployment_with_emptydir.yaml new file mode 100644 index 0000000000..b8556853a5 --- /dev/null +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/deployment_with_emptydir.yaml @@ -0,0 +1,44 @@ +{{$index := .Index}} +{{$volumesPerPod := .VolumesPerPod}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{.Name}} + labels: + group: {{.Group}} +spec: + replicas: 1 + selector: + matchLabels: + name: {{.Name}} + template: + metadata: + labels: + group: {{.Group}} + name: {{.Name}} + spec: + containers: + - name: {{.Name}} + image: k8s.gcr.io/pause:3.1 + imagePullPolicy: IfNotPresent + volumeMounts: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + mountPath: /usr/share/{{$volumeIndex}} + {{ end }} + volumes: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + emptyDir: {} + {{ end }} + # Add not-ready/unreachable tolerations for 15 minutes so that node + # failure doesn't trigger pod deletion. + tolerations: + - key: "node.kubernetes.io/not-ready" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 + - key: "node.kubernetes.io/unreachable" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/override.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/override.yaml index 194c3c50c7..93060b8757 100644 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/override.yaml +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/override.yaml @@ -1 +1 @@ -POD_TEMPLATE_PATH: "volume-types/emptydir/pod_with_emptydir.yaml" +DEPLOYMENT_TEMPLATE_PATH: "volume-types/emptydir/deployment_with_emptydir.yaml" diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/pod_with_emptydir.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/pod_with_emptydir.yaml deleted file mode 100644 index bd07956025..0000000000 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/emptydir/pod_with_emptydir.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{$index := .Index}} -{{$volumesPerPod := .VolumesPerPod}} -apiVersion: v1 -kind: Pod -metadata: - name: {{.Name}} - labels: - app: {{.Name}} - group: {{.Group}} -spec: - containers: - - name: {{.Name}} - image: k8s.gcr.io/pause:3.1 - imagePullPolicy: IfNotPresent - volumeMounts: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - mountPath: /usr/share/{{$volumeIndex}} - {{ end }} - volumes: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - emptyDir: {} - {{ end }} diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/deployment_with_pvc.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/deployment_with_pvc.yaml new file mode 100644 index 0000000000..fe77e55338 --- /dev/null +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/deployment_with_pvc.yaml @@ -0,0 +1,46 @@ +{{$index := .Index}} +{{$volumesPerPod := .VolumesPerPod}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{.Name}} + labels: + group: {{.Group}} +spec: + replicas: 1 + selector: + matchLabels: + name: {{.Name}} + template: + metadata: + labels: + group: {{.Group}} + name: {{.Name}} + spec: + containers: + - name: {{.Name}} + image: k8s.gcr.io/pause:3.1 + imagePullPolicy: IfNotPresent + volumeMounts: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + mountPath: /usr/share/{{$volumeIndex}} + {{ end }} + volumes: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + persistentVolumeClaim: + claimName: vol-{{AddInt $volumeIndex (MultiplyInt $index $volumesPerPod)}} + readOnly: false + {{ end }} + # Add not-ready/unreachable tolerations for 15 minutes so that node + # failure doesn't trigger pod deletion. + tolerations: + - key: "node.kubernetes.io/not-ready" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 + - key: "node.kubernetes.io/unreachable" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/override.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/override.yaml index 2ac48b0493..74a475dc71 100644 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/override.yaml +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/override.yaml @@ -1,4 +1,4 @@ PROVISION_VOLUME: true WAIT_FOR_PVC: true -POD_TEMPLATE_PATH: "volume-types/persistentvolume/pod_with_pvc.yaml" +DEPLOYMENT_TEMPLATE_PATH: "volume-types/persistentvolume/deployment_with_pvc.yaml" VOLUME_TEMPLATE_PATH: "volume-types/persistentvolume/pvc.yaml" diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/pod_with_pvc.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/pod_with_pvc.yaml deleted file mode 100644 index 136f4b1c0e..0000000000 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/persistentvolume/pod_with_pvc.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{$index := .Index}} -{{$volumesPerPod := .VolumesPerPod}} -apiVersion: v1 -kind: Pod -metadata: - name: {{.Name}} - labels: - app: {{.Name}} - group: {{.Group}} -spec: - containers: - - name: {{.Name}} - image: k8s.gcr.io/pause:3.1 - imagePullPolicy: IfNotPresent - volumeMounts: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - mountPath: /usr/share/{{$volumeIndex}} - {{ end }} - volumes: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - persistentVolumeClaim: - claimName: vol-{{AddInt $volumeIndex (MultiplyInt $index $volumesPerPod)}} - readOnly: false - {{ end }} diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/deployment_with_secret.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/deployment_with_secret.yaml new file mode 100644 index 0000000000..a57fdeb9b2 --- /dev/null +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/deployment_with_secret.yaml @@ -0,0 +1,45 @@ +{{$index := .Index}} +{{$volumesPerPod := .VolumesPerPod}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{.Name}} + labels: + group: {{.Group}} +spec: + replicas: 1 + selector: + matchLabels: + name: {{.Name}} + template: + metadata: + labels: + group: {{.Group}} + name: {{.Name}} + spec: + containers: + - name: {{.Name}} + image: k8s.gcr.io/pause:3.1 + imagePullPolicy: IfNotPresent + volumeMounts: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + mountPath: /usr/share/{{$volumeIndex}} + {{ end }} + volumes: + {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} + - name: vol-{{$volumeIndex}} + secret: + secretName: vol-{{AddInt $volumeIndex (MultiplyInt $index $volumesPerPod)}} + {{ end }} + # Add not-ready/unreachable tolerations for 15 minutes so that node + # failure doesn't trigger pod deletion. + tolerations: + - key: "node.kubernetes.io/not-ready" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 + - key: "node.kubernetes.io/unreachable" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 900 diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/override.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/override.yaml index 99af38fd11..debe08f10d 100644 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/override.yaml +++ b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/override.yaml @@ -1,3 +1,3 @@ PROVISION_VOLUME: true -POD_TEMPLATE_PATH: "volume-types/secret/pod_with_secret.yaml" +DEPLOYMENT_TEMPLATE_PATH: "volume-types/secret/deployment_with_secret.yaml" VOLUME_TEMPLATE_PATH: "volume-types/secret/secret.yaml" diff --git a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/pod_with_secret.yaml b/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/pod_with_secret.yaml deleted file mode 100644 index ccc091f61a..0000000000 --- a/clusterloader2/testing/experimental/storage/pod-startup/volume-types/secret/pod_with_secret.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{$index := .Index}} -{{$volumesPerPod := .VolumesPerPod}} -apiVersion: v1 -kind: Pod -metadata: - name: {{.Name}} - labels: - app: {{.Name}} - group: {{.Group}} -spec: - containers: - - name: {{.Name}} - image: k8s.gcr.io/pause:3.1 - imagePullPolicy: IfNotPresent - volumeMounts: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - mountPath: /usr/share/{{$volumeIndex}} - {{ end }} - volumes: - {{ range $volumeIndex, $vol := Seq .VolumesPerPod }} - - name: vol-{{$volumeIndex}} - secret: - secretName: vol-{{AddInt $volumeIndex (MultiplyInt $index $volumesPerPod)}} - {{ end }}