diff --git a/.github/workflows/install-components-az.yml b/.github/workflows/install-components-az.yml index 9c1e847..1ed70e9 100644 --- a/.github/workflows/install-components-az.yml +++ b/.github/workflows/install-components-az.yml @@ -20,6 +20,7 @@ on: label: type: string description: Image label to use + default: 'develop' env: REGISTRY: ghcr.io @@ -88,7 +89,7 @@ jobs: run: | helm repo add stunner https://l7mp.io/stunner helm repo update - helm dependency . --skip-refresh + helm dependency build . --skip-refresh helm install stunner . --create-namespace --namespace=stunner - name: Install game operator manifests @@ -148,7 +149,7 @@ jobs: - name: Wait for external IP of API if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'frontend') }} run: | - until [ -n "$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].ip}')" ]; do + until [ -n "$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')" ]; do sleep 5 done @@ -157,7 +158,7 @@ jobs: if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'frontend') }} run: | helm install -f values.yaml \ - --set-string appConfig.apiUrl=http://$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].ip}'):$(kubectl get svc api -n api -o jsonpath='{.spec.ports[0].port}') \ + --set-string appConfig.apiUrl=http://$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'):$(kubectl get svc api -n api -o jsonpath='{.spec.ports[0].port}') \ --set-string image.label=${{ github.event.inputs.label }} \ frontend . diff --git a/.github/workflows/uninstall-components-az.yml b/.github/workflows/uninstall-components-az.yml index c7d54c4..1f6b25a 100644 --- a/.github/workflows/uninstall-components-az.yml +++ b/.github/workflows/uninstall-components-az.yml @@ -56,18 +56,22 @@ jobs: working-directory: ./helm/mysql if: ${{ !cancelled() && (github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'mysql')) }} run: | - helm uninstall mysql -n mysql - helm uninstall mysql-operator -n mysql-operator + helm uninstall mysql -n mysql --ignore-not-found --wait + helm uninstall mysql-operator -n mysql-operator --ignore-not-found --wait + kubectl delete ns mysql + kubectl delete ns mysql-operator - name: Uninstall STUNner working-directory: ./helm/stunner if: ${{ !cancelled() && (github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'stunner')) }} - run: helm uninstall stunner -n stunner + run: | + helm uninstall stunner -n stunner --ignore-not-found --wait + kubectl delete ns stunner - - name: Uninstall game operator manifests - working-directory: ./operator - if: ${{ !cancelled() && (github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'operator')) }} - run: make uninstall + #- name: Uninstall game operator manifests + # working-directory: ./operator + # if: ${{ !cancelled() && (github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'operator')) }} + # run: make uninstall - name: Undeploy game operator working-directory: ./operator @@ -86,7 +90,9 @@ jobs: - name: Uninstall Grafana if: ${{ !cancelled() && (github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'grafana')) }} - run: helm uninstall grafana -n monitoring + run: | + helm uninstall grafana -n monitoring --ignore-not-found --wait + kubectl delete ns monitoring - name: Logout of Azure if: always() diff --git a/.github/workflows/upgrade-components-az.yml b/.github/workflows/upgrade-components-az.yml index 993a6ca..4bb7786 100644 --- a/.github/workflows/upgrade-components-az.yml +++ b/.github/workflows/upgrade-components-az.yml @@ -17,6 +17,7 @@ on: label: type: string description: Image label to use + default: 'develop' env: REGISTRY: ghcr.io @@ -56,6 +57,11 @@ jobs: - name: Configure kubernetes config run: tailscale configure kubeconfig tailscale-operator + - name: Undeploy game operator + working-directory: ./operator + if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'operator') }} + run: make undeploy + - name: Install game operator manifests working-directory: ./operator if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'operator') }} @@ -66,11 +72,6 @@ jobs: if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'operator') }} run: make deploy IMG=${{ env.REGISTRY }}/${{ env.NAMESPACE }}/${{ env.SUB_NAMESPACE }}/operator:${{ github.event.inputs.label }} - - name: Undeploy game operator - working-directory: ./operator - if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'operator') }} - run: make undeploy - - name: Wait for MySQL to be ready if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'api') }} run: | @@ -102,14 +103,14 @@ jobs: working-directory: ./helm/api if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'api') }} run: | - helm upgrade -f values.yaml \ + helm upgrade --reuse-values \ --set-string image.label=${{ github.event.inputs.label }} \ api . - name: Wait for external IP of API if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'frontend') }} run: | - until [ -n "$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].ip}')" ]; do + until [ -n "$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')" ]; do sleep 5 done @@ -117,8 +118,8 @@ jobs: working-directory: ./helm/frontend if: ${{ github.event.inputs.component == 'all' || contains(github.event.inputs.component, 'frontend') }} run: | - helm upgrade -f values.yaml \ - --set-string appConfig.apiUrl=http://$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].ip}'):$(kubectl get svc api -n api -o jsonpath='{.spec.ports[0].port}') \ + helm upgrade --reuse-values \ + --set-string appConfig.apiUrl=http://$(kubectl get svc api -n api -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'):$(kubectl get svc api -n api -o jsonpath='{.spec.ports[0].port}') \ --set-string image.label=${{ github.event.inputs.label }} \ frontend . diff --git a/helm/frontend/templates/frontend-configmap.yaml b/helm/frontend/templates/frontend-configmap.yaml index 0113bde..56f95b4 100644 --- a/helm/frontend/templates/frontend-configmap.yaml +++ b/helm/frontend/templates/frontend-configmap.yaml @@ -1,5 +1,3 @@ -{{- required ".Values.appConfig.production is required!" .Values.appConfig.production -}} -{{- required ".Values.appConfig.apiUrl is required!" .Values.appConfig.apiUrl -}} apiVersion: v1 kind: ConfigMap metadata: