Skip to content

feat(bpdm): added connection to dependencies in readiness check for bpdm services #501

feat(bpdm): added connection to dependencies in readiness check for bpdm services

feat(bpdm): added connection to dependencies in readiness check for bpdm services #501

################################################################################
# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://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.
#
# SPDX-License-Identifier: Apache-2.0
################################################################################
name: Perform Chart Tests
on:
workflow_call:
inputs:
node_image:
description: 'kindest/node image for k8s kind cluster'
default: 'kindest/node:v1.31.2'
required: false
type: string
upgrade_from:
description: 'chart version to upgrade from'
required: false
type: string
helm_version:
description: 'helm version to test (default = latest)'
default: 'latest'
required: false
type: string
workflow_dispatch:
inputs:
node_image:
description: 'kindest/node image for k8s kind cluster'
# k8s version from 3.1 release as default
default: 'kindest/node:v1.31.2'
required: false
type: string
upgrade_from:
description: 'chart version to upgrade from'
required: false
type: string
helm_version:
description: 'helm version to test (default = latest)'
default: 'latest'
required: false
type: string
pull_request:
branches:
- main
- release/**
paths:
- 'pom.xml'
- 'bpdm-**'
- 'charts/**'
push:
branches:
- main
- release/**
jobs:
build-apps:
uses: ./.github/workflows/docker-build-and-cache-all.yaml
execute-tests:
needs: build-apps
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Kubernetes KinD Cluster
uses: container-tools/kind-action@v2
with:
version: v0.20.0
node_image: ${{ github.event.inputs.node_image || 'kindest/node:v1.31.2' }}
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: ${{ github.event.inputs.helm_version || 'latest' }}
- uses: actions/setup-python@v5
with:
python-version: '3.9'
check-latest: true
- name: Set up chart-testing
uses: helm/[email protected]
- name: Download Pool Image
uses: actions/download-artifact@v4
with:
name: bpdm-pool-docker
path: /tmp
- name: Download Gate Image
uses: actions/download-artifact@v4
with:
name: bpdm-gate-docker
path: /tmp
- name: Download Orchestrator Image
uses: actions/download-artifact@v4
with:
name: bpdm-orchestrator-docker
path: /tmp
- name: Download Cleaning Service Dummy Image
uses: actions/download-artifact@v4
with:
name: bpdm-cleaning-service-dummy-docker
path: /tmp
- name: Push Pool Image to Kind
run: |
docker load --input /tmp/bpdm-pool.tar
docker image tag bpdm-pool:test kind-registry:5000/bpdm-pool:test
docker push kind-registry:5000/bpdm-pool:test
- name: Push Gate Image to Kind
run: |
docker load --input /tmp/bpdm-gate.tar
docker image tag bpdm-gate:test kind-registry:5000/bpdm-gate:test
docker push kind-registry:5000/bpdm-gate:test
- name: Push Orchestrator Image to Kind
run: |
docker load --input /tmp/bpdm-orchestrator.tar
docker image tag bpdm-orchestrator:test kind-registry:5000/bpdm-orchestrator:test
docker push kind-registry:5000/bpdm-orchestrator:test
- name: Push Cleaning Service Dummy Image to Kind
run: |
docker load --input /tmp/bpdm-cleaning-service-dummy.tar
docker image tag bpdm-cleaning-service-dummy:test kind-registry:5000/bpdm-cleaning-service-dummy:test
docker push kind-registry:5000/bpdm-cleaning-service-dummy:test
- name: Create Test Values
run: |
mkdir charts/bpdm/ci
cat <<EOF > charts/bpdm/ci/test-values.yaml
bpdm-pool:
image:
registry: kind-registry:5000
repository: bpdm-pool
tag: test
bpdm-gate:
image:
registry: kind-registry:5000
repository: bpdm-gate
tag: test
bpdm-orchestrator:
image:
registry: kind-registry:5000
repository: bpdm-orchestrator
tag: test
bpdm-cleaning-service-dummy:
image:
registry: kind-registry:5000
repository: bpdm-cleaning-service-dummy
tag: test
EOF
echo "cat charts/bpdm/ci/test-values.yaml"
cat charts/bpdm/ci/test-values.yaml
- name: Create Chart-Testing Config
run: |
cat <<EOF > .chart-testing-config.yaml
chart-repos:
- bitnami=https://charts.bitnami.com/bitnami
helm-extra-args: --timeout 600s
EOF
echo "cat .chart-testing-config.yaml"
cat .chart-testing-config.yaml
- name: Run chart-testing (install)
run: ct install --charts charts/bpdm --config .chart-testing-config.yaml
- name: Create Test Upgrade Values
run: |
cat <<EOF > charts/bpdm/ci/test-upgrade-values.yaml
bpdm-pool:
image:
registry: kind-registry:5000
repository: bpdm-pool
tag: test
bpdm-gate:
image:
registry: kind-registry:5000
repository: bpdm-gate
tag: test
bpdm-orchestrator:
image:
registry: kind-registry:5000
repository: bpdm-orchestrator
tag: test
bpdm-cleaning-service-dummy:
image:
registry: kind-registry:5000
repository: bpdm-cleaning-service-dummy
tag: test
centralidp:
keycloak:
auth:
adminPassword: password
replicaCount: 1
postgresql:
auth:
# -- Non-root user password.
password: password
# -- Root user password.
postgresPassword: password
architecture: standalone
secrets:
postgresql:
auth:
existingSecret:
postgrespassword: password
password: password
realmSeeding:
enabled: false
EOF
echo "cat charts/bpdm/ci/test-upgrade-values.yaml"
cat charts/bpdm/ci/test-upgrade-values.yaml
- name: Run helm upgrade
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add tractusx-dev https://eclipse-tractusx.github.io/charts/dev
helm install -f charts/bpdm/ci/test-upgrade-values.yaml bpdm-test tractusx-dev/bpdm ${{ github.event.inputs.upgrade_from && '--version github.event.inputs.upgrade_from' || '' }}
helm dependency update charts/bpdm
helm upgrade -f charts/bpdm/ci/test-upgrade-values.yaml bpdm-test charts/bpdm