mirror of
				https://github.com/Telecominfraproject/wlan-testing.git
				synced 2025-11-03 20:38:05 +00:00 
			
		
		
		
	[WIFI-6851] Chg: owls workflow parameters (#381)
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
This commit is contained in:
		
							
								
								
									
										545
									
								
								.github/workflows/uc_loadsim.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										545
									
								
								.github/workflows/uc_loadsim.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,5 @@
 | 
				
			|||||||
name: OpenWifi 2.0 load simulation
 | 
					name: OpenWifi 2.0 load simulation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
env:
 | 
					env:
 | 
				
			||||||
  # AWS credentials
 | 
					  # AWS credentials
 | 
				
			||||||
  AWS_EKS_NAME: tip-wlan-main
 | 
					  AWS_EKS_NAME: tip-wlan-main
 | 
				
			||||||
@@ -8,20 +9,28 @@ env:
 | 
				
			|||||||
  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }}
 | 
					  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }}
 | 
				
			||||||
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }}
 | 
					  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
on: 
 | 
					on:
 | 
				
			||||||
  workflow_dispatch:
 | 
					  workflow_dispatch:
 | 
				
			||||||
    inputs:
 | 
					    inputs:
 | 
				
			||||||
      sdk_version:
 | 
					      sdk_version:
 | 
				
			||||||
        default: 'main'
 | 
					        default: 'main'
 | 
				
			||||||
        description: 'Version of Cloud SDK to test'
 | 
					        description: 'Version of Cloud SDK to test'
 | 
				
			||||||
        required: true
 | 
					        required: true
 | 
				
			||||||
 | 
					      devices_count:
 | 
				
			||||||
 | 
					        default: '25000'
 | 
				
			||||||
 | 
					        description: 'Amount of devices to simulate'
 | 
				
			||||||
 | 
					        required: true
 | 
				
			||||||
 | 
					      simulation_lenght:
 | 
				
			||||||
 | 
					        default: '360'
 | 
				
			||||||
 | 
					        description: 'Simulation lenght in seconds'
 | 
				
			||||||
 | 
					        required: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defaults:
 | 
					defaults:
 | 
				
			||||||
  run:
 | 
					  run:
 | 
				
			||||||
    shell: bash
 | 
					    shell: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  loadsim:
 | 
					  kubernetes:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - name: Checkout Testing repo
 | 
					    - name: Checkout Testing repo
 | 
				
			||||||
@@ -36,8 +45,8 @@ jobs:
 | 
				
			|||||||
      id: namespace
 | 
					      id: namespace
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        NAMESPACE="ls-${{ github.run_number }}"
 | 
					        NAMESPACE="ls-${{ github.run_number }}"
 | 
				
			||||||
        kubectl create ns $NAMESPACE
 | 
					        kubectl create ns openwifi-$NAMESPACE
 | 
				
			||||||
        kubectl config set-context --current --namespace=$NAMESPACE
 | 
					        kubectl config set-context --current --namespace=openwifi-$NAMESPACE
 | 
				
			||||||
        echo "::set-output name=namespace::${NAMESPACE}"
 | 
					        echo "::set-output name=namespace::${NAMESPACE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Set gateway URL output
 | 
					    - name: Set gateway URL output
 | 
				
			||||||
@@ -83,6 +92,7 @@ jobs:
 | 
				
			|||||||
        export DEVICE_CERT_LOCATION=device-cert.pem
 | 
					        export DEVICE_CERT_LOCATION=device-cert.pem
 | 
				
			||||||
        export DEVICE_KEY_LOCATION=device-key.pem
 | 
					        export DEVICE_KEY_LOCATION=device-key.pem
 | 
				
			||||||
        export OWSEC_NEW_PASSWORD=${{ secrets.OWSEC_NEW_PASSWORD }}
 | 
					        export OWSEC_NEW_PASSWORD=${{ secrets.OWSEC_NEW_PASSWORD }}
 | 
				
			||||||
 | 
					        export USE_SEPARATE_OWGW_LB=true
 | 
				
			||||||
        ./deploy.sh
 | 
					        ./deploy.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Checkout OWLS for CLI tool
 | 
					    - name: Checkout OWLS for CLI tool
 | 
				
			||||||
@@ -100,20 +110,39 @@ jobs:
 | 
				
			|||||||
        echo "OWGW - $OWGW"
 | 
					        echo "OWGW - $OWGW"
 | 
				
			||||||
        echo "OWSEC - $OWSEC"
 | 
					        echo "OWSEC - $OWSEC"
 | 
				
			||||||
        echo "OWLS - $OWLS"
 | 
					        echo "OWLS - $OWLS"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "Trying to cache OWLS FQDN in /etc/hosts"
 | 
				
			||||||
 | 
					        export HOST_ENTRY=""
 | 
				
			||||||
 | 
					        until [ ! -z "$HOST_ENTRY" ]; do export HOST_ENTRY=$(getent hosts ${{ steps.ls.outputs.url }}); sleep 1; done;
 | 
				
			||||||
 | 
					        cat /etc/hosts > /tmp/hosts
 | 
				
			||||||
 | 
					        echo "$HOST_ENTRY" >> /tmp/hosts
 | 
				
			||||||
 | 
					        sudo cp /tmp/hosts /etc/hosts
 | 
				
			||||||
 | 
					        echo "DNS record for $OWLS resolved successfully!"
 | 
				
			||||||
 | 
					        cat /etc/hosts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        curl -s -X POST -H 'Content-Type: application/json' https://$OWSEC/api/v1/oauth2 -d '{"userId": "tip@ucentral.com", "password": "'${{ secrets.OWSEC_NEW_PASSWORD }}'"}' | jq '.access_token' -r > access_token
 | 
					        curl -s -X POST -H 'Content-Type: application/json' https://$OWSEC/api/v1/oauth2 -d '{"userId": "tip@ucentral.com", "password": "'${{ secrets.OWSEC_NEW_PASSWORD }}'"}' | jq '.access_token' -r > access_token
 | 
				
			||||||
        echo
 | 
					        echo
 | 
				
			||||||
        echo "[Info] Creating simulation"
 | 
					        echo "[Info] Creating simulation"
 | 
				
			||||||
 | 
					        touch output_sim_info.json
 | 
				
			||||||
        cat > input_sim_info.json <<EOF
 | 
					        cat > input_sim_info.json <<EOF
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          "name":"${{ steps.namespace.outputs.namespace }}",
 | 
					          "name":"${{ steps.namespace.outputs.namespace }}",
 | 
				
			||||||
          "deviceType":"edgecore_ecw5410",
 | 
					          "deviceType":"edgecore_ecw5410",
 | 
				
			||||||
          "devices":5,
 | 
					          "devices":${{ github.event.inputs.devices_count }},
 | 
				
			||||||
          "gateway":"https://$OWGW",
 | 
					          "gateway":"https://$OWGW",
 | 
				
			||||||
          "macPrefix":"030000",
 | 
					          "macPrefix":"030000",
 | 
				
			||||||
          "simulationLength":600
 | 
					          "simulationLength":${{ github.event.inputs.simulation_lenght }}
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        EOF
 | 
					        EOF
 | 
				
			||||||
        curl -s -X POST https://$OWLS/api/v1/simulation -H "Content-Type: application/json" -H "Authorization: Bearer $(cat access_token)" -d @input_sim_info.json | tee output_sim_info.json
 | 
					        export SIMULATION_ID="null"
 | 
				
			||||||
 | 
					        while [[ "$SIMULATION_ID" == "null" ]]; do
 | 
				
			||||||
 | 
					          curl -k -s -X POST https://$OWLS/api/v1/simulation -H "Content-Type: application/json" -H "Authorization: Bearer $(cat access_token)" -d @input_sim_info.json > output_sim_info.json
 | 
				
			||||||
 | 
					          cat output_sim_info.json | jq .
 | 
				
			||||||
 | 
					          export SIMULATION_ID=$(cat output_sim_info.json | jq '.id' -r)
 | 
				
			||||||
 | 
					          echo $SIMULATION_ID
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					        echo
 | 
				
			||||||
 | 
					        cat output_sim_info.json | jq .
 | 
				
			||||||
        echo
 | 
					        echo
 | 
				
			||||||
        echo "[Info] Starting simulation"
 | 
					        echo "[Info] Starting simulation"
 | 
				
			||||||
        export SIMULATION_ID=$(cat output_sim_info.json | jq '.id' -r)
 | 
					        export SIMULATION_ID=$(cat output_sim_info.json | jq '.id' -r)
 | 
				
			||||||
@@ -155,3 +184,505 @@ jobs:
 | 
				
			|||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        helm delete -n openwifi-${{ steps.namespace.outputs.namespace }} tip-openwifi || true
 | 
					        helm delete -n openwifi-${{ steps.namespace.outputs.namespace }} tip-openwifi || true
 | 
				
			||||||
        kubectl delete ns openwifi-"${{ steps.namespace.outputs.namespace }}" --wait=true
 | 
					        kubectl delete ns openwifi-"${{ steps.namespace.outputs.namespace }}" --wait=true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  docker-compose:
 | 
				
			||||||
 | 
					    needs: kubernetes
 | 
				
			||||||
 | 
					    if: always()
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - name: Checkout Testing repo
 | 
				
			||||||
 | 
					      uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        path: wlan-testing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Get EKS access credentials
 | 
				
			||||||
 | 
					      run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Prepare namespace
 | 
				
			||||||
 | 
					      id: namespace
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        NAMESPACE="dc-ls-${{ github.run_number }}"
 | 
				
			||||||
 | 
					        kubectl create ns openwifi-$NAMESPACE
 | 
				
			||||||
 | 
					        kubectl config set-context --current --namespace=openwifi-$NAMESPACE
 | 
				
			||||||
 | 
					        echo "::set-output name=namespace::${NAMESPACE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Set OWLS service URL output
 | 
				
			||||||
 | 
					      id: owls
 | 
				
			||||||
 | 
					      run: echo "::set-output name=url::owls-${{ steps.namespace.outputs.namespace }}.cicd.lab.wlan.tip.build"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Set CloudSDK service URL output
 | 
				
			||||||
 | 
					      id: cloudsdk
 | 
				
			||||||
 | 
					      run: echo "::set-output name=url::cloudsdk-${{ steps.namespace.outputs.namespace }}.cicd.lab.wlan.tip.build"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Prepare certificates from secrets
 | 
				
			||||||
 | 
					      working-directory: wlan-testing/docker-compose/openwifi
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        echo "${{ secrets.DIGICERT_CERT }}" | base64 -d > websocket-cert.pem
 | 
				
			||||||
 | 
					        echo "${{ secrets.DIGICERT_KEY }}" | base64 -d > websocket-key.pem
 | 
				
			||||||
 | 
					        echo "${{ secrets.LOADSIM_DIGICERT_CERT }}" | base64 -d > device-cert.pem
 | 
				
			||||||
 | 
					        echo "${{ secrets.LOADSIM_DIGICERT_KEY }}" | base64 -d > device-key.pem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Create Kubernetes secret with certificates
 | 
				
			||||||
 | 
					      working-directory: wlan-testing/docker-compose/openwifi
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        kubectl create secret generic tip-cicd-wildcard-certs --from-file=websocket-cert.pem=websocket-cert.pem --from-file=websocket-key.pem=websocket-key.pem -n openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					        kubectl create secret generic tip-cicd-device-certs --from-file=device-cert.pem=device-cert.pem --from-file=device-key.pem=device-key.pem -n openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Deploy OWLS using Docker-compose
 | 
				
			||||||
 | 
					      working-directory: wlan-testing/docker-compose/openwifi
 | 
				
			||||||
 | 
					      env:
 | 
				
			||||||
 | 
					        OWSEC_AUTHENTICATION_DEFAULT_USERNAME: ${{ secrets.UCENTRALGW_AUTH_USERNAME }}
 | 
				
			||||||
 | 
					        OWSEC_AUTHENTICATION_DEFAULT_PASSWORD: ${{ secrets.UCENTRALGW_AUTH_PASSWORD }}
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        cat <<EOF | kubectl create -f - -n openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					        apiVersion: v1
 | 
				
			||||||
 | 
					        kind: Service
 | 
				
			||||||
 | 
					        metadata:
 | 
				
			||||||
 | 
					          name: owls
 | 
				
			||||||
 | 
					          annotations:
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
 | 
				
			||||||
 | 
					            external-dns.alpha.kubernetes.io/hostname: ${{ steps.owls.outputs.url }}
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285"
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16001,16007,443"
 | 
				
			||||||
 | 
					          labels:
 | 
				
			||||||
 | 
					            app: owls
 | 
				
			||||||
 | 
					        spec:
 | 
				
			||||||
 | 
					          selector:
 | 
				
			||||||
 | 
					            app: owls
 | 
				
			||||||
 | 
					          type: LoadBalancer
 | 
				
			||||||
 | 
					          ports:
 | 
				
			||||||
 | 
					          - name: owsec-restapi
 | 
				
			||||||
 | 
					            port: 16001
 | 
				
			||||||
 | 
					            targetPort: 16001
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owsec-alivecheck
 | 
				
			||||||
 | 
					            port: 16101
 | 
				
			||||||
 | 
					            targetPort: 16101
 | 
				
			||||||
 | 
					          - name: owls-restapi
 | 
				
			||||||
 | 
					            port: 16007
 | 
				
			||||||
 | 
					            targetPort: 16007
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owls-alivecheck
 | 
				
			||||||
 | 
					            port: 16107
 | 
				
			||||||
 | 
					            targetPort: 16107
 | 
				
			||||||
 | 
					          - name: owls-ui-http
 | 
				
			||||||
 | 
					            port: 80
 | 
				
			||||||
 | 
					            targetPort: 80
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owls-ui-https
 | 
				
			||||||
 | 
					            port: 443
 | 
				
			||||||
 | 
					            targetPort: 443
 | 
				
			||||||
 | 
					        ---
 | 
				
			||||||
 | 
					        apiVersion: v1
 | 
				
			||||||
 | 
					        kind: Pod
 | 
				
			||||||
 | 
					        metadata:
 | 
				
			||||||
 | 
					          name: owls
 | 
				
			||||||
 | 
					          annotations:
 | 
				
			||||||
 | 
					            cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
 | 
				
			||||||
 | 
					          labels:
 | 
				
			||||||
 | 
					            app: owls
 | 
				
			||||||
 | 
					        spec:
 | 
				
			||||||
 | 
					          nodeSelector:
 | 
				
			||||||
 | 
					            env: tests
 | 
				
			||||||
 | 
					          tolerations:
 | 
				
			||||||
 | 
					          - key: "tests"
 | 
				
			||||||
 | 
					            operator: "Exists"
 | 
				
			||||||
 | 
					            effect: "NoSchedule"
 | 
				
			||||||
 | 
					          volumes:
 | 
				
			||||||
 | 
					          - name: client-certs
 | 
				
			||||||
 | 
					            emptyDir: {}
 | 
				
			||||||
 | 
					          - name: deploy-repo
 | 
				
			||||||
 | 
					            emptyDir: {}
 | 
				
			||||||
 | 
					          - name: tip-cicd-device-certs
 | 
				
			||||||
 | 
					            secret:
 | 
				
			||||||
 | 
					              secretName: tip-cicd-device-certs
 | 
				
			||||||
 | 
					          containers:
 | 
				
			||||||
 | 
					          - name: docker-daemon
 | 
				
			||||||
 | 
					            image: docker:dind
 | 
				
			||||||
 | 
					            env:
 | 
				
			||||||
 | 
					            - name: DOCKER_TLS_CERTDIR
 | 
				
			||||||
 | 
					              value: "/certs"
 | 
				
			||||||
 | 
					            securityContext:
 | 
				
			||||||
 | 
					              privileged: true
 | 
				
			||||||
 | 
					            resources:
 | 
				
			||||||
 | 
					              requests:
 | 
				
			||||||
 | 
					                cpu: 3000m
 | 
				
			||||||
 | 
					                memory: 8000Mi
 | 
				
			||||||
 | 
					              limits:
 | 
				
			||||||
 | 
					                cpu: 3000m
 | 
				
			||||||
 | 
					                memory: 8000Mi
 | 
				
			||||||
 | 
					            volumeMounts:
 | 
				
			||||||
 | 
					            - name: client-certs
 | 
				
			||||||
 | 
					              mountPath: /certs/client
 | 
				
			||||||
 | 
					            - name: deploy-repo
 | 
				
			||||||
 | 
					              mountPath: /wlan-cloud-ucentral-deploy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          - name: docker-compose-deployment
 | 
				
			||||||
 | 
					            image: docker/compose:latest
 | 
				
			||||||
 | 
					            command: ["/bin/sh", "-c"]
 | 
				
			||||||
 | 
					            args: ["apk add git; wget https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/feature/wifi-6851--owls-parameters/docker-compose/openwifi/deploy_owls.sh; chmod +x deploy_owls.sh; sh deploy_owls.sh"]
 | 
				
			||||||
 | 
					            env:
 | 
				
			||||||
 | 
					            - name: DOCKER_TLS_VERIFY
 | 
				
			||||||
 | 
					              value: "true"
 | 
				
			||||||
 | 
					            - name: DOCKER_HOST
 | 
				
			||||||
 | 
					              value: "127.0.0.1:2376"
 | 
				
			||||||
 | 
					            - name: DOCKER_CERT_PATH
 | 
				
			||||||
 | 
					              value: "/certs/client"
 | 
				
			||||||
 | 
					            - name: INTERNAL_OWSEC_HOSTNAME
 | 
				
			||||||
 | 
					              value: "owsec.wlan.local"
 | 
				
			||||||
 | 
					            - name: DEPLOY_VERSION
 | 
				
			||||||
 | 
					              value: "${{ github.event.inputs.sdk_version }}"
 | 
				
			||||||
 | 
					            - name: SYSTEM_URI_UI
 | 
				
			||||||
 | 
					              value: "https://${{ steps.owls.outputs.url }}"
 | 
				
			||||||
 | 
					            - name: DEFAULT_UCENTRALSEC_URL
 | 
				
			||||||
 | 
					              value: "https://${{ steps.owls.outputs.url }}:16001"
 | 
				
			||||||
 | 
					            - name: OWSEC_AUTHENTICATION_DEFAULT_USERNAME
 | 
				
			||||||
 | 
					              value: "$OWSEC_AUTHENTICATION_DEFAULT_USERNAME"
 | 
				
			||||||
 | 
					            - name: OWSEC_AUTHENTICATION_DEFAULT_PASSWORD
 | 
				
			||||||
 | 
					              value: "$OWSEC_AUTHENTICATION_DEFAULT_PASSWORD"
 | 
				
			||||||
 | 
					            - name: OWSEC_SYSTEM_URI_PRIVATE
 | 
				
			||||||
 | 
					              value: "https://owsec.wlan.local:17001"
 | 
				
			||||||
 | 
					            - name: OWSEC_SYSTEM_URI_PUBLIC
 | 
				
			||||||
 | 
					              value: "https://${{ steps.owls.outputs.url }}:16001"
 | 
				
			||||||
 | 
					            - name: OWLS_SYSTEM_URI_PRIVATE
 | 
				
			||||||
 | 
					              value: "https://owsec.wlan.local:17007"
 | 
				
			||||||
 | 
					            - name: OWLS_SYSTEM_URI_PUBLIC
 | 
				
			||||||
 | 
					              value: "https://${{ steps.owls.outputs.url }}:16007"
 | 
				
			||||||
 | 
					            - name: DEVICE_CERT
 | 
				
			||||||
 | 
					              value: "/tip-cicd-device-certs/device-cert.pem"
 | 
				
			||||||
 | 
					            - name: DEVICE_KEY
 | 
				
			||||||
 | 
					              value: "/tip-cicd-device-certs/device-key.pem"
 | 
				
			||||||
 | 
					            volumeMounts:
 | 
				
			||||||
 | 
					            - name: client-certs
 | 
				
			||||||
 | 
					              mountPath: /certs/client
 | 
				
			||||||
 | 
					            - name: deploy-repo
 | 
				
			||||||
 | 
					              mountPath: /wlan-cloud-ucentral-deploy
 | 
				
			||||||
 | 
					            - name: tip-cicd-device-certs
 | 
				
			||||||
 | 
					              readOnly: true
 | 
				
			||||||
 | 
					              mountPath: "/tip-cicd-device-certs"
 | 
				
			||||||
 | 
					        EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Deploy CloudSDK using Docker-compose
 | 
				
			||||||
 | 
					      working-directory: wlan-testing/docker-compose/openwifi
 | 
				
			||||||
 | 
					      env:
 | 
				
			||||||
 | 
					        RTTY_TOKEN: ${{ secrets.RTTY_TOKEN }}
 | 
				
			||||||
 | 
					        OWSEC_AUTHENTICATION_DEFAULT_USERNAME: ${{ secrets.UCENTRALGW_AUTH_USERNAME }}
 | 
				
			||||||
 | 
					        OWSEC_AUTHENTICATION_DEFAULT_PASSWORD: ${{ secrets.UCENTRALGW_AUTH_PASSWORD }}
 | 
				
			||||||
 | 
					        OWFMS_S3_SECRET: ${{ secrets.UCENTRALFMS_S3_SECRET }}
 | 
				
			||||||
 | 
					        OWFMS_S3_KEY: ${{ secrets.UCENTRALFMS_S3_KEY }}
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        cat <<EOF | kubectl create -f - -n openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					        apiVersion: v1
 | 
				
			||||||
 | 
					        kind: Service
 | 
				
			||||||
 | 
					        metadata:
 | 
				
			||||||
 | 
					          name: cloudsdk
 | 
				
			||||||
 | 
					          annotations:
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
 | 
				
			||||||
 | 
					            external-dns.alpha.kubernetes.io/hostname: ${{ steps.cloudsdk.outputs.url }}
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285"
 | 
				
			||||||
 | 
					            service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16002,16003,443,16001,16004,16005,8443,5912,5913"
 | 
				
			||||||
 | 
					          labels:
 | 
				
			||||||
 | 
					            app: cloudsdk
 | 
				
			||||||
 | 
					        spec:
 | 
				
			||||||
 | 
					          selector:
 | 
				
			||||||
 | 
					            app: cloudsdk
 | 
				
			||||||
 | 
					          type: LoadBalancer
 | 
				
			||||||
 | 
					          ports:
 | 
				
			||||||
 | 
					          - name: owgw-websocket
 | 
				
			||||||
 | 
					            port: 15002
 | 
				
			||||||
 | 
					            targetPort: 15002
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owgw-restapi
 | 
				
			||||||
 | 
					            port: 16002
 | 
				
			||||||
 | 
					            targetPort: 16002
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owgw-alivecheck
 | 
				
			||||||
 | 
					            port: 16102
 | 
				
			||||||
 | 
					            targetPort: 16102
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owgw-fileupload
 | 
				
			||||||
 | 
					            port: 16003
 | 
				
			||||||
 | 
					            targetPort: 16003
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owgw-ui-http
 | 
				
			||||||
 | 
					            port: 80
 | 
				
			||||||
 | 
					            targetPort: 80
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owgw-ui-https
 | 
				
			||||||
 | 
					            port: 443
 | 
				
			||||||
 | 
					            targetPort: 443
 | 
				
			||||||
 | 
					          - name: owsec-restapi
 | 
				
			||||||
 | 
					            port: 16001
 | 
				
			||||||
 | 
					            targetPort: 16001
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owsec-alivecheck
 | 
				
			||||||
 | 
					            port: 16101
 | 
				
			||||||
 | 
					            targetPort: 16101
 | 
				
			||||||
 | 
					          - name: owfms-restapi
 | 
				
			||||||
 | 
					            port: 16004
 | 
				
			||||||
 | 
					            targetPort: 16004
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owfms-alivecheck
 | 
				
			||||||
 | 
					            port: 16104
 | 
				
			||||||
 | 
					            targetPort: 16104
 | 
				
			||||||
 | 
					          - name: owprov-restapi
 | 
				
			||||||
 | 
					            port: 16005
 | 
				
			||||||
 | 
					            targetPort: 16005
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owprov-alivecheck
 | 
				
			||||||
 | 
					            port: 16105
 | 
				
			||||||
 | 
					            targetPort: 16105
 | 
				
			||||||
 | 
					          - name: owprov-ui-http
 | 
				
			||||||
 | 
					            port: 8080
 | 
				
			||||||
 | 
					            targetPort: 8080
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: owprov-ui-https
 | 
				
			||||||
 | 
					            port: 8443
 | 
				
			||||||
 | 
					            targetPort: 8443
 | 
				
			||||||
 | 
					          - name: rttys-dev
 | 
				
			||||||
 | 
					            port: 5912
 | 
				
			||||||
 | 
					            targetPort: 5912
 | 
				
			||||||
 | 
					            protocol: TCP
 | 
				
			||||||
 | 
					          - name: rttys-user
 | 
				
			||||||
 | 
					            port: 5913
 | 
				
			||||||
 | 
					            targetPort: 5913
 | 
				
			||||||
 | 
					        ---
 | 
				
			||||||
 | 
					        apiVersion: v1
 | 
				
			||||||
 | 
					        kind: Pod
 | 
				
			||||||
 | 
					        metadata:
 | 
				
			||||||
 | 
					          name: cloudsdk
 | 
				
			||||||
 | 
					          annotations:
 | 
				
			||||||
 | 
					            cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
 | 
				
			||||||
 | 
					          labels:
 | 
				
			||||||
 | 
					            app: cloudsdk
 | 
				
			||||||
 | 
					        spec:
 | 
				
			||||||
 | 
					          nodeSelector:
 | 
				
			||||||
 | 
					            env: tests
 | 
				
			||||||
 | 
					          tolerations:
 | 
				
			||||||
 | 
					          - key: "tests"
 | 
				
			||||||
 | 
					            operator: "Exists"
 | 
				
			||||||
 | 
					            effect: "NoSchedule"
 | 
				
			||||||
 | 
					          volumes:
 | 
				
			||||||
 | 
					          - name: client-certs
 | 
				
			||||||
 | 
					            emptyDir: {}
 | 
				
			||||||
 | 
					          - name: deploy-repo
 | 
				
			||||||
 | 
					            emptyDir: {}
 | 
				
			||||||
 | 
					          - name: tip-cicd-wildcard-certs
 | 
				
			||||||
 | 
					            secret:
 | 
				
			||||||
 | 
					              secretName: tip-cicd-wildcard-certs
 | 
				
			||||||
 | 
					          containers:
 | 
				
			||||||
 | 
					          - name: docker-daemon
 | 
				
			||||||
 | 
					            image: docker:dind
 | 
				
			||||||
 | 
					            env:
 | 
				
			||||||
 | 
					            - name: DOCKER_TLS_CERTDIR
 | 
				
			||||||
 | 
					              value: "/certs"
 | 
				
			||||||
 | 
					            securityContext:
 | 
				
			||||||
 | 
					              privileged: true
 | 
				
			||||||
 | 
					            resources:
 | 
				
			||||||
 | 
					              requests:
 | 
				
			||||||
 | 
					                cpu: 2000m
 | 
				
			||||||
 | 
					                memory: 3000Mi
 | 
				
			||||||
 | 
					              limits:
 | 
				
			||||||
 | 
					                cpu: 2000m
 | 
				
			||||||
 | 
					                memory: 3000Mi
 | 
				
			||||||
 | 
					            volumeMounts:
 | 
				
			||||||
 | 
					            - name: client-certs
 | 
				
			||||||
 | 
					              mountPath: /certs/client
 | 
				
			||||||
 | 
					            - name: deploy-repo
 | 
				
			||||||
 | 
					              mountPath: /wlan-cloud-ucentral-deploy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          - name: docker-compose-deployment
 | 
				
			||||||
 | 
					            image: docker/compose:latest
 | 
				
			||||||
 | 
					            command: ["/bin/sh", "-c"]
 | 
				
			||||||
 | 
					            args: ["apk add git; wget https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/feature/wifi-6851--owls-parameters/docker-compose/openwifi/deploy.sh; chmod +x deploy.sh; sh deploy.sh"]
 | 
				
			||||||
 | 
					            env:
 | 
				
			||||||
 | 
					            - name: DOCKER_TLS_VERIFY
 | 
				
			||||||
 | 
					              value: "true"
 | 
				
			||||||
 | 
					            - name: DOCKER_HOST
 | 
				
			||||||
 | 
					              value: "127.0.0.1:2376"
 | 
				
			||||||
 | 
					            - name: DOCKER_CERT_PATH
 | 
				
			||||||
 | 
					              value: "/certs/client"
 | 
				
			||||||
 | 
					            - name: INTERNAL_OWGW_HOSTNAME
 | 
				
			||||||
 | 
					              value: "owgw.wlan.local"
 | 
				
			||||||
 | 
					            - name: INTERNAL_OWSEC_HOSTNAME
 | 
				
			||||||
 | 
					              value: "owsec.wlan.local"
 | 
				
			||||||
 | 
					            - name: INTERNAL_OWFMS_HOSTNAME
 | 
				
			||||||
 | 
					              value: "owfms.wlan.local"
 | 
				
			||||||
 | 
					            - name: INTERNAL_OWPROV_HOSTNAME
 | 
				
			||||||
 | 
					              value: "owprov.wlan.local"
 | 
				
			||||||
 | 
					            - name: DEPLOY_VERSION
 | 
				
			||||||
 | 
					              value: "${{ github.event.inputs.sdk_version }}"
 | 
				
			||||||
 | 
					            - name: SYSTEM_URI_UI
 | 
				
			||||||
 | 
					              value: "https://${{ steps.cloudsdk.outputs.url }}"
 | 
				
			||||||
 | 
					            - name: DEFAULT_UCENTRALSEC_URL
 | 
				
			||||||
 | 
					              value: "https://${{ steps.cloudsdk.outputs.url }}:16001"
 | 
				
			||||||
 | 
					            - name: RTTY_TOKEN
 | 
				
			||||||
 | 
					              value: "$RTTY_TOKEN"
 | 
				
			||||||
 | 
					            - name: OWGW_FILEUPLOADER_HOST_NAME
 | 
				
			||||||
 | 
					              value: "${{ steps.cloudsdk.outputs.url }}"
 | 
				
			||||||
 | 
					            - name: OWGW_FILEUPLOADER_URI
 | 
				
			||||||
 | 
					              value: "https://${{ steps.cloudsdk.outputs.url }}:16003"
 | 
				
			||||||
 | 
					            - name: OWGW_SYSTEM_URI_PRIVATE
 | 
				
			||||||
 | 
					              value: "https://owgw.wlan.local:17002"
 | 
				
			||||||
 | 
					            - name: OWGW_SYSTEM_URI_PUBLIC
 | 
				
			||||||
 | 
					              value: "https://${{ steps.cloudsdk.outputs.url }}:16002"
 | 
				
			||||||
 | 
					            - name: OWGW_RTTY_SERVER
 | 
				
			||||||
 | 
					              value: "${{ steps.cloudsdk.outputs.url }}"
 | 
				
			||||||
 | 
					            - name: OWSEC_AUTHENTICATION_DEFAULT_USERNAME
 | 
				
			||||||
 | 
					              value: "$OWSEC_AUTHENTICATION_DEFAULT_USERNAME"
 | 
				
			||||||
 | 
					            - name: OWSEC_AUTHENTICATION_DEFAULT_PASSWORD
 | 
				
			||||||
 | 
					              value: "$OWSEC_AUTHENTICATION_DEFAULT_PASSWORD"
 | 
				
			||||||
 | 
					            - name: OWSEC_SYSTEM_URI_PRIVATE
 | 
				
			||||||
 | 
					              value: "https://owsec.wlan.local:17001"
 | 
				
			||||||
 | 
					            - name: OWSEC_SYSTEM_URI_PUBLIC
 | 
				
			||||||
 | 
					              value: "https://${{ steps.cloudsdk.outputs.url }}:16001"
 | 
				
			||||||
 | 
					            - name: OWFMS_SYSTEM_URI_PRIVATE
 | 
				
			||||||
 | 
					              value: "https://owfms.wlan.local:17004"
 | 
				
			||||||
 | 
					            - name: OWFMS_SYSTEM_URI_PUBLIC
 | 
				
			||||||
 | 
					              value: "https://${{ steps.cloudsdk.outputs.url }}:16004"
 | 
				
			||||||
 | 
					            - name: OWFMS_S3_SECRET
 | 
				
			||||||
 | 
					              value: "$OWFMS_S3_SECRET"
 | 
				
			||||||
 | 
					            - name: OWFMS_S3_KEY
 | 
				
			||||||
 | 
					              value: "$OWFMS_S3_KEY"
 | 
				
			||||||
 | 
					            - name: OWPROV_SYSTEM_URI_PRIVATE
 | 
				
			||||||
 | 
					              value: "https://owprov.wlan.local:17005"
 | 
				
			||||||
 | 
					            - name: OWPROV_SYSTEM_URI_PUBLIC
 | 
				
			||||||
 | 
					              value: "https://${{ steps.cloudsdk.outputs.url }}:16005"
 | 
				
			||||||
 | 
					            - name: WEBSOCKET_CERT
 | 
				
			||||||
 | 
					              value: "/tip-cicd-wildcard-certs/websocket-cert.pem"
 | 
				
			||||||
 | 
					            - name: WEBSOCKET_KEY
 | 
				
			||||||
 | 
					              value: "/tip-cicd-wildcard-certs/websocket-key.pem"
 | 
				
			||||||
 | 
					            - name: SIMULATORID
 | 
				
			||||||
 | 
					              value: "53494D020202"
 | 
				
			||||||
 | 
					            volumeMounts:
 | 
				
			||||||
 | 
					            - name: client-certs
 | 
				
			||||||
 | 
					              mountPath: /certs/client
 | 
				
			||||||
 | 
					            - name: deploy-repo
 | 
				
			||||||
 | 
					              mountPath: /wlan-cloud-ucentral-deploy
 | 
				
			||||||
 | 
					            - name: tip-cicd-wildcard-certs
 | 
				
			||||||
 | 
					              readOnly: true
 | 
				
			||||||
 | 
					              mountPath: "/tip-cicd-wildcard-certs"
 | 
				
			||||||
 | 
					        EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Change password using clustersysteminfo image for OWLS deployment
 | 
				
			||||||
 | 
					      env:
 | 
				
			||||||
 | 
					        OWSEC: ${{ steps.owls.outputs.url }}:16001
 | 
				
			||||||
 | 
					        OWSEC_DEFAULT_USERNAME: ${{ secrets.OWSEC_DEFAULT_USERNAME }}
 | 
				
			||||||
 | 
					        OWSEC_DEFAULT_PASSWORD: ${{ secrets.OWSEC_DEFAULT_PASSWORD }}
 | 
				
			||||||
 | 
					        OWSEC_NEW_PASSWORD: ${{ secrets.OWSEC_NEW_PASSWORD }}
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        docker run --rm \
 | 
				
			||||||
 | 
					          -e OWSEC \
 | 
				
			||||||
 | 
					          -e OWSEC_DEFAULT_USERNAME \
 | 
				
			||||||
 | 
					          -e OWSEC_DEFAULT_PASSWORD \
 | 
				
			||||||
 | 
					          -e OWSEC_NEW_PASSWORD \
 | 
				
			||||||
 | 
					          -e ONLY_CHANGE_CREDENTIALS=true \
 | 
				
			||||||
 | 
					          tip-tip-wlan-cloud-ucentral.jfrog.io/clustersysteminfo:main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Change password and check if deployment is ready using clustersysteminfo image for CloudSDK deployment
 | 
				
			||||||
 | 
					      env:
 | 
				
			||||||
 | 
					        OWSEC: ${{ steps.cloudsdk.outputs.url }}:16001
 | 
				
			||||||
 | 
					        OWSEC_DEFAULT_USERNAME: ${{ secrets.OWSEC_DEFAULT_USERNAME }}
 | 
				
			||||||
 | 
					        OWSEC_DEFAULT_PASSWORD: ${{ secrets.OWSEC_DEFAULT_PASSWORD }}
 | 
				
			||||||
 | 
					        OWSEC_NEW_PASSWORD: ${{ secrets.OWSEC_NEW_PASSWORD }}
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        docker run --rm \
 | 
				
			||||||
 | 
					          -e OWSEC \
 | 
				
			||||||
 | 
					          -e OWSEC_DEFAULT_USERNAME \
 | 
				
			||||||
 | 
					          -e OWSEC_DEFAULT_PASSWORD \
 | 
				
			||||||
 | 
					          -e OWSEC_NEW_PASSWORD \
 | 
				
			||||||
 | 
					          tip-tip-wlan-cloud-ucentral.jfrog.io/clustersysteminfo:main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Checkout OWLS for CLI tool
 | 
				
			||||||
 | 
					      uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        repository: Telecominfraproject/wlan-cloud-owls
 | 
				
			||||||
 | 
					        path: wlan-cloud-owls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Run simulation
 | 
				
			||||||
 | 
					      working-directory: wlan-cloud-owls/test_scripts/curl
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        export OWGW="${{ steps.cloudsdk.outputs.url }}:15002"
 | 
				
			||||||
 | 
					        export OWSEC="${{ steps.owls.outputs.url }}:16001"
 | 
				
			||||||
 | 
					        export OWLS="${{ steps.owls.outputs.url }}:16007"
 | 
				
			||||||
 | 
					        echo "OWGW - $OWGW"
 | 
				
			||||||
 | 
					        echo "OWSEC - $OWSEC"
 | 
				
			||||||
 | 
					        echo "OWLS - $OWLS"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "Trying to cache OWLS FQDN in /etc/hosts"
 | 
				
			||||||
 | 
					        export HOST_ENTRY=""
 | 
				
			||||||
 | 
					        until [ ! -z "$HOST_ENTRY" ]; do export HOST_ENTRY=$(getent hosts ${{ steps.ls.outputs.url }}); sleep 1; done;
 | 
				
			||||||
 | 
					        cat /etc/hosts > /tmp/hosts
 | 
				
			||||||
 | 
					        echo "$HOST_ENTRY" >> /tmp/hosts
 | 
				
			||||||
 | 
					        sudo cp /tmp/hosts /etc/hosts
 | 
				
			||||||
 | 
					        echo "DNS record for $OWLS resolved successfully!"
 | 
				
			||||||
 | 
					        cat /etc/hosts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        curl -s -X POST -H 'Content-Type: application/json' https://$OWSEC/api/v1/oauth2 -d '{"userId": "tip@ucentral.com", "password": "'${{ secrets.OWSEC_NEW_PASSWORD }}'"}' | jq '.access_token' -r > access_token
 | 
				
			||||||
 | 
					        echo
 | 
				
			||||||
 | 
					        echo "[Info] Creating simulation"
 | 
				
			||||||
 | 
					        touch output_sim_info.json
 | 
				
			||||||
 | 
					        cat > input_sim_info.json <<EOF
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "name":"${{ steps.namespace.outputs.namespace }}",
 | 
				
			||||||
 | 
					          "deviceType":"edgecore_ecw5410",
 | 
				
			||||||
 | 
					          "devices":${{ github.event.inputs.devices_count }},
 | 
				
			||||||
 | 
					          "gateway":"https://$OWGW",
 | 
				
			||||||
 | 
					          "macPrefix":"030000",
 | 
				
			||||||
 | 
					          "simulationLength":${{ github.event.inputs.simulation_lenght }}
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        EOF
 | 
				
			||||||
 | 
					        export SIMULATION_ID="null"
 | 
				
			||||||
 | 
					        while [[ "$SIMULATION_ID" == "null" ]]; do
 | 
				
			||||||
 | 
					          curl -k -s -X POST https://$OWLS/api/v1/simulation -H "Content-Type: application/json" -H "Authorization: Bearer $(cat access_token)" -d @input_sim_info.json > output_sim_info.json
 | 
				
			||||||
 | 
					          cat output_sim_info.json | jq .
 | 
				
			||||||
 | 
					          export SIMULATION_ID=$(cat output_sim_info.json | jq '.id' -r)
 | 
				
			||||||
 | 
					          echo $SIMULATION_ID
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					        echo
 | 
				
			||||||
 | 
					        cat output_sim_info.json | jq .
 | 
				
			||||||
 | 
					        echo
 | 
				
			||||||
 | 
					        echo "[Info] Starting simulation"
 | 
				
			||||||
 | 
					        export SIMULATION_ID=$(cat output_sim_info.json | jq '.id' -r)
 | 
				
			||||||
 | 
					        curl -s -X POST "https://$OWLS/api/v1/operation?simulationId=$SIMULATION_ID&operation=start" -H "Content-Type: application/json" -H "Authorization: Bearer $(cat access_token)" | tee output_sim_start.json | jq .
 | 
				
			||||||
 | 
					        echo
 | 
				
			||||||
 | 
					        echo "[Info] Waiting for simulation to end"
 | 
				
			||||||
 | 
					        curl -s -X GET "https://$OWLS/api/v1/status" -H "Content-Type: application/json" -H "Authorization: Bearer $(cat access_token)" | tee output_sim_status.json | jq .
 | 
				
			||||||
 | 
					        export SIM_STATE=$(cat output_sim_status.json | jq '.state' -r)
 | 
				
			||||||
 | 
					        until [[ "$SIM_STATE" == "completed" ]]; do
 | 
				
			||||||
 | 
					          sleep 10
 | 
				
			||||||
 | 
					          curl -s -X GET "https://$OWLS/api/v1/status" -H "Content-Type: application/json" -H "Authorization: Bearer $(cat access_token)" > output_sim_status.json
 | 
				
			||||||
 | 
					          export SIM_STATE=$(cat output_sim_status.json | jq '.state' -r)
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					        echo
 | 
				
			||||||
 | 
					        echo "[Info] Final results:"
 | 
				
			||||||
 | 
					        cat output_sim_status.json | jq .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Show resource state on deployment failure
 | 
				
			||||||
 | 
					      if: failure()
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        kubectl get pods --namespace openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					        kubectl get services --namespace openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					        kubectl get persistentvolumeclaims --namespace openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					    - name: Describe pods on deployment failure
 | 
				
			||||||
 | 
					      if: failure()
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        kubectl describe pods --namespace openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					    - name: Describe services on deployment failure
 | 
				
			||||||
 | 
					      if: failure()
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        kubectl describe services --namespace openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					    - name: Describe persistentvolumeclaims on deployment failure
 | 
				
			||||||
 | 
					      if: failure()
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        kubectl describe persistentvolumeclaims --namespace openwifi-${{ steps.namespace.outputs.namespace }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Cleanup
 | 
				
			||||||
 | 
					      if: always()
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        kubectl delete ns openwifi-"${{ steps.namespace.outputs.namespace }}" --wait=true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -98,6 +98,10 @@ sed -i "s~\(^SYSTEM_URI_UI=\).*~\1$SYSTEM_URI_UI~" owgw.env
 | 
				
			|||||||
sed -i "s~\(^RTTY_SERVER=\).*~\1$OWGW_RTTY_SERVER~" owgw.env
 | 
					sed -i "s~\(^RTTY_SERVER=\).*~\1$OWGW_RTTY_SERVER~" owgw.env
 | 
				
			||||||
sed -i "s~.*RTTY_TOKEN=.*~RTTY_TOKEN=$RTTY_TOKEN~" owgw.env
 | 
					sed -i "s~.*RTTY_TOKEN=.*~RTTY_TOKEN=$RTTY_TOKEN~" owgw.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ ! -z "$SIMULATORID" ]]; then
 | 
				
			||||||
 | 
					  sed -i "s~.*SIMULATORID=.*~SIMULATORID=$SIMULATORID~" owgw.env
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sed -i "s~\(^DEFAULT_UCENTRALSEC_URL=\).*~\1$DEFAULT_UCENTRALSEC_URL~" owgw-ui.env
 | 
					sed -i "s~\(^DEFAULT_UCENTRALSEC_URL=\).*~\1$DEFAULT_UCENTRALSEC_URL~" owgw-ui.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sed -i "s~.*AUTHENTICATION_DEFAULT_USERNAME=.*~AUTHENTICATION_DEFAULT_USERNAME=$OWSEC_AUTHENTICATION_DEFAULT_USERNAME~" owsec.env
 | 
					sed -i "s~.*AUTHENTICATION_DEFAULT_USERNAME=.*~AUTHENTICATION_DEFAULT_USERNAME=$OWSEC_AUTHENTICATION_DEFAULT_USERNAME~" owsec.env
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										74
									
								
								docker-compose/openwifi/deploy_owls.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								docker-compose/openwifi/deploy_owls.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Usage function
 | 
				
			||||||
 | 
					usage () {
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "This script is intended for OpenWifi OWLS deployment using Docker Compose (https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/tree/main/docker-compose) in a Kubernetes pod";
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "Required environment variables:"
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "- DEPLOY_VERSION - version of the wlan-cloud-ucentral-deploy repo to be used";
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "- DEFAULT_UCENTRALSEC_URL - public URL of the OWSec service"
 | 
				
			||||||
 | 
					  echo "- SYSTEM_URI_UI - public URL of the OWGW-UI service"
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "- INTERNAL_OWSEC_HOSTNAME - OWSec microservice hostname for Docker internal communication"
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "- OWSEC_SYSTEM_URI_PRIVATE - private URL to be used for OWSec";
 | 
				
			||||||
 | 
					  echo "- OWSEC_SYSTEM_URI_PUBLIC - public URL to be used for OWSec";
 | 
				
			||||||
 | 
					  echo "- OWSEC_AUTHENTICATION_DEFAULT_USERNAME - username to be used for requests to OWSec";
 | 
				
			||||||
 | 
					  echo "- OWSEC_AUTHENTICATION_DEFAULT_PASSWORD - hashed password for OWSec (details on this may be found in https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/#authenticationdefaultpassword)";
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "- OWLS_SYSTEM_URI_PRIVATE - private URL to be used for OWLS";
 | 
				
			||||||
 | 
					  echo "- OWLS_SYSTEM_URI_PUBLIC - public URL to be used for OWLS";
 | 
				
			||||||
 | 
					  echo;
 | 
				
			||||||
 | 
					  echo "- DEVICE_CERT - path to the device certificate";
 | 
				
			||||||
 | 
					  echo "- DEVICE_KEY - path to the device key";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if required environment variables were passed
 | 
				
			||||||
 | 
					## Deployment specifics
 | 
				
			||||||
 | 
					[ -z ${DEPLOY_VERSION+x} ] && echo "DEPLOY_VERSION is unset" && usage && exit 1
 | 
				
			||||||
 | 
					## Configuration variables applying to multiple microservices
 | 
				
			||||||
 | 
					[ -z ${DEFAULT_UCENTRALSEC_URL+x} ] && echo "DEFAULT_UCENTRALSEC_URL is unset" && usage && exit 1
 | 
				
			||||||
 | 
					[ -z ${SYSTEM_URI_UI+x} ] && echo "SYSTEM_URI_UI is unset" && usage && exit 1
 | 
				
			||||||
 | 
					## Internal microservice hostnames
 | 
				
			||||||
 | 
					[ -z ${INTERNAL_OWSEC_HOSTNAME+x} ] && echo "INTERNAL_OWSEC_HOSTNAME is unset" && usage && exit 1
 | 
				
			||||||
 | 
					## OWSec configuration variables
 | 
				
			||||||
 | 
					[ -z ${OWSEC_AUTHENTICATION_DEFAULT_USERNAME+x} ] && echo "OWSEC_AUTHENTICATION_DEFAULT_USERNAME is unset" && usage && exit 1
 | 
				
			||||||
 | 
					[ -z ${OWSEC_AUTHENTICATION_DEFAULT_PASSWORD+x} ] && echo "OWSEC_AUTHENTICATION_DEFAULT_PASSWORD is unset" && usage && exit 1
 | 
				
			||||||
 | 
					[ -z ${OWSEC_SYSTEM_URI_PRIVATE+x} ] && echo "OWSEC_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
 | 
				
			||||||
 | 
					[ -z ${OWSEC_SYSTEM_URI_PUBLIC+x} ] && echo "OWSEC_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
 | 
				
			||||||
 | 
					# OWLS configuration variables
 | 
				
			||||||
 | 
					[ -z ${OWLS_SYSTEM_URI_PRIVATE+x} ] && echo "OWLS_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
 | 
				
			||||||
 | 
					[ -z ${OWLS_SYSTEM_URI_PUBLIC+x} ] && echo "OWLS_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
 | 
				
			||||||
 | 
					## cert related variables
 | 
				
			||||||
 | 
					[ -z ${DEVICE_CERT+x} ] && echo "DEVICE_CERT is unset" && usage && exit 1
 | 
				
			||||||
 | 
					[ -z ${DEVICE_KEY+x} ] && echo "DEVICE_KEY is unset" && usage && exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Clone repo and copy certificates
 | 
				
			||||||
 | 
					mkdir wlan-cloud-ucentral-deploy-tmp
 | 
				
			||||||
 | 
					git clone --branch $DEPLOY_VERSION https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy.git /wlan-cloud-ucentral-deploy-tmp 
 | 
				
			||||||
 | 
					mv -f /wlan-cloud-ucentral-deploy-tmp/* /wlan-cloud-ucentral-deploy/ && rm -r wlan-cloud-ucentral-deploy-tmp
 | 
				
			||||||
 | 
					cd wlan-cloud-ucentral-deploy/docker-compose/owls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Search and replace variable values in env files
 | 
				
			||||||
 | 
					sed -i "s~\(^INTERNAL_OWSEC_HOSTNAME=\).*~\1$INTERNAL_OWSEC_HOSTNAME~" .env
 | 
				
			||||||
 | 
					sed -i "s~\(^INTERNAL_OWLS_HOSTNAME=\).*~\1$INTERNAL_OWLS_HOSTNAME~" .env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sed -i "s~\(^DEFAULT_UCENTRALSEC_URL=\).*~\1$DEFAULT_UCENTRALSEC_URL~" owls-ui.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sed -i "s~.*AUTHENTICATION_DEFAULT_USERNAME=.*~AUTHENTICATION_DEFAULT_USERNAME=$OWSEC_AUTHENTICATION_DEFAULT_USERNAME~" owsec.env
 | 
				
			||||||
 | 
					sed -i "s~.*AUTHENTICATION_DEFAULT_PASSWORD=.*~AUTHENTICATION_DEFAULT_PASSWORD=$OWSEC_AUTHENTICATION_DEFAULT_PASSWORD~" owsec.env
 | 
				
			||||||
 | 
					sed -i "s~\(^SYSTEM_URI_PRIVATE=\).*~\1$OWSEC_SYSTEM_URI_PRIVATE~" owsec.env
 | 
				
			||||||
 | 
					sed -i "s~\(^SYSTEM_URI_PUBLIC=\).*~\1$OWSEC_SYSTEM_URI_PUBLIC~" owsec.env
 | 
				
			||||||
 | 
					sed -i "s~\(^SYSTEM_URI_UI=\).*~\1$SYSTEM_URI_UI~" owsec.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sed -i "s~\(^SYSTEM_URI_PRIVATE=\).*~\1$OWLS_SYSTEM_URI_PRIVATE~" owls.env
 | 
				
			||||||
 | 
					sed -i "s~\(^SYSTEM_URI_PUBLIC=\).*~\1$OWLS_SYSTEM_URI_PUBLIC~" owls.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Run the deployment and attach to logs
 | 
				
			||||||
 | 
					cat $DEVICE_CERT > ../certs/device-cert.pem
 | 
				
			||||||
 | 
					cat $DEVICE_KEY > ../certs/device-key.pem
 | 
				
			||||||
 | 
					exec docker-compose up --attach-dependencies
 | 
				
			||||||
@@ -36,6 +36,7 @@ usage () {
 | 
				
			|||||||
  echo "- EXTRA_VALUES - extra values that should be passed to Helm deployment separated by comma (,)"
 | 
					  echo "- EXTRA_VALUES - extra values that should be passed to Helm deployment separated by comma (,)"
 | 
				
			||||||
  echo "- DEVICE_CERT_LOCATION - path to certificate in PEM format that will be used for load simulator";
 | 
					  echo "- DEVICE_CERT_LOCATION - path to certificate in PEM format that will be used for load simulator";
 | 
				
			||||||
  echo "- DEVICE_KEY_LOCATION - path to private key in PEM format that will be used for load simulator";
 | 
					  echo "- DEVICE_KEY_LOCATION - path to private key in PEM format that will be used for load simulator";
 | 
				
			||||||
 | 
					  echo "- USE_SEPARATE_OWGW_LB - flag that should change split external DNS for OWGW and other services"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Global variables
 | 
					# Global variables
 | 
				
			||||||
@@ -137,6 +138,14 @@ for EXTRA_VALUE in ${EXTRA_VALUES_SPLITTED[*]}; do
 | 
				
			|||||||
  EXTRA_VALUES_FLAGS+=("--set" $EXTRA_VALUE)
 | 
					  EXTRA_VALUES_FLAGS+=("--set" $EXTRA_VALUE)
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ "$USE_SEPARATE_OWGW_LB" == "true" ]]; then
 | 
				
			||||||
 | 
					  export HAPROXY_SERVICE_DNS_RECORDS="sec-${NAMESPACE}.cicd.lab.wlan.tip.build\,fms-${NAMESPACE}.cicd.lab.wlan.tip.build\,prov-${NAMESPACE}.cicd.lab.wlan.tip.build\,rtty-${NAMESPACE}.cicd.lab.wlan.tip.build"
 | 
				
			||||||
 | 
					  export OWGW_SERVICE_DNS_RECORDS="gw-${NAMESPACE}.cicd.lab.wlan.tip.build"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  export HAPROXY_SERVICE_DNS_RECORDS="gw-${NAMESPACE}.cicd.lab.wlan.tip.build\,sec-${NAMESPACE}.cicd.lab.wlan.tip.build\,fms-${NAMESPACE}.cicd.lab.wlan.tip.build\,prov-${NAMESPACE}.cicd.lab.wlan.tip.build\,rtty-${NAMESPACE}.cicd.lab.wlan.tip.build"
 | 
				
			||||||
 | 
					  export OWGW_SERVICE_DNS_RECORDS=""
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Run the deployment
 | 
					# Run the deployment
 | 
				
			||||||
helm upgrade --install --create-namespace --wait --timeout 60m \
 | 
					helm upgrade --install --create-namespace --wait --timeout 60m \
 | 
				
			||||||
  --namespace openwifi-${NAMESPACE} \
 | 
					  --namespace openwifi-${NAMESPACE} \
 | 
				
			||||||
@@ -179,12 +188,13 @@ helm upgrade --install --create-namespace --wait --timeout 60m \
 | 
				
			|||||||
  --set clustersysteminfo.secret_env_variables.OWSEC_NEW_PASSWORD=${OWSEC_NEW_PASSWORD} \
 | 
					  --set clustersysteminfo.secret_env_variables.OWSEC_NEW_PASSWORD=${OWSEC_NEW_PASSWORD} \
 | 
				
			||||||
  --set owls.services.owls.annotations."external-dns\.alpha\.kubernetes\.io/hostname"=ls-${NAMESPACE}.cicd.lab.wlan.tip.build \
 | 
					  --set owls.services.owls.annotations."external-dns\.alpha\.kubernetes\.io/hostname"=ls-${NAMESPACE}.cicd.lab.wlan.tip.build \
 | 
				
			||||||
  --set owls.configProperties."openwifi\.system\.uri\.public"=https://ls-${NAMESPACE}.cicd.lab.wlan.tip.build:16007 \
 | 
					  --set owls.configProperties."openwifi\.system\.uri\.public"=https://ls-${NAMESPACE}.cicd.lab.wlan.tip.build:16007 \
 | 
				
			||||||
  --set owls.configProperties."openwifi\.system\.uri\.private"=https://ls-${NAMESPACE}.cicd.lab.wlan.tip.build:17007 \
 | 
					  --set owls.configProperties."openwifi\.system\.uri\.private"=https://owls-owls:17007 \
 | 
				
			||||||
  --set owls.configProperties."openwifi\.system\.uri\.ui"=https://webui-${NAMESPACE}.cicd.lab.wlan.tip.build \
 | 
					  --set owls.configProperties."openwifi\.system\.uri\.ui"=https://webui-${NAMESPACE}.cicd.lab.wlan.tip.build \
 | 
				
			||||||
  --set owlsui.ingresses.default.annotations."external-dns\.alpha\.kubernetes\.io/hostname"=lsui-${NAMESPACE}.cicd.lab.wlan.tip.build \
 | 
					  --set owlsui.ingresses.default.annotations."external-dns\.alpha\.kubernetes\.io/hostname"=lsui-${NAMESPACE}.cicd.lab.wlan.tip.build \
 | 
				
			||||||
  --set owlsui.ingresses.default.hosts={lsui-${NAMESPACE}.cicd.lab.wlan.tip.build} \
 | 
					  --set owlsui.ingresses.default.hosts={lsui-${NAMESPACE}.cicd.lab.wlan.tip.build} \
 | 
				
			||||||
  --set owlsui.public_env_variables.DEFAULT_UCENTRALSEC_URL=https://sec-${NAMESPACE}.cicd.lab.wlan.tip.build:16001 \
 | 
					  --set owlsui.public_env_variables.DEFAULT_UCENTRALSEC_URL=https://sec-${NAMESPACE}.cicd.lab.wlan.tip.build:16001 \
 | 
				
			||||||
  --set haproxy.service.annotations."external-dns\.alpha\.kubernetes\.io/hostname"="gw-${NAMESPACE}.cicd.lab.wlan.tip.build\,sec-${NAMESPACE}.cicd.lab.wlan.tip.build\,fms-${NAMESPACE}.cicd.lab.wlan.tip.build\,prov-${NAMESPACE}.cicd.lab.wlan.tip.build\,rtty-${NAMESPACE}.cicd.lab.wlan.tip.build" \
 | 
					  --set haproxy.service.annotations."external-dns\.alpha\.kubernetes\.io/hostname"=$HAPROXY_SERVICE_DNS_RECORDS \
 | 
				
			||||||
 | 
					  --set owgw.services.owgw.annotations."external-dns\.alpha\.kubernetes\.io/hostname"=$OWGW_SERVICE_DNS_RECORDS \
 | 
				
			||||||
  ${EXTRA_VALUES_FLAGS[*]} \
 | 
					  ${EXTRA_VALUES_FLAGS[*]} \
 | 
				
			||||||
  --set-file owgw.certs."restapi-cert\.pem"=$CERT_LOCATION \
 | 
					  --set-file owgw.certs."restapi-cert\.pem"=$CERT_LOCATION \
 | 
				
			||||||
  --set-file owgw.certs."restapi-key\.pem"=$KEY_LOCATION \
 | 
					  --set-file owgw.certs."restapi-key\.pem"=$KEY_LOCATION \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,26 @@
 | 
				
			|||||||
owgw:
 | 
					owgw:
 | 
				
			||||||
 | 
					  services:
 | 
				
			||||||
 | 
					    owgw:
 | 
				
			||||||
 | 
					      type: LoadBalancer
 | 
				
			||||||
 | 
					      annotations:
 | 
				
			||||||
 | 
					        service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
 | 
				
			||||||
 | 
					        service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
 | 
				
			||||||
 | 
					        service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16102"
 | 
				
			||||||
 | 
					        service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
 | 
				
			||||||
 | 
					        service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285"
 | 
				
			||||||
 | 
					        service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16002,16003,17002"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  configProperties:
 | 
					  configProperties:
 | 
				
			||||||
    simulatorid: 53494D020202
 | 
					    simulatorid: 53494D020202
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  resources:
 | 
				
			||||||
 | 
					    requests:
 | 
				
			||||||
 | 
					      cpu: 2000m
 | 
				
			||||||
 | 
					      memory: 3000Mi
 | 
				
			||||||
 | 
					    limits:
 | 
				
			||||||
 | 
					      cpu: 2000m
 | 
				
			||||||
 | 
					      memory: 3000Mi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
owls:
 | 
					owls:
 | 
				
			||||||
  enabled: true
 | 
					  enabled: true
 | 
				
			||||||
  services:
 | 
					  services:
 | 
				
			||||||
@@ -19,6 +38,27 @@ owls:
 | 
				
			|||||||
  podAnnotations:
 | 
					  podAnnotations:
 | 
				
			||||||
    cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
 | 
					    cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  resources:
 | 
				
			||||||
 | 
					    requests:
 | 
				
			||||||
 | 
					      cpu: 3000m
 | 
				
			||||||
 | 
					      memory: 8000Mi
 | 
				
			||||||
 | 
					    limits:
 | 
				
			||||||
 | 
					      cpu: 3000m
 | 
				
			||||||
 | 
					      memory: 8000Mi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  checks:
 | 
				
			||||||
 | 
					    owls:
 | 
				
			||||||
 | 
					      liveness:
 | 
				
			||||||
 | 
					        httpGet:
 | 
				
			||||||
 | 
					          path: /
 | 
				
			||||||
 | 
					          port: 16107
 | 
				
			||||||
 | 
					        failureThreshold: 900
 | 
				
			||||||
 | 
					      readiness:
 | 
				
			||||||
 | 
					        httpGet:
 | 
				
			||||||
 | 
					          path: /
 | 
				
			||||||
 | 
					          port: 16107
 | 
				
			||||||
 | 
					        failureThreshold: 900
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  certs:
 | 
					  certs:
 | 
				
			||||||
    restapi-ca.pem: |
 | 
					    restapi-ca.pem: |
 | 
				
			||||||
      -----BEGIN CERTIFICATE-----
 | 
					      -----BEGIN CERTIFICATE-----
 | 
				
			||||||
@@ -44,6 +84,55 @@ owls:
 | 
				
			|||||||
      5IOM7ItsRmen6u3qu+JXros54e4juQ==
 | 
					      5IOM7ItsRmen6u3qu+JXros54e4juQ==
 | 
				
			||||||
      -----END CERTIFICATE-----
 | 
					      -----END CERTIFICATE-----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  public_env_variables:
 | 
				
			||||||
 | 
					    SELFSIGNED_CERTS: "true"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  configProperties:
 | 
				
			||||||
 | 
					    openwifi.internal.restapi.host.0.rootca: $OWLS_ROOT/certs/restapi-certs/ca.crt
 | 
				
			||||||
 | 
					    openwifi.internal.restapi.host.0.cert: $OWLS_ROOT/certs/restapi-certs/tls.crt
 | 
				
			||||||
 | 
					    openwifi.internal.restapi.host.0.key: $OWLS_ROOT/certs/restapi-certs/tls.key
 | 
				
			||||||
 | 
					    openwifi.restapi.host.0.rootca: $OWLS_ROOT/certs/restapi-certs/ca.crt
 | 
				
			||||||
 | 
					    openwifi.restapi.host.0.cert: $OWLS_ROOT/certs/restapi-certs/tls.crt
 | 
				
			||||||
 | 
					    openwifi.restapi.host.0.key: $OWLS_ROOT/certs/restapi-certs/tls.key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  volumes:
 | 
				
			||||||
 | 
					    owls:
 | 
				
			||||||
 | 
					      - name: config
 | 
				
			||||||
 | 
					        mountPath: /owls-data/owls.properties
 | 
				
			||||||
 | 
					        subPath: owls.properties
 | 
				
			||||||
 | 
					        # Template below will be rendered in template
 | 
				
			||||||
 | 
					        volumeDefinition: |
 | 
				
			||||||
 | 
					          secret:
 | 
				
			||||||
 | 
					            secretName: {{ include "owls.fullname" . }}-config
 | 
				
			||||||
 | 
					      - name: certs
 | 
				
			||||||
 | 
					        mountPath: /owls-data/certs
 | 
				
			||||||
 | 
					        volumeDefinition: |
 | 
				
			||||||
 | 
					          secret:
 | 
				
			||||||
 | 
					            secretName: {{ include "owls.fullname" . }}-certs
 | 
				
			||||||
 | 
					      - name: certs-cas
 | 
				
			||||||
 | 
					        mountPath: /owls-data/certs/cas
 | 
				
			||||||
 | 
					        volumeDefinition: |
 | 
				
			||||||
 | 
					          secret:
 | 
				
			||||||
 | 
					            secretName: {{ include "owls.fullname" . }}-certs-cas
 | 
				
			||||||
 | 
					      # Change this if you want to use another volume type
 | 
				
			||||||
 | 
					      - name: persist
 | 
				
			||||||
 | 
					        mountPath: /owls-data/persist
 | 
				
			||||||
 | 
					        volumeDefinition: |
 | 
				
			||||||
 | 
					          persistentVolumeClaim:
 | 
				
			||||||
 | 
					            claimName: {{ template "owls.fullname" . }}-pvc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: restapi-certs
 | 
				
			||||||
 | 
					        mountPath: /owls-data/certs/restapi-certs
 | 
				
			||||||
 | 
					        volumeDefinition: |
 | 
				
			||||||
 | 
					          secret:
 | 
				
			||||||
 | 
					            secretName: {{ include "owls.fullname" . }}-owls-restapi-tls
 | 
				
			||||||
 | 
					      - name: restapi-ca
 | 
				
			||||||
 | 
					        mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
 | 
				
			||||||
 | 
					        subPath: ca.crt
 | 
				
			||||||
 | 
					        volumeDefinition: |
 | 
				
			||||||
 | 
					          secret:
 | 
				
			||||||
 | 
					            secretName: {{ include "owls.fullname" . }}-owls-restapi-tls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
owlsui:
 | 
					owlsui:
 | 
				
			||||||
  enabled: true
 | 
					  enabled: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user