diff --git a/.github/workflows/ucentralgw-demo-deployment.yaml b/.github/workflows/ucentralgw-demo-deployment.yaml index a00bb209c..3a4d68195 100644 --- a/.github/workflows/ucentralgw-demo-deployment.yaml +++ b/.github/workflows/ucentralgw-demo-deployment.yaml @@ -1,4 +1,4 @@ -name: Update DEMO OpenWIFI Cloud SDK 2.x clusters +name: Update DEMO OpenWIFI Cloud SDK defaults: run: @@ -16,20 +16,20 @@ env: DIGICERT_CERT: ${{ secrets.DIGICERT_CERT }} DIGICERT_KEY: ${{ secrets.DIGICERT_KEY }} -# # https://stackoverflow.com/questions/59977364/github-actions-how-use-strategy-matrix-with-script -# # Required object fiels per environment: -# # - namespace - namespace suffix that will used added for the Kubernetes environment (i.e. if you pass 'test', kubernetes namespace will be named 'openwifi-test') -# # - deploy_method - deployment method for the chart deployment (supported methods - 'git' (will use helm-git from assembly chart) and 'bundle' (will use chart stored in the Artifactory0 -# # - chart_version - version of chart to be deployed from assembly chart (for 'git' method git ref may be passed, for 'bundle' method version of chart may be passed) -# # - owgw_version - OpenWIFI Gateway version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owsec_version - OpenWIFI Security version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owfms_version - OpenWIFI Firmware version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owprov_version - OpenWIFI Provisioning version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owanalytics_version - OpenWIFI Analytics version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owsub_version - OpenWIFI Subscription (Userportal) version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owrrm_version - OpenWIFI radio resource management service version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owgwui_version - OpenWIFI Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) -# # - owprovui_version - OpenWIFI Provisioning Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # https://stackoverflow.com/questions/59977364/github-actions-how-use-strategy-matrix-with-script + # Required object fiels per environment: + # - namespace - namespace suffix that will used added for the Kubernetes environment (i.e. if you pass 'test', kubernetes namespace will be named 'openwifi-test') + # - deploy_method - deployment method for the chart deployment (supported methods - 'git' (will use helm-git from assembly chart) and 'bundle' (will use chart stored in the Artifactory0 + # - chart_version - version of chart to be deployed from assembly chart (for 'git' method git ref may be passed, for 'bundle' method version of chart may be passed) + # - owgw_version - OpenWIFI Gateway version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owsec_version - OpenWIFI Security version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owfms_version - OpenWIFI Firmware version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owprov_version - OpenWIFI Provisioning version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owanalytics_version - OpenWIFI Analytics version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owsub_version - OpenWIFI Subscription (Userportal) version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owrrm_version - OpenWIFI radio resource management service version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owgwui_version - OpenWIFI Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owprovui_version - OpenWIFI Provisioning Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) testbeds: '[ { "namespace": "demo", diff --git a/.github/workflows/ucentralgw-dev-deployment.yaml b/.github/workflows/ucentralgw-dev-deployment.yaml index e0e439a28..58668d009 100644 --- a/.github/workflows/ucentralgw-dev-deployment.yaml +++ b/.github/workflows/ucentralgw-dev-deployment.yaml @@ -1,4 +1,4 @@ -name: Update DEV OpenWIFI Cloud SDK 2.x clusters +name: Update DEV01 OpenWIFI Cloud SDK defaults: run: diff --git a/.github/workflows/ucentralgw-qa-deployment.yaml b/.github/workflows/ucentralgw-qa-deployment.yaml index cbf0f814d..4f4995797 100644 --- a/.github/workflows/ucentralgw-qa-deployment.yaml +++ b/.github/workflows/ucentralgw-qa-deployment.yaml @@ -1,4 +1,4 @@ -name: Update QA OpenWIFI Cloud SDK 2.x clusters +name: Update QA01 OpenWIFI Cloud SDK defaults: run: @@ -124,7 +124,6 @@ jobs: export MAILER_PASSWORD=${{ secrets.MAILER_PASSWORD }} export IPTOCOUNTRY_IPINFO_TOKEN=${{ secrets.IPTOCOUNTRY_IPINFO_TOKEN }} export EXTRA_VALUES='owgw.configProperties.logging\.level=information' - echo "key=${AWS_SECRET_ACCESS_KEY}" | base64 ./deploy.sh - name: Show resource state on deployment failure diff --git a/.github/workflows/ucentralgw-qa2-deployment.yaml b/.github/workflows/ucentralgw-qa2-deployment.yaml new file mode 100644 index 000000000..93e219b92 --- /dev/null +++ b/.github/workflows/ucentralgw-qa2-deployment.yaml @@ -0,0 +1,155 @@ +name: Update QA02 OpenWIFI Cloud SDK + +defaults: + run: + shell: bash + +env: + AWS_EKS_NAME: tip-wlan-main + AWS_DEFAULT_OUTPUT: json + AWS_DEFAULT_REGION: ap-south-1 + AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }} + + # DigiCert certs + DIGICERT_CERT: ${{ secrets.DIGICERT_CERT }} + DIGICERT_KEY: ${{ secrets.DIGICERT_KEY }} + + # https://stackoverflow.com/questions/59977364/github-actions-how-use-strategy-matrix-with-script + # Required object fiels per environment: + # - namespace - namespace suffix that will used added for the Kubernetes environment (i.e. if you pass 'test', kubernetes namespace will be named 'openwifi-test') + # - deploy_method - deployment method for the chart deployment (supported methods - 'git' (will use helm-git from assembly chart) and 'bundle' (will use chart stored in the Artifactory0 + # - chart_version - version of chart to be deployed from assembly chart (for 'git' method git ref may be passed, for 'bundle' method version of chart may be passed) + # - owgw_version - OpenWIFI Gateway version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owsec_version - OpenWIFI Security version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owfms_version - OpenWIFI Firmware version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owprov_version - OpenWIFI Provisioning version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owanalytics_version - OpenWIFI Analytics version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owsub_version - OpenWIFI Subscription (Userportal) version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owrrm_version - OpenWIFI radio resource management service version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owgwui_version - OpenWIFI Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + # - owprovui_version - OpenWIFI Provisioning Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) + testbeds: '[ + { + "namespace": "qa02", + "deploy_method": "git", + "chart_version": "main", + "owgw_version": "master", + "owsec_version": "main", + "owfms_version": "main", + "owprov_version": "main", + "owanalytics_version": "main", + "owsub_version": "main", + "owrrm_version": "main", + "owgwui_version": "main", + "owprovui_version": "main" + } + ]' + +on: + workflow_dispatch: {} + +jobs: + generate-matrix: + name: Generate matrix for build + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: generate-matrix + id: set-matrix + run: | + cat >> $GITHUB_OUTPUT << EOF + matrix={"include":${{ env.testbeds }}} + EOF + + deploy: + name: Update OpenWIFI Cloud SDK instances + runs-on: ubuntu-latest + needs: [ generate-matrix ] + strategy: + matrix: ${{ fromJson( needs.generate-matrix.outputs.matrix ) }} + fail-fast: false + steps: + + - name: Checkout repo with Helm values + uses: actions/checkout@v3 + with: + repository: Telecominfraproject/wlan-cloud-ucentral-deploy + path: wlan-cloud-ucentral-deploy + ref: ${{ matrix.chart_version }} + + - name: Prepare certificates from secrets + working-directory: wlan-cloud-ucentral-deploy/chart/environment-values + run: | + echo "${{ env.DIGICERT_CERT }}" | base64 -d > cert.pem + echo "${{ env.DIGICERT_KEY }}" | base64 -d > key.pem + + - name: Fetch kubeconfig + run: | + aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }} + + - name: install kubectl + run: | + curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl" + sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl + + - name: Deploy OpenWIFI Cloud SDK + working-directory: wlan-cloud-ucentral-deploy/chart/environment-values + run: | + export NAMESPACE=${{ matrix.namespace }} + export DEPLOY_METHOD=${{ matrix.deploy_method }} + export CHART_VERSION=${{ matrix.chart_version }} + export OWGW_VERSION=${{ matrix.owgw_version }} + export OWGWUI_VERSION=${{ matrix.owgwui_version }} + export OWSEC_VERSION=${{ matrix.owsec_version }} + export OWFMS_VERSION=${{ matrix.owfms_version }} + export OWPROV_VERSION=${{ matrix.owprov_version }} + export OWPROVUI_VERSION=${{ matrix.owprovui_version }} + export OWANALYTICS_VERSION=${{ matrix.owanalytics_version }} + export OWSUB_VERSION=${{ matrix.owsub_version }} + export OWRRM_VERSION=${{ matrix.owrrm_version }} + #export VALUES_FILE_LOCATION=values.openwifi-qa.yaml,values.openwifi-qa.single-external-db.yaml + export VALUES_FILE_LOCATION=values.openwifi-qa.yaml,values.openwifi-qa.single-external-db.yaml,values.openwifi-qa.owls-external.yaml + export RTTY_TOKEN=${{ secrets.RTTY_TOKEN }} + export OWGW_AUTH_USERNAME=${{ secrets.UCENTRALGW_AUTH_USERNAME }} + export OWGW_AUTH_PASSWORD=${{ secrets.UCENTRALGW_AUTH_PASSWORD }} + export OWFMS_S3_SECRET=${{ secrets.UCENTRALFMS_S3_SECRET }} + export OWFMS_S3_KEY=${{ secrets.UCENTRALFMS_S3_KEY }} + export CERT_LOCATION=cert.pem + export KEY_LOCATION=key.pem + export OWSEC_NEW_PASSWORD=${{ secrets.OWSEC_NEW_PASSWORD }} + export MAILER_USERNAME=${{ secrets.MAILER_USERNAME }} + export MAILER_PASSWORD=${{ secrets.MAILER_PASSWORD }} + export IPTOCOUNTRY_IPINFO_TOKEN=${{ secrets.IPTOCOUNTRY_IPINFO_TOKEN }} + export EXTRA_VALUES='owgw.configProperties.logging\.level=information' + echo "key=${AWS_SECRET_ACCESS_KEY}" | base64 + ./deploy.sh + + - name: Show resource state on deployment failure + if: failure() + run: | + kubectl get pods --namespace openwifi-${{ matrix.namespace }} + kubectl get services --namespace openwifi-${{ matrix.namespace }} + kubectl get persistentvolumeclaims --namespace openwifi-${{ matrix.namespace }} + + - name: Describe pods on deployment failure + if: failure() + run: | + kubectl describe pods --namespace openwifi-${{ matrix.namespace }} + + - name: Describe services on deployment failure + if: failure() + run: | + kubectl describe services --namespace openwifi-${{ matrix.namespace }} + + - name: Describe persistentvolumeclaims on deployment failure + if: failure() + run: | + kubectl describe persistentvolumeclaims --namespace openwifi-${{ matrix.namespace }} + + - name: Rollback Cloud SDK + if: failure() + run: | + helm rollback tip-openwifi --namespace openwifi-${{ matrix.namespace }} --wait --timeout 20m