diff --git a/.github/argo/argo_config.sh b/.github/argo/argo_config.sh index 0a7334fd1d..bedc19ef7e 100644 --- a/.github/argo/argo_config.sh +++ b/.github/argo/argo_config.sh @@ -119,6 +119,42 @@ DELETE_INT_RESOURCES=( "$ARGO_INT_B_SUBMODELSERVER/resource?group=apps&force=false&orphan=false&resourceName=tracex-int-b-submodelserver-submodelservers&version=v1&kind=Deployment&namespace=product-traceability-foss" ) + + +DELETE_ASSOCIATION_INT_RESOURCES=( + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/resource?force=false&orphan=false&resourceName=data-tx-backend-postgresql-int-a-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/resource?group=apps&force=true&orphan=false&resourceName=tx-backend-postgresql-int-a&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/resource?force=false&orphan=false&resourceName=data-tx-edc-consumer-postgresql-int-a-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/resource?group=apps&force=true&orphan=false&resourceName=tx-edc-consumer-postgresql-int-a&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/resource?group=apps&force=false&orphan=false&resourceName=tx-backend-int-a&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/resource?group=apps&force=false&orphan=false&resourceName=tx-edc-consumer-int-a-controlplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/resource?group=apps&force=true&orphan=false&resourceName=tx-edc-consumer-int-a-dataplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_EDC_PROVIDER/resource?force=false&orphan=false&resourceName=data-tx-edc-provider-postgresql-int-a-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_EDC_PROVIDER/resource?group=apps&force=true&orphan=false&resourceName=tx-edc-provider-postgresql-int-a&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_EDC_PROVIDER/resource?group=apps&force=false&orphan=false&resourceName=tx-edc-provider-int-a-controlplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_EDC_PROVIDER/resource?group=apps&force=false&orphan=false&resourceName=tx-edc-provider-int-a-dataplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_REGISTRY/resource?force=false&orphan=false&resourceName=data-tracex-registry-int-a-postgresql-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_REGISTRY/resource?group=apps&force=true&orphan=false&resourceName=tracex-registry-int-a-postgresql&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_REGISTRY/resource?group=apps&force=false&orphan=false&resourceName=tracex-registry-int-a&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_A_SUBMODELSERVER/resource?group=apps&force=false&orphan=false&resourceName=trace-x-int-a-submodelserver-submodelservers&version=v1&kind=Deployment&namespace=product-traceability-foss" + + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/resource?force=false&orphan=false&resourceName=data-tx-backend-postgresql-int-b-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/resource?group=apps&force=true&orphan=false&resourceName=tx-backend-postgresql-int-b&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/resource?force=false&orphan=false&resourceName=data-tx-edc-consumer-postgresql-int-b-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/resource?group=apps&force=true&orphan=false&resourceName=tx-edc-consumer-postgresql-int-b&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/resource?group=apps&force=false&orphan=false&resourceName=tx-backend-int-b&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/resource?group=apps&force=false&orphan=false&resourceName=tx-edc-consumer-int-b-controlplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/resource?group=apps&force=true&orphan=false&resourceName=tx-edc-consumer-int-b-dataplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_EDC_PROVIDER/resource?force=false&orphan=false&resourceName=data-tx-edc-provider-postgresql-int-b-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_EDC_PROVIDER/resource?group=apps&force=true&orphan=false&resourceName=tx-edc-provider-postgresql-int-b&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_EDC_PROVIDER/resource?group=apps&force=false&orphan=false&resourceName=tx-edc-provider-int-b-controlplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_EDC_PROVIDER/resource?group=apps&force=false&orphan=false&resourceName=tx-edc-provider-int-b-dataplane&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_REGISTRY/resource?force=false&orphan=false&resourceName=data-tracex-registry-int-b-postgresql-0&version=v1&kind=PersistentVolumeClaim&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_REGISTRY/resource?group=apps&force=true&orphan=false&resourceName=tracex-registry-int-b-postgresql&version=v1&kind=StatefulSet&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_REGISTRY/resource?group=apps&force=false&orphan=false&resourceName=tracex-registry-int-b&version=v1&kind=Deployment&namespace=product-traceability-foss" + "$ARGO_ASSOCIATION_INT_B_SUBMODELSERVER/resource?group=apps&force=false&orphan=false&resourceName=trace-x-int-b-submodelserver-submodelservers&version=v1&kind=Deployment&namespace=product-traceability-foss" + + ) SYNC_DEV_TEST_RESOURCES=( "$ARGO_TEST_REGISTRY/sync" "$ARGO_TEST_EDC_PROVIDER/sync" @@ -152,6 +188,18 @@ SYNC_INT_RESOURCES=( "$ARGO_INT_B_SUBMODELSERVER/sync" "$ARGO_INT_B_TRACE_X_INSTANCE/sync" ) + +SYNC_ASSOCIATION_INT_RESOURCES=( + "$ARGO_ASSOCIATION_INT_A_REGISTRY/sync" + "$ARGO_ASSOCIATION_INT_A_EDC_PROVIDER/sync" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE/sync" + "$ARGO_ASSOCIATION_INT_A_SUBMODELSERVER/sync" + + "$ARGO_ASSOCIATION_INT_B_REGISTRY/sync" + "$ARGO_ASSOCIATION_INT_B_EDC_PROVIDER/sync" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE/sync" + "$ARGO_ASSOCIATION_INT_B_SUBMODELSERVER/sync" +) DEV_TEST_RESOURCES=( "$ARGO_TEST_REGISTRY" "$ARGO_TEST_EDC_PROVIDER" @@ -187,3 +235,16 @@ INT_RESOURCES=( ) +ASSOCIATION_INT_RESOURCES=( + "$ARGO_ASSOCIATION_INT_A_REGISTRY" + "$ARGO_ASSOCIATION_INT_A_EDC_PROVIDER" + "$ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE" + "$ARGO_ASSOCIATION_INT_A_SUBMODELSERVER" + + "$ARGO_ASSOCIATION_INT_B_REGISTRY" + "$ARGO_ASSOCIATION_INT_B_EDC_PROVIDER" + "$ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE" + "$ARGO_ASSOCIATION_INT_B_SUBMODELSERVER" +) + + diff --git a/.github/workflows/argo.yml b/.github/workflows/argo.yml index 2440a73783..fe4505bce4 100644 --- a/.github/workflows/argo.yml +++ b/.github/workflows/argo.yml @@ -34,6 +34,8 @@ on: - Dev/Test - E2E-A/E2E-B - int-a/int-b + - association int-a/int-b + testdata_version: description: Which Testdata Version CX_Testdata_MessagingTest_v.json e.g., 0.0.14" required: true @@ -84,16 +86,29 @@ env: ARGO_INT_A_EDC_PROVIDER: "https://argo.int.demo.catena-x.net/api/v1/applications/tx-edc-provider-int-a" ARGO_INT_A_TRACE_X_INSTANCE: "https://argo.int.demo.catena-x.net/api/v1/applications/traceability-foss-int-a" ARGO_INT_A_SUBMODELSERVER: "https://argo.int.demo.catena-x.net/api/v1/applications/tracex-int-a-submodelserver" - ARGO_INT_A_RegistryReload: "https://traceability-int-a.int.demo.catena-x.net/api/registry/reload" ARGO_INT_B_REGISTRY: "https://argo.int.demo.catena-x.net/api/v1/applications/tx-registry-int-b" ARGO_INT_B_EDC_PROVIDER: "https://argo.int.demo.catena-x.net/api/v1/applications/tx-edc-provider-int-b" ARGO_INT_B_TRACE_X_INSTANCE: "https://argo.int.demo.catena-x.net/api/v1/applications/traceability-foss-int-b" ARGO_INT_B_SUBMODELSERVER: "https://argo.int.demo.catena-x.net/api/v1/applications/tracex-int-b-submodelserver" - ARGO_INT_B_RegistryReload: "https://traceability-int-b.int.demo.catena-x.net/api/registry/reload" + ARGO_ASSOCIATION_INT_A_REGISTRY: "https://argocd.int.catena-x.net/api/v1/applications/tracex-registry-int-a" + ARGO_ASSOCIATION_INT_A_EDC_PROVIDER: "https://argocd.int.catena-x.net/api/v1/applications/tx-edc-provider-int-a" + ARGO_ASSOCIATION_INT_A_TRACE_X_INSTANCE: "https://argocd.int.catena-x.net/api/v1/applications/traceability-foss-int-a" + ARGO_ASSOCIATION_INT_A_SUBMODELSERVER: "https://argocd.int.catena-x.net/api/v1/applications/trace-x-int-a-submodelserver-submodelservers" + + ARGO_ASSOCIATION_INT_B_REGISTRY: "https://argocd.int.catena-x.net/api/v1/applications/tracex-registry-int-b" + ARGO_ASSOCIATION_INT_B_EDC_PROVIDER: "https://argocd.int.catena-x.net/api/v1/applications/tx-edc-provider-int-b" + ARGO_ASSOCIATION_INT_B_TRACE_X_INSTANCE: "https://argocd.int.catena-x.net/api/v1/applications/traceability-foss-int-b" + ARGO_ASSOCIATION_INT_B_SUBMODELSERVER: "https://argocd.int.catena-x.net/api/v1/applications/trace-x-int-b-submodelserver-submodelservers" + + + + + + jobs: test_input: runs-on: ubuntu-latest @@ -126,6 +141,8 @@ jobs: resources="${E2E_RESOURCES[2]}" elif [ "${{ github.event.inputs.environment }}" == "int-a/int-b" ]; then resources="${INT_RESOURCES[2]}" + elif [ "${{ github.event.inputs.environment }}" == "association int-a/int-b" ]; then + resources="${ASSOCIATION_INT_RESOURCES[2]}" fi data=$(curl -X GET -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" "$resources") @@ -175,6 +192,8 @@ jobs: resources=("${E2E_RESOURCES[@]}") elif [ "${{ github.event.inputs.environment }}" == "int-a/int-b" ]; then resources=("${INT_RESOURCES[@]}") + elif [ "${{ github.event.inputs.environment }}" == "association int-a/int-b" ]; then + resources=("${ASSOCIATION_INT_RESOURCES[@]}") fi for resource in "${resources[@]}"; do @@ -209,10 +228,12 @@ jobs: resources=("${DELETE_E2E_RESOURCES[@]}") elif [ "${{ github.event.inputs.environment }}" == "int-a/int-b" ]; then resources=("${DELETE_INT_RESOURCES[@]}") + elif [ "${{ github.event.inputs.environment }}" == "association int-a/int-b" ]; then + resources=("${DELETE_ASSOCIATION_INT_RESOURCES[@]}") fi for resource in "${resources[@]}"; do - curl -X DELETE -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" "$resource" + curl -X DELETE -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" -H "Content-Type: application/json" "$resource" sleep 2 done sleep 10 @@ -297,10 +318,12 @@ jobs: resources=("${SYNC_E2E_RESOURCES[@]}") elif [ "${{ github.event.inputs.environment }}" == "int-a/int-b" ]; then resources=("${SYNC_INT_RESOURCES[@]}") + elif [ "${{ github.event.inputs.environment }}" == "association int-a/int-b" ]; then + resources=("${SYNC_ASSOCIATION_INT_RESOURCES[@]}") fi for resource in "${resources[@]}"; do - curl -X POST -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" "$resource" + curl -X POST -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" -H "Content-Type: application/json" "$resource" done sleep 20 @@ -329,6 +352,8 @@ jobs: resources=("${E2E_RESOURCES[@]}") elif [ "${{ github.event.inputs.environment }}" == "int-a/int-b" ]; then resources=("${INT_RESOURCES[@]}") + elif [ "${{ github.event.inputs.environment }}" == "association int-a/int-b" ]; then + resources=("${ASSOCIATION_INT_RESOURCES[@]}") fi for resource in "${resources[@]}"; do @@ -342,13 +367,13 @@ jobs: break elif [ "$operationState" == "Failed" ] || ([ "$status" == "OutOfSync" ] && [ "$operationState" == "Failed" ]) || ([ "$status" == "OutOfSync" ] && [ "$operationState" == "Succeeded" ]); then echo "Another sync" - curl -X POST -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" "$resource/sync" + curl -X POST -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" -H "Content-Type: application/json" "$resource/sync" sleep 10 elif [ "$status" == "OutOfSync" ] && [ "$operationState" == "Running" ]; then echo "First terminate sync then start another sync" - curl -X DELETE -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" "$resource/operation?appNamespace=argocd" + curl -X DELETE -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" -H "Content-Type: application/json" "$resource/operation?appNamespace=argocd" sleep 10 - curl -X POST -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" "$resource/sync" + curl -X POST -H "Authorization: Bearer ${{ env.ARGO_TOKEN }}" -H "Content-Type: application/json" "$resource/sync" sleep 10 else echo "Wait" @@ -391,6 +416,11 @@ jobs: sleep 10 python transform-and-upload.py -f ./tx-backend/testdata/CX_Testdata_MessagingTest_v${{ github.event.inputs.testdata_version }}.json -s https://tracex-int-b-submodel-server.int.demo.catena-x.net -edc https://trace-x-edc-int-b.int.demo.catena-x.net -a https://trace-x-registry-int-b.int.demo.catena-x.net/semantics/registry/api/v3 -d https://trace-x-edc-int-b-dataplane.int.demo.catena-x.net -p traceability-core -k ${{ secrets.TRACE_X_API_KEY_INT_B }} --aas3 --edcBPN BPNL00000003CNKC --allowedBPNs BPNL00000003CML1 BPNL00000003CNKC BPNL00000003AZQP BPNL00000003CSGV sleep 10 + elif [ "${{ github.event.inputs.environment }}" == "association int-a/int-b" ]; then + python transform-and-upload.py -f ./tx-backend/testdata/CX_Testdata_MessagingTest_v${{ github.event.inputs.testdata_version }}.json -s https://tracex-int-a-submodel-server.int.catena-x.net -edc https://trace-x-edc-int-a.int.catena-x.net -a https://trace-x-registry-int-a.int.catena-x.net/semantics/registry/api/v3 -d https://trace-x-edc-int-a-dataplane.int.catena-x.net -p traceability-core -k ${{ secrets.TRACE_X_API_KEY_ASSOCIATION_INT }} --aas3 --edcBPN BPNL00000003CML1 --allowedBPNs BPNL00000003CML1 BPNL00000003CNKC BPNL00000003AZQP BPNL00000003CSGV + sleep 10 + python transform-and-upload.py -f ./tx-backend/testdata/CX_Testdata_MessagingTest_v${{ github.event.inputs.testdata_version }}.json -s https://tracex-int-b-submodel-server.int.catena-x.net -edc https://trace-x-edc-int-b.int.catena-x.net -a https://trace-x-registry-int-b.int.catena-x.net/semantics/registry/api/v3 -d https://trace-x-edc-int-b-dataplane.int.catena-x.net -p traceability-core -k ${{ secrets.TRACE_X_API_KEY_ASSOCIATION_INT }} --aas3 --edcBPN BPNL00000003CNKC --allowedBPNs BPNL00000003CML1 BPNL00000003CNKC BPNL00000003AZQP BPNL00000003CSGV + sleep 10 fi elif [ "${{ github.event.inputs.testdata_upload }}" == "false" ]; then echo "Testdata upload skipped" diff --git a/CHANGELOG.md b/CHANGELOG.md index bc3bcdd8e6..ca3997ef85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ _**For better traceability add the corresponding GitHub issue number in each cha - #985 Added reference to part/notification under contract - #786 Added icons on part table to let admin reload registry / sync assets via IRS - #520 Added Attribute BPN to DetailView +- #1112 Added association int-a/int-b environment to argo workflow ### Changed - #965 Implement proxy functionality of the IRS policy store