diff --git a/.github/workflows/chart-verification.yml b/.github/workflows/chart-verification.yml index 9442c63c1..ffdc2c8ca 100644 --- a/.github/workflows/chart-verification.yml +++ b/.github/workflows/chart-verification.yml @@ -21,6 +21,19 @@ name: Verify and Test Helm Chart on: 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.27.3' + required: false + type: string + upgrade_from: + description: 'chart version to upgrade from' + # chart version from 3.1 release as default + default: '0.2.0' + required: false + type: string pull_request: paths: - 'charts/managed-identity-wallet/**' @@ -107,9 +120,10 @@ jobs: distribution: 'temurin' java-version: '17' - - name: Add bitnami repo + - name: Add bitnami and tractusx-dev repos run: | helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo add tractusx-dev https://eclipse-tractusx.github.io/charts/dev helm repo update - name: Update Helm dependencies @@ -132,7 +146,8 @@ jobs: - name: Kubernetes KinD Cluster uses: container-tools/kind-action@v2 with: - node_image: 'kindest/node:v1.27.3' + # default value for event_name != workflow_dispatch + node_image: ${{ github.event.inputs.node_image || 'kindest/node:v1.27.3' }} version: v0.20.0 - name: Build image @@ -142,5 +157,80 @@ jobs: push: true tags: kind-registry:5000/miw:testing - - name: Install the chart on KinD cluster - run: helm install -n apps --create-namespace --wait --set image.tag=testing --set=image.repository=kind-registry:5000/miw testing charts/managed-identity-wallet + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + check-latest: true + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.3.1 + + # ct list-changed will output all charts which have changed compared to the target-branch + # Example: + # Our branch has update the charts/managed-identity-wallet + # When we compare with main/develop + # We get the output + # > charts/managed-identity-wallet + # and subsequently set the variable `changed=true` + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }}) + if [[ -n "$changed" ]]; then + echo "changed=true" >> $GITHUB_OUTPUT + fi + + # TODO: update the ci/all-values.yaml file before enabling this step + - name: Run chart-testing (install) + run: ct install --charts charts/managed-identity-wallet + # if: github.event_name != 'pull_request' || steps.list-changed.outputs.changed == 'true' + if: false + + # command breakdown + # install: install the chart effectively creating a release + # install arg 1 (testing): the name of the release + # install arg 2 (tractusx-dev/managed-identity-wallet): the chart to install (in this case the official one from the dev repo) + # -n/--namespace: the namespace to use when installing + # --create-namespace: create the release namespace if it doesn't exist + # --wait: wait for all resources to start + # --version: The chart version to install + - name: Install the default chart on KinD cluster + run: | + helm install \ + testing \ + tractusx-dev/managed-identity-wallet \ + -n apps \ + --create-namespace \ + --wait \ + --version ${{ github.event.inputs.upgrade_from || '0.2.0' }} + + # command breakdown + # helm dependency update: update chart dependencies based on the content of Chart.yaml + # update arg1 (charts/managed-identity-wallet): the location of Chart.yaml + # -n/--namespace apps: run in the `apps` namespace + # --- + # helm upgrade: upgrade a release + # upgrade arg1 (testing): the name of the release to upgrade + # upgrade arg2 (charts/managed-identity-wallet): the location of Chart.yaml + # -n/--namespace apps: run in the `apps` namespace + # --wait: wait for all pods, services etc. ro run + # --set image.tag=testing: overwrite the image.tag value to be `testing` + # --set image.repository=kind-registry:5000/miw: overwrite the image.repository value to be `kind-registry:5000/miw` + # --- + # NOTE: the overwritten values for the image are used to ensure we use the latest chart version, which was + # built during the workflow run. + - name: Run helm upgrade + run: | + helm dependency \ + update \ + charts/managed-identity-wallet \ + -n apps + + helm upgrade \ + testing \ + charts/managed-identity-wallet \ + -n apps \ + --wait \ + --set image.tag=testing \ + --set image.repository=kind-registry:5000/miw + # only run if this is not a PR -OR- if there are new versions available + if: github.event_name != 'pull_request' || steps.list-changed.outputs.changed == 'true' diff --git a/charts/managed-identity-wallet/Chart.lock b/charts/managed-identity-wallet/Chart.lock index 45fec3516..4ca5f7780 100644 --- a/charts/managed-identity-wallet/Chart.lock +++ b/charts/managed-identity-wallet/Chart.lock @@ -4,9 +4,9 @@ dependencies: version: 15.1.6 - name: common repository: https://charts.bitnami.com/bitnami - version: 2.8.0 + version: 2.13.3 - name: postgresql repository: https://charts.bitnami.com/bitnami version: 11.9.13 -digest: sha256:4ec5952d86e68eb97bc393404e52e5a7371eed72d769440d1fa549c8db8b4a3b -generated: "2023-08-21T23:08:36.120845+02:00" +digest: sha256:d26187a3896751774a3c7646c6a12186aae20fbde5a705ca458c1aeac9bf361c +generated: "2023-12-11T11:38:02.235024+01:00" diff --git a/charts/managed-identity-wallet/README.md b/charts/managed-identity-wallet/README.md index bf1616852..da27ba496 100644 --- a/charts/managed-identity-wallet/README.md +++ b/charts/managed-identity-wallet/README.md @@ -2,7 +2,7 @@ # managed-identity-wallet -![Version: 0.2.0-develop.11](https://img.shields.io/badge/Version-0.2.0--develop.11-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.2.0-develop.11](https://img.shields.io/badge/AppVersion-0.2.0--develop.11-informational?style=flat-square) +![Version: 0.4.0-develop.1](https://img.shields.io/badge/Version-0.4.0--develop.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.4.0-develop.1](https://img.shields.io/badge/AppVersion-0.4.0--develop.1-informational?style=flat-square) Managed Identity Wallet is supposed to supply a secure data source and data sink for Digital Identity Documents (DID), in order to enable Self-Sovereign Identity founding on those DIDs. And at the same it shall support an uninterrupted tracking and tracing and documenting the usage of those DIDs, e.g. within logistical supply chains.