mirror of
				https://github.com/Telecominfraproject/wlan-testing.git
				synced 2025-10-31 19:08:01 +00:00 
			
		
		
		
	WIFI-13871 CGW deploy testing (#951)
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com> Co-authored-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
This commit is contained in:
		
							
								
								
									
										126
									
								
								.github/workflows/cgw-dev-deployment.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								.github/workflows/cgw-dev-deployment.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,126 @@ | |||||||
|  | name: Update CGW01 OpenLAN Cloud Gateway on tip-wlan-main | ||||||
|  |  | ||||||
|  | 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 }} | ||||||
|  |  | ||||||
|  | #  # 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 'openlan-test') | ||||||
|  | #  # - cgw_version - OpenLAN Cloud Gateway version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required) | ||||||
|  | #  # - just_component - if true then deploy only cgw chart | ||||||
|  |   testbeds: '[ | ||||||
|  |     { | ||||||
|  |       "namespace": "cgw01", | ||||||
|  |       "cgw_version": "main", | ||||||
|  |       "just_component": "false" | ||||||
|  |     } | ||||||
|  |   ]' | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   workflow_dispatch: | ||||||
|  |     inputs: | ||||||
|  |       just_component: | ||||||
|  |         default: 'false' | ||||||
|  |         description: 'Just deploy component, not all the other services' | ||||||
|  |         required: true | ||||||
|  |       id: | ||||||
|  |         description: 'run identifier' | ||||||
|  |         required: false | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   id: | ||||||
|  |     name: Workflow ID Provider | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: ${{ github.event.inputs.id }} | ||||||
|  |         run: echo run identifier ${{ inputs.id }} | ||||||
|  |  | ||||||
|  |   generate-matrix: | ||||||
|  |     name: Generate matrix for build | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     needs: | ||||||
|  |       - id | ||||||
|  |     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 OpenLAN Cloud SDK instances | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     needs: | ||||||
|  |       - id | ||||||
|  |       - generate-matrix | ||||||
|  |     strategy: | ||||||
|  |       matrix: ${{ fromJson( needs.generate-matrix.outputs.matrix ) }} | ||||||
|  |       fail-fast: false | ||||||
|  |     steps: | ||||||
|  |  | ||||||
|  |     - name: Checkout repo with Helm values | ||||||
|  |       uses: actions/checkout@v4 | ||||||
|  |       with: | ||||||
|  |         repository: Telecominfraproject/wlan-cloud-ucentral-deploy | ||||||
|  |         path: wlan-cloud-ucentral-deploy | ||||||
|  |         ref: ${{ matrix.chart_version }} | ||||||
|  |  | ||||||
|  |     - name: Fetch kubeconfig | ||||||
|  |       run: | | ||||||
|  |         aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }} | ||||||
|  |  | ||||||
|  |     - name: Install kubectl, helmfile and plugins | ||||||
|  |       run: | | ||||||
|  |         curl -s -LO "https://dl.k8s.io/release/v1.27.14/bin/linux/amd64/kubectl" | ||||||
|  |         sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl | ||||||
|  |         curl -s -LO "https://github.com/helmfile/helmfile/releases/download/v0.165.0/helmfile_0.165.0_linux_amd64.tar.gz" | ||||||
|  |         tar xvzf helmfile_0.165.0_linux_amd64.tar.gz helmfile | ||||||
|  |         sudo install -o root -g root -m 0755 helmfile /usr/local/bin/helmfile | ||||||
|  |         helm plugin install https://github.com/aslafy-z/helm-git --version 0.16.0 | ||||||
|  |         helm plugin install https://github.com/databus23/helm-diff | ||||||
|  |         helm plugin install https://github.com/jkroepke/helm-secrets | ||||||
|  |  | ||||||
|  |     - name: Deploy OpenLAN Cloud Gateway and services | ||||||
|  |       if: {{ github.event.inputs.just_component }} == "false" | ||||||
|  |       working-directory: wlan-cloud-ucentral-deploy/cgw | ||||||
|  |       run: | | ||||||
|  |         helmfile --environment ${{ matrix.namespace }} apply | ||||||
|  |  | ||||||
|  |     - name: Deploy OpenLAN Cloud Gateway only | ||||||
|  |       if: {{ github.event.inputs.just_component }} == "true" | ||||||
|  |       working-directory: wlan-cloud-ucentral-deploy/cgw | ||||||
|  |       run: | | ||||||
|  |         helmfile --environment ${{ matrix.namespace }} -l app=cgw apply | ||||||
|  |  | ||||||
|  |     - name: Show resource state on deployment failure | ||||||
|  |       if: failure() | ||||||
|  |       run: | | ||||||
|  |         echo "Pods:" | ||||||
|  |         kubectl get pods --namespace openlan-${{ matrix.namespace }} | ||||||
|  |         echo "Pod Descriptions:" | ||||||
|  |         kubectl describe pods --namespace openlan-${{ matrix.namespace }} | ||||||
|  |         echo "Services:" | ||||||
|  |         kubectl get services --namespace openlan-${{ matrix.namespace }} | ||||||
|  |         echo "Service Descriptions:" | ||||||
|  |         kubectl describe services --namespace openlan-${{ matrix.namespace }} | ||||||
|  |         echo "PVCs:" | ||||||
|  |         kubectl get persistentvolumeclaims --namespace openlan-${{ matrix.namespace }} | ||||||
|  |         echo "PVC Descriptions:" | ||||||
|  |         kubectl describe persistentvolumeclaims --namespace openlan-${{ matrix.namespace }} | ||||||
|  |  | ||||||
|  | #    - name: Rollback Cloud SDK | ||||||
|  | #      if: failure() | ||||||
|  | #      run: | | ||||||
|  | #        helm rollback tip-openlan --namespace openlan-${{ matrix.namespace }} --wait --timeout 20m | ||||||
		Reference in New Issue
	
	Block a user
	 Carsten Schafer
					Carsten Schafer