From 25c897fb8992091c3d7f86344813fbeb9058fa53 Mon Sep 17 00:00:00 2001 From: Gage Hugo Date: Wed, 7 Apr 2021 14:57:21 -0500 Subject: [PATCH] Move shaker chart from osh-addons This change moves the shaker chart from the osh-addons repo to this one. Change-Id: Ica2c7668a7ab047f8ed2361234b5810eedc9c1e2 --- releasenotes/config.yaml | 1 + releasenotes/notes/shaker.yaml | 5 + shaker/Chart.yaml | 26 +++ shaker/requirements.yaml | 18 ++ shaker/templates/bin/_run-tests.sh.tpl | 19 ++ shaker/templates/configmap-bin.yaml | 32 +++ shaker/templates/configmap-etc.yaml | 57 +++++ shaker/templates/job-image-repo-sync.yaml | 20 ++ shaker/templates/job-ks-user.yaml | 19 ++ shaker/templates/pod-shaker-test.yaml | 141 ++++++++++++ shaker/templates/pvc-shaker.yaml | 29 +++ shaker/templates/secret-keystone.yaml | 29 +++ shaker/templates/service-shaker.yaml | 42 ++++ shaker/values.yaml | 251 ++++++++++++++++++++++ 14 files changed, 689 insertions(+) create mode 100644 releasenotes/notes/shaker.yaml create mode 100644 shaker/Chart.yaml create mode 100644 shaker/requirements.yaml create mode 100644 shaker/templates/bin/_run-tests.sh.tpl create mode 100644 shaker/templates/configmap-bin.yaml create mode 100644 shaker/templates/configmap-etc.yaml create mode 100644 shaker/templates/job-image-repo-sync.yaml create mode 100644 shaker/templates/job-ks-user.yaml create mode 100644 shaker/templates/pod-shaker-test.yaml create mode 100644 shaker/templates/pvc-shaker.yaml create mode 100644 shaker/templates/secret-keystone.yaml create mode 100644 shaker/templates/service-shaker.yaml create mode 100644 shaker/values.yaml diff --git a/releasenotes/config.yaml b/releasenotes/config.yaml index 8ac806d6a..436ae404b 100644 --- a/releasenotes/config.yaml +++ b/releasenotes/config.yaml @@ -53,6 +53,7 @@ sections: - [rabbitmq, rabbitmq Chart] - [redis, redis Chart] - [registry, registry Chart] + - [shaker, shaker Chart] - [tiller, tiller Chart] - [features, New Features] - [issues, Known Issues] diff --git a/releasenotes/notes/shaker.yaml b/releasenotes/notes/shaker.yaml new file mode 100644 index 000000000..2ef49e7f5 --- /dev/null +++ b/releasenotes/notes/shaker.yaml @@ -0,0 +1,5 @@ +--- +shaker: + - 0.1.0 Initial Chart + - 0.1.1 Change helm-toolkit dependency version to ">= 0.1.0" +... diff --git a/shaker/Chart.yaml b/shaker/Chart.yaml new file mode 100644 index 000000000..512511c14 --- /dev/null +++ b/shaker/Chart.yaml @@ -0,0 +1,26 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +apiVersion: v1 +appVersion: v1.0.0 +description: OpenStack-Helm Shaker +name: shaker +version: 0.1.1 +home: https://pyshaker.readthedocs.io/en/latest/index.html +icon: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTlnnEExfz6H9bBFFDxsDm5mVTdKWOt6Hw2_3aJ7hVkNdDdTCrimQ +sources: + - https://opendev.org/openstack/shaker + - https://opendev.org/openstack/openstack-helm +maintainers: + - name: OpenStack-Helm Authors +... diff --git a/shaker/requirements.yaml b/shaker/requirements.yaml new file mode 100644 index 000000000..19b0d6992 --- /dev/null +++ b/shaker/requirements.yaml @@ -0,0 +1,18 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +dependencies: + - name: helm-toolkit + repository: http://localhost:8879/charts + version: ">= 0.1.0" +... diff --git a/shaker/templates/bin/_run-tests.sh.tpl b/shaker/templates/bin/_run-tests.sh.tpl new file mode 100644 index 000000000..b8d23fa9a --- /dev/null +++ b/shaker/templates/bin/_run-tests.sh.tpl @@ -0,0 +1,19 @@ +#!/bin/bash + +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +set -ex + +{{ .Values.conf.script }} diff --git a/shaker/templates/configmap-bin.yaml b/shaker/templates/configmap-bin.yaml new file mode 100644 index 000000000..371ce5497 --- /dev/null +++ b/shaker/templates/configmap-bin.yaml @@ -0,0 +1,32 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- if .Values.manifests.configmap_bin }} +{{- $envAll := . }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: shaker-bin +data: +{{- if .Values.images.local_registry.active }} + image-repo-sync.sh: | +{{- include "helm-toolkit.scripts.image_repo_sync" . | indent 4 }} +{{- end }} + ks-user.sh: | +{{- include "helm-toolkit.scripts.keystone_user" . | indent 4 }} + run-tests.sh: | +{{ tuple "bin/_run-tests.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} +{{- end }} +... diff --git a/shaker/templates/configmap-etc.yaml b/shaker/templates/configmap-etc.yaml new file mode 100644 index 000000000..0ec872e51 --- /dev/null +++ b/shaker/templates/configmap-etc.yaml @@ -0,0 +1,57 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- if .Values.manifests.configmap_etc }} +{{- $envAll := . }} + +{{- if empty .Values.conf.shaker.auth.admin_username -}} +{{- $_ := set .Values.conf.shaker.auth "admin_username" .Values.endpoints.identity.auth.admin.username -}} +{{- end -}} +{{- if empty .Values.conf.shaker.auth.admin_password -}} +{{- $_ := set .Values.conf.shaker.auth "admin_password" .Values.endpoints.identity.auth.admin.password -}} +{{- end -}} +{{- if empty .Values.conf.shaker.auth.admin_project_name -}} +{{- $_ := set .Values.conf.shaker.auth "admin_project_name" .Values.endpoints.identity.auth.admin.project_name -}} +{{- end -}} +{{- if empty .Values.conf.shaker.auth.admin_domain_name -}} +{{- $_ := set .Values.conf.shaker.auth "admin_domain_name" .Values.endpoints.identity.auth.admin.user_domain_name -}} +{{- end -}} +{{- if empty .Values.conf.shaker.auth.admin_domain_scope -}} +{{- $_ := set .Values.conf.shaker.auth "admin_domain_scope" .Values.endpoints.identity.auth.admin.user_domain_name -}} +{{- end -}} + +{{- if empty .Values.conf.shaker.identity.uri_v3 -}} +{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.shaker.identity "uri_v3" -}} +{{- end -}} + +{{- if empty .Values.conf.shaker.identity.region -}} +{{- $_ := set .Values.conf.shaker.identity "region" .Values.endpoints.identity.auth.admin.region_name -}} +{{- end -}} + +--- +apiVersion: v1 +kind: Secret +metadata: + name: shaker-etc +type: Opaque +data: + shaker.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.shaker.shaker | b64enc }} +{{ if not (empty .Values.conf.basic) }} + test-basic: {{ include "shaker.utils.to_regex_file" .Values.conf.basic | b64enc }} +{{ end }} +{{ if not (empty .Values.conf.sriov) }} + test-sriov: {{ include "shaker.utils.to_regex_file" .Values.conf.sriov | b64enc }} +{{ end }} +{{- end }} +... diff --git a/shaker/templates/job-image-repo-sync.yaml b/shaker/templates/job-image-repo-sync.yaml new file mode 100644 index 000000000..d62942f9f --- /dev/null +++ b/shaker/templates/job-image-repo-sync.yaml @@ -0,0 +1,20 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +--- +{{- if and .Values.manifests.job_image_repo_sync .Values.images.local_registry.active }} +{{- $imageRepoSyncJob := dict "envAll" . "serviceName" "shaker" -}} +{{ $imageRepoSyncJob | include "helm-toolkit.manifests.job_image_repo_sync" }} +{{- end }} +... diff --git a/shaker/templates/job-ks-user.yaml b/shaker/templates/job-ks-user.yaml new file mode 100644 index 000000000..94be5bd59 --- /dev/null +++ b/shaker/templates/job-ks-user.yaml @@ -0,0 +1,19 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- if .Values.manifests.job_ks_user }} +{{- $ksUserJob := dict "envAll" . "serviceName" "shaker" -}} +{{ $ksUserJob | include "helm-toolkit.manifests.job_ks_user" }} +{{- end }} +... diff --git a/shaker/templates/pod-shaker-test.yaml b/shaker/templates/pod-shaker-test.yaml new file mode 100644 index 000000000..b4fe18d86 --- /dev/null +++ b/shaker/templates/pod-shaker-test.yaml @@ -0,0 +1,141 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- if .Values.manifests.pod_shaker_test }} +{{- $envAll := . }} + +{{- $mounts_tests := .Values.pod.mounts.shaker_tests.shaker_tests }} +{{- $mounts_tests_init := .Values.pod.mounts.shaker_tests.init_container }} + +{{- $serviceAccountName := print $envAll.Release.Name "-test" }} +{{ tuple $envAll "run_tests" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} +--- +apiVersion: v1 +kind: Pod +metadata: + name: {{ print $envAll.Release.Name "-run-tests" }} + labels: +{{ tuple $envAll "shaker" "run-tests" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} + annotations: + "helm.sh/hook": test-success +spec: + nodeSelector: + {{ .Values.labels.pod.node_selector_key }}: {{ .Values.labels.pod.node_selector_value }} + serviceAccountName: {{ $serviceAccountName }} + restartPolicy: OnFailure + initContainers: +{{ tuple $envAll "run_tests" $mounts_tests_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }} + - name: {{ .Release.Name }}-test-ks-user +{{ tuple $envAll "ks_user" | include "helm-toolkit.snippets.image" | indent 6 }} +{{ tuple $envAll $envAll.Values.pod.resources.jobs.ks_user | include "helm-toolkit.snippets.kubernetes_resources" | indent 6 }} + command: + - /tmp/ks-user.sh + volumeMounts: + - name: shaker-bin + mountPath: /tmp/ks-user.sh + subPath: ks-user.sh + readOnly: true + env: +{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin }} +{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }} +{{- end }} + - name: SERVICE_OS_SERVICE_NAME + value: "shaker" +{{- with $env := dict "ksUserSecret" .Values.secrets.identity.shaker }} +{{- include "helm-toolkit.snippets.keystone_user_create_env_vars" $env | indent 8 }} +{{- end }} + - name: SERVICE_OS_ROLE + value: {{ .Values.endpoints.identity.auth.shaker.role | quote }} + - name: {{ .Release.Name }}-perms +{{ tuple $envAll "shaker_run_tests" | include "helm-toolkit.snippets.image" | indent 6 }} + securityContext: + runAsUser: 0 + privileged: true +{{ tuple $envAll $envAll.Values.pod.resources.jobs.run_tests | include "helm-toolkit.snippets.kubernetes_resources" | indent 6 }} + command: ["/bin/sh", "-c"] + args: + - set -xe; + chmod 0777 /opt/shaker/data/; + chmod 0777 /opt/shaker-data/; + volumeMounts: + - name: shaker-reports + mountPath: /opt/shaker/data/ + - name: shaker-data-host + mountPath: /opt/shaker-data/ + containers: + - name: {{ .Release.Name }}-run-tests +{{ tuple $envAll "shaker_run_tests" | include "helm-toolkit.snippets.image" | indent 6 }} +{{ tuple $envAll $envAll.Values.pod.resources.jobs.run_tests | include "helm-toolkit.snippets.kubernetes_resources" | indent 6 }} + securityContext: + runAsUser: {{ .Values.pod.user.shaker.uid }} + privileged: false + env: +{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin }} +{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }} +{{- end }} +{{- with $env := dict "ksUserSecret" .Values.secrets.identity.shaker }} +{{- include "helm-toolkit.snippets.keystone_user_create_env_vars" $env | indent 8 }} +{{- end }} + - name: SHAKER_ENV_NAME + value: {{.Release.Name}} + - name: SHAKER_SCENARIO + value: {{ .Values.conf.shaker.shaker.DEFAULT.scenario }} + - name: SHAKER_SERVER_ENDPOINT + value: {{ .Values.conf.shaker.shaker.DEFAULT.server_endpoint }} + command: + - /tmp/run-tests.sh + volumeMounts: + - name: shaker-etc + mountPath: /etc/shaker/shaker_tests.yaml + subPath: shaker_tests.yaml + readOnly: true + - name: shaker-bin + mountPath: /tmp/run-tests.sh + subPath: run-tests.sh + readOnly: true + - name: shaker-db + mountPath: /opt/shaker/db/ + - name: shaker-reports + mountPath: /opt/shaker/data/ + - name: shaker-data-host + mountPath: /opt/shaker-data/ + - name: shaker-etc + mountPath: /opt/shaker/shaker.conf + subPath: shaker.conf + readOnly: true +{{ if $mounts_tests.volumeMounts }}{{ toYaml $mounts_tests.volumeMounts | indent 8 }}{{ end }} + volumes: + - name: shaker-etc + secret: + secretName: shaker-etc + defaultMode: 0444 + - name: shaker-bin + configMap: + name: shaker-bin + defaultMode: 0555 + - name: shaker-db + emptyDir: {} + - name: shaker-reports + {{- if not .Values.pvc.enabled }} + emptyDir: {} + {{- else }} + persistentVolumeClaim: + claimName: {{ .Values.pvc.name }} + {{- end }} + - name: shaker-data-host + hostPath: + path: /tmp/shaker-data +{{ if $mounts_tests.volumes }}{{ toYaml $mounts_tests.volumes | indent 4 }}{{ end }} +{{- end }} +... diff --git a/shaker/templates/pvc-shaker.yaml b/shaker/templates/pvc-shaker.yaml new file mode 100644 index 000000000..fbc03d762 --- /dev/null +++ b/shaker/templates/pvc-shaker.yaml @@ -0,0 +1,29 @@ +# {{/* +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# */}} + +{{- if .Values.pvc.enabled }} + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ .Values.pvc.name }} +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.pvc.requests.storage }} + storageClassName: {{ .Values.pvc.storage_class }} +{{- end }} +... diff --git a/shaker/templates/secret-keystone.yaml b/shaker/templates/secret-keystone.yaml new file mode 100644 index 000000000..a9a0c126c --- /dev/null +++ b/shaker/templates/secret-keystone.yaml @@ -0,0 +1,29 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- if .Values.manifests.secret_keystone }} +{{- $envAll := . }} +{{- range $key1, $userClass := tuple "admin" "shaker" }} +{{- $secretName := index $envAll.Values.secrets.identity $userClass }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ $secretName }} +type: Opaque +data: +{{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}} +{{- end }} +{{- end }} +... diff --git a/shaker/templates/service-shaker.yaml b/shaker/templates/service-shaker.yaml new file mode 100644 index 000000000..8d4fecfa4 --- /dev/null +++ b/shaker/templates/service-shaker.yaml @@ -0,0 +1,42 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- if .Values.manifests.service_shaker }} +{{- $envAll := . }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ tuple "shaker" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }} +spec: + ports: + - name: shaker-api + protocol: TCP + port: {{ tuple "shaker" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} + {{ if .Values.shaker.controller.node_port.enabled }} + nodePort: {{ .Values.shaker.controller.node_port.port }} + {{ end }} + targetPort: {{ tuple "shaker" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} + selector: +{{ tuple $envAll "shaker" "run-tests" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} + {{ if .Values.shaker.controller.node_port.enabled }} + type: NodePort + {{ if .Values.shaker.controller.external_policy_local }} + externalTrafficPolicy: Local + {{ end }} + {{ end }} + externalIPs: + - {{ .Values.shaker.controller.external_ip }} +{{- end }} +... diff --git a/shaker/values.yaml b/shaker/values.yaml new file mode 100644 index 000000000..13723a8b5 --- /dev/null +++ b/shaker/values.yaml @@ -0,0 +1,251 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Default values for shaker. +# This is a YAML-formatted file. +# Declare name/value pairs to be passed into your templates. +# name: value + +--- +labels: + job: + node_selector_key: openstack-control-plane + node_selector_value: enabled + pod: + node_selector_key: openstack-control-plane + node_selector_value: enabled + +images: + tags: + dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0 + shaker_run_tests: docker.io/performa/shaker:latest + ks_user: docker.io/openstackhelm/heat:newton-ubuntu_xenial + image_repo_sync: docker.io/docker:17.07.0 + pull_policy: "IfNotPresent" + local_registry: + active: false + exclude: + - dep_check + - image_repo_sync + +pod: + user: + shaker: + uid: 1000 + resources: + enabled: false + jobs: + ks_user: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "1024Mi" + cpu: "2000m" + run_tests: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "1024Mi" + cpu: "2000m" + image_repo_sync: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "1024Mi" + cpu: "2000m" + mounts: + shaker_tests: + init_container: null + shaker_tests: + +shaker: + controller: + ingress: + public: true + classes: + namespace: "nginx" + cluster: "nginx-cluster" + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / + external_policy_local: false + node_port: + enabled: true + port: 31999 + external_ip: 9.9.9.9 + +dependencies: + dynamic: + common: + local_image_registry: + jobs: + - shaker-image-repo-sync + services: + - endpoint: node + service: local_image_registry + static: + ks_user: + services: + - service: identity + endpoint: internal + run_tests: + jobs: + - shaker-ks-user + services: + - service: identity + endpoint: internal + image_repo_sync: + services: + - endpoint: internal + service: local_image_registry + +conf: + script: | + sed -i -E "s/(accommodation\: \[.+)(.+\])/accommodation\: \[pair, compute_nodes: 1\]/" /opt/shaker/shaker/scenarios/openstack/full_l2.yaml + export server_endpoint=\`ip a | grep "global eth0" | cut -f6 -d' ' | cut -f1 -d'/'\` + + echo ========== SHAKER CONF PARAMETERS ================= + cat /opt/shaker/shaker.conf + echo ===================================================== + + env -i HOME="$HOME" bash -l -c "printenv; shaker --server-endpoint \$server_endpoint:31999 --config-file /opt/shaker/shaker.conf" + + shaker: + auth: + use_dynamic_credentials: true + admin_domain_scope: true + shaker_roles: admin, member + min_compute_nodes: 1 + identity: + auth_version: v3 + identity-feature-enabled: + api_v2: false + api_v3: true + shaker: + DEFAULT: + debug: true + cleanup_on_error: true + scenario_compute_nodes: 1 + report: /opt/shaker/data/shaker-result.html + output: /opt/shaker/data/shaker-result.json + scenario: /opt/shaker/shaker/scenarios/openstack/full_l2.yaml + flavor_name: m1.small + external_net: public + image_name: shaker-image + scenario_availability_zone: nova + os_username: admin + os_password: password + os_auth_url: "http://keystone.openstack.svc.cluster.local/v3" + os_project_name: admin + os_region_name: RegionOne + os_identity_api_version: 3 + os_interface: public + validation: + connect_method: floating + volume: + disk_formats: raw + backend_name: rbd1 + storage_protocol: rbd + volume-feature-enabled: + api_v1: False + api_v3: True + +pvc: + enabled: true + name: pvc-shaker + requests: + storage: 2Gi + storage_class: general + +secrets: + identity: + admin: shaker-keystone-admin + shaker: shaker-keystone-user + +endpoints: + cluster_domain_suffix: cluster.local + local_image_registry: + name: docker-registry + namespace: docker-registry + hosts: + default: localhost + internal: docker-registry + node: localhost + host_fqdn_override: + default: null + port: + registry: + node: 5000 + identity: + name: keystone + auth: + admin: + region_name: RegionOne + username: admin + password: password + project_name: admin + user_domain_name: default + project_domain_name: default + shaker: + role: admin + region_name: RegionOne + username: shaker + password: password + project_name: service + user_domain_name: service + project_domain_name: service + hosts: + default: keystone + internal: keystone-api + host_fqdn_override: + default: null + path: + default: /v3 + scheme: + default: http + port: + api: + default: 80 + internal: 5000 + shaker: + name: shaker + hosts: + default: shaker + public: shaker + host_fqdn_override: + default: null + # NOTE(portdirect): this chart supports TLS for fqdn over-ridden public + # endpoints using the following format: + # public: + # host: null + # tls: + # crt: null + # key: null + path: + default: null + scheme: + default: 'http' + port: + api: + default: 31999 + public: 80 +manifests: + configmap_bin: true + configmap_etc: true + job_image_repo_sync: true + job_ks_user: true + pod_shaker_test: true + service_shaker: true + secret_keystone: true +...