Adds tacker test job

Change-Id: I7ccb86d317bbc04da0ccf4e4a773983eb1c61f9a
This commit is contained in:
Shivam Shukla 2024-08-07 12:15:47 +00:00
parent 5b6312f620
commit 540df5cb0d
9 changed files with 159 additions and 13 deletions

View File

@ -7,4 +7,5 @@ tacker:
- 0.1.4 Enable custom annotations for Openstack secrets - 0.1.4 Enable custom annotations for Openstack secrets
- 0.1.5 Update images used by default - 0.1.5 Update images used by default
- 0.1.6 Use quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal by default - 0.1.6 Use quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal by default
- 0.1.7 Add Tacker Test Job
... ...

View File

@ -14,7 +14,7 @@ apiVersion: v1
appVersion: v1.0.0 appVersion: v1.0.0
description: OpenStack-Helm Tacker description: OpenStack-Helm Tacker
name: tacker name: tacker
version: 0.1.6 version: 0.1.7
home: https://docs.openstack.org/tacker/latest/ home: https://docs.openstack.org/tacker/latest/
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Tacker/OpenStack_Project_Tacker_vertical.png icon: https://www.openstack.org/themes/openstack/images/project-mascots/Tacker/OpenStack_Project_Tacker_vertical.png
sources: sources:

View File

@ -0,0 +1,26 @@
#!/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
openstack secret list
openstack --help
openstack vim list
openstack vnflcm list --os-tacker-api-version 1

View File

@ -12,6 +12,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/}} */}}
{{- if .Values.manifests.configmap_bin }} {{- if .Values.manifests.configmap_bin }}
{{- $envAll := . }}
--- ---
apiVersion: v1 apiVersion: v1
data: data:
@ -23,6 +24,8 @@ data:
{{- include "helm-toolkit.scripts.db_drop" . | indent 4 }} {{- include "helm-toolkit.scripts.db_drop" . | indent 4 }}
db-init.py: | db-init.py: |
{{- include "helm-toolkit.scripts.db_init" . | indent 4 }} {{- include "helm-toolkit.scripts.db_init" . | indent 4 }}
tacker-test.sh: |
{{ tuple "bin/_tacker-test.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
db-sync.sh: | db-sync.sh: |
{{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} {{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
ks-endpoints.sh: | ks-endpoints.sh: |

View File

@ -0,0 +1,73 @@
{{/*
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_test }}
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.static.tests }}
{{- $mounts_tacker_tests := .Values.pod.mounts.tacker_tests.tacker_tests }}
{{- $mounts_tacker_tests_init := .Values.pod.mounts.tacker_tests.init_container }}
{{- $serviceAccountName := print .Release.Name "-test" }}
{{ tuple $envAll "tests" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
---
apiVersion: v1
kind: Pod
metadata:
name: "{{.Release.Name}}-test"
labels:
{{ tuple $envAll "tacker" "test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
"helm.sh/hook": test-success
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
{{ dict "envAll" $envAll "podName" "tacker-test" "containerNames" (list "init" "tacker-test") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 4 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
{{ dict "envAll" $envAll "application" "test" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 2 }}
nodeSelector:
{{ .Values.labels.test.node_selector_key }}: {{ .Values.labels.test.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.tacker.enabled }}
{{ tuple $envAll "tacker" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 2 }}
{{ end }}
restartPolicy: Never
initContainers:
{{ tuple $envAll "tests" $mounts_tacker_tests_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }}
containers:
- name: tacker-test
{{ tuple $envAll "scripted_test" | include "helm-toolkit.snippets.image" | indent 6 }}
{{ dict "envAll" $envAll "application" "test" "container" "tacker_test" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 6 }}
env:
{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin }}
{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }}
{{- end }}
command:
- /tmp/tacker-test.sh
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: tacker-bin
mountPath: /tmp/tacker-test.sh
subPath: tacker-test.sh
readOnly: true
{{ if $mounts_tacker_tests.volumeMounts }}{{ toYaml $mounts_tacker_tests.volumeMounts | indent 8 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: tacker-bin
configMap:
name: tacker-bin
defaultMode: 0555
{{ if $mounts_tacker_tests.volumes }}{{ toYaml $mounts_tacker_tests.volumes | indent 4 }}{{ end }}
{{- end }}

View File

@ -24,12 +24,20 @@ labels:
job: job:
node_selector_key: openstack-control-plane node_selector_key: openstack-control-plane
node_selector_value: enabled node_selector_value: enabled
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
# NOTE(philsphicas): the pre-install hook breaks upgrade for helm2
# Set to false to upgrade using helm2
helm3_hook: true
images: images:
pull_policy: IfNotPresent pull_policy: IfNotPresent
tags: tags:
tacker_server: docker.io/openstackhelm/tacker:2024.1-ubuntu_jammy tacker_server: docker.io/openstackhelm/tacker:2024.1-ubuntu_jammy
tacker_conductor: docker.io/openstackhelm/tacker:2024.1-ubuntu_jammy tacker_conductor: docker.io/openstackhelm/tacker:2024.1-ubuntu_jammy
scripted_test: docker.io/openstackhelm/openstack-client:2024.1
db_init: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy db_init: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
db_drop: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy db_drop: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
tacker_db_sync: docker.io/openstackhelm/tacker:2024.1-ubuntu_jammy tacker_db_sync: docker.io/openstackhelm/tacker:2024.1-ubuntu_jammy
@ -72,6 +80,10 @@ dependencies:
service: identity service: identity
- endpoint: internal - endpoint: internal
service: key_manager service: key_manager
tests:
services:
- endpoint: internal
service: identity
db_drop: db_drop:
services: services:
- endpoint: internal - endpoint: internal
@ -105,12 +117,20 @@ pod:
security_context: security_context:
server: server:
pod: pod:
runAsUser: 42424 runAsUser: 0
runAsNonRoot: true runAsNonRoot: false
conductor: conductor:
pod: pod:
runAsUser: 42424 runAsUser: 0
runAsNonRoot: true runAsNonRoot: false
test:
pod:
runAsUser: 0
runAsNonRoot: false
container:
tacker_test:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
lifecycle: lifecycle:
termination_grace_period: termination_grace_period:
server: server:
@ -175,11 +195,23 @@ pod:
limits: limits:
memory: "1024Mi" memory: "1024Mi"
cpu: "2000m" cpu: "2000m"
tests:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
mounts: mounts:
tacker_db_sync: tacker_db_sync:
tacker_db_sync: tacker_db_sync:
volumeMounts: volumeMounts:
volumes: volumes:
tacker_tests:
init_container: null
tacker_tests:
volumeMounts:
volumes:
storage: storage:
storageClass: general storageClass: general
@ -458,7 +490,7 @@ conf:
composite:tackerapi_v1_0: composite:tackerapi_v1_0:
use: call:tacker.auth:pipeline_factory use: call:tacker.auth:pipeline_factory
noauth: cors request_id catch_errors extensions tackerapiapp_v1_0 noauth: cors request_id catch_errors extensions tackerapiapp_v1_0
keystone: cors request_id catch_errors alarm_receiver authtoken keystonecontext extensions tackerapiapp_v1_0 keystone: cors request_id catch_errors authtoken keystonecontext extensions tackerapiapp_v1_0
composite:vnfpkgmapi_v1: composite:vnfpkgmapi_v1:
use: call:tacker.auth:pipeline_factory use: call:tacker.auth:pipeline_factory
noauth: cors request_id catch_errors vnfpkgmapp_v1 noauth: cors request_id catch_errors vnfpkgmapp_v1
@ -490,8 +522,6 @@ conf:
paste.filter_factory: oslo_middleware:RequestId.factory paste.filter_factory: oslo_middleware:RequestId.factory
filter:catch_errors: filter:catch_errors:
paste.filter_factory: oslo_middleware:CatchErrors.factory paste.filter_factory: oslo_middleware:CatchErrors.factory
filter:alarm_receiver:
paste.filter_factory: tacker.alarm_receiver:AlarmReceiver.factory
filter:keystonecontext: filter:keystonecontext:
paste.filter_factory: tacker.auth:TackerKeystoneContext.factory paste.filter_factory: tacker.auth:TackerKeystoneContext.factory
filter:authtoken: filter:authtoken:
@ -515,13 +545,13 @@ conf:
app:vnffmaapp_v1: app:vnffmaapp_v1:
paste.app_factory: tacker.sol_refactored.api.router:VnffmAPIRouterV1.factory paste.app_factory: tacker.sol_refactored.api.router:VnffmAPIRouterV1.factory
app:prometheus_auto_scaling: app:prometheus_auto_scaling:
paste.app_factory: tacker.sol_refactored.api.prometheus_plugin_router:AutoScalingRouter.factory paste.app_factory: tacker.sol_refactored.api.router:AutoScalingRouter.factory
app:prometheus_fm: app:prometheus_fm:
paste.app_factory: tacker.sol_refactored.api.prometheus_plugin_router:FmAlertRouter.factory paste.app_factory: tacker.sol_refactored.api.router:FmAlertRouter.factory
app:prometheus_pm: app:prometheus_pm:
paste.app_factory: tacker.sol_refactored.api.prometheus_plugin_router:PmEventRouter.factory paste.app_factory: tacker.sol_refactored.api.router:PmEventRouter.factory
app:server_notification: app:server_notification:
paste.app_factory: tacker.sol_refactored.api.server_notification_router:ServerNotificationRouter.factory paste.app_factory: tacker.sol_refactored.api.router:ServerNotificationRouter.factory
logging: logging:
loggers: loggers:
keys: keys:
@ -601,6 +631,7 @@ manifests:
job_ks_service: true job_ks_service: true
job_ks_user: true job_ks_user: true
job_rabbit_init: true job_rabbit_init: true
pod_test: true
pvc: true pvc: true
secret_db: true secret_db: true
secret_keystone: true secret_keystone: true

View File

@ -135,3 +135,13 @@
container_distro_name: ubuntu container_distro_name: ubuntu
container_distro_version: jammy container_distro_version: jammy
feature_gates: tls feature_gates: tls
- job:
name: openstack-helm-tacker-2024-1-ubuntu_jammy
parent: openstack-helm-tacker
nodeset: openstack-helm-1node-32GB-ubuntu_jammy
vars:
osh_params:
openstack_release: "2024.1"
container_distro_name: ubuntu
container_distro_version: jammy

View File

@ -381,3 +381,4 @@
- ./tools/deployment/component/barbican/barbican.sh - ./tools/deployment/component/barbican/barbican.sh
- ./tools/deployment/component/nfs-provisioner/nfs-provisioner.sh - ./tools/deployment/component/nfs-provisioner/nfs-provisioner.sh
- ./tools/deployment/component/tacker/tacker.sh - ./tools/deployment/component/tacker/tacker.sh
- ./tools/deployment/common/run-helm-tests.sh tacker

View File

@ -41,6 +41,7 @@
- openstack-helm-compute-kit-metallb-2024-1-ubuntu_jammy # 1 node + 2 nodes - openstack-helm-compute-kit-metallb-2024-1-ubuntu_jammy # 1 node + 2 nodes
- openstack-helm-compute-kit-helm-repo-local-2024-1-ubuntu_jammy # 1 node + 2 nodes - openstack-helm-compute-kit-helm-repo-local-2024-1-ubuntu_jammy # 1 node + 2 nodes
- openstack-helm-horizon-2024-1-ubuntu_jammy # 1 node - openstack-helm-horizon-2024-1-ubuntu_jammy # 1 node
- openstack-helm-tacker-2024-1-ubuntu_jammy
gate: gate:
jobs: jobs:
- openstack-helm-lint - openstack-helm-lint