diff --git a/pkg/fixtures/workflows/github/helm/.github/workflows/azure-kubernetes-service-helm.yml b/pkg/fixtures/workflows/github/helm/.github/workflows/azure-kubernetes-service-helm.yml index e42604a12..5471a396b 100644 --- a/pkg/fixtures/workflows/github/helm/.github/workflows/azure-kubernetes-service-helm.yml +++ b/pkg/fixtures/workflows/github/helm/.github/workflows/azure-kubernetes-service-helm.yml @@ -113,24 +113,44 @@ jobs: admin: "false" use-kubelogin: "true" + # Checks if the AKS cluster is private + - name: Is private cluster + id: isPrivate + if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} + run: | + result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") + echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + # Create Namespace - name: Create Namespace if: ${{ env.ENABLENAMESPACECREATION == 'true' }} run: | - kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + fi # Validate Namespace exists - name: Validate Namespace Exists run: | - kubectl get namespace ${{ env.NAMESPACE }} - - # Checks if the AKS cluster is private - - name: Is private cluster - id: isPrivate - if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} - run: | - result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") - echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} + fi # Deploys application - name: Deploy application on private cluster @@ -140,7 +160,7 @@ jobs: result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) echo "Helm upgrade result: $result" exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) - + if [ $exitCode -ne 0 ]; then exit $exitCode fi diff --git a/pkg/fixtures/workflows/github/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml b/pkg/fixtures/workflows/github/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml index af6f37ad0..d3007935d 100644 --- a/pkg/fixtures/workflows/github/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml +++ b/pkg/fixtures/workflows/github/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml @@ -112,16 +112,44 @@ jobs: use-kubelogin: 'true' resource-type: ${{ env.CLUSTER_RESOURCE_TYPE }} + # Checks if the AKS cluster is private + - name: Is private cluster + if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} + id: isPrivate + run: | + result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") + echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + # Create Namespace - name: Create Namespace if: ${{ env.ENABLENAMESPACECREATION == 'true' }} run: | - kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + fi # Validate Namespace exists - name: Validate Namespace Exists run: | - kubectl get namespace ${{ env.NAMESPACE }} + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} + fi # Runs Kustomize to create manifest files - name: Bake deployment @@ -131,13 +159,6 @@ jobs: kustomizationPath: ${{ env.KUSTOMIZE_PATH }} kubectl-version: latest id: bake - # Checks if the AKS cluster is private - - name: Is private cluster - if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} - id: isPrivate - run: | - result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") - echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" # Deploys application based on manifest files from previous step - name: Deploy application diff --git a/pkg/fixtures/workflows/github/manifests/.github/workflows/azure-kubernetes-service.yml b/pkg/fixtures/workflows/github/manifests/.github/workflows/azure-kubernetes-service.yml index e5c326d4a..f0e14c71d 100644 --- a/pkg/fixtures/workflows/github/manifests/.github/workflows/azure-kubernetes-service.yml +++ b/pkg/fixtures/workflows/github/manifests/.github/workflows/azure-kubernetes-service.yml @@ -114,6 +114,37 @@ jobs: result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + # Create Namespace + - name: Create Namespace + if: ${{ env.ENABLENAMESPACECREATION == 'true' }} + run: | + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + fi + + # Validate Namespace exists + - name: Validate Namespace Exists + run: | + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} + fi + # Deploys application based on given manifest file - name: Deploys application uses: Azure/k8s-deploy@v5 diff --git a/template/workflows/helm/.github/workflows/azure-kubernetes-service-helm.yml b/template/workflows/helm/.github/workflows/azure-kubernetes-service-helm.yml index fdbdda2f2..9125ef26d 100644 --- a/template/workflows/helm/.github/workflows/azure-kubernetes-service-helm.yml +++ b/template/workflows/helm/.github/workflows/azure-kubernetes-service-helm.yml @@ -113,24 +113,44 @@ jobs: admin: "false" use-kubelogin: "true" + # Checks if the AKS cluster is private + - name: Is private cluster + id: isPrivate + if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} + run: | + result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") + echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + # Create Namespace - name: Create Namespace if: ${{ env.ENABLENAMESPACECREATION == 'true' }} run: | - kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + fi # Validate Namespace exists - name: Validate Namespace Exists run: | - kubectl get namespace ${{ env.NAMESPACE }} - - # Checks if the AKS cluster is private - - name: Is private cluster - id: isPrivate - if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} - run: | - result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") - echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} + fi # Deploys application - name: Deploy application on private cluster @@ -140,7 +160,7 @@ jobs: result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) echo "Helm upgrade result: $result" exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) - + if [ $exitCode -ne 0 ]; then exit $exitCode fi diff --git a/template/workflows/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml b/template/workflows/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml index 57eb6db52..db25c3e2d 100644 --- a/template/workflows/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml +++ b/template/workflows/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml @@ -112,16 +112,44 @@ jobs: use-kubelogin: 'true' resource-type: ${{ env.CLUSTER_RESOURCE_TYPE }} + # Checks if the AKS cluster is private + - name: Is private cluster + if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} + id: isPrivate + run: | + result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") + echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + # Create Namespace - name: Create Namespace if: ${{ env.ENABLENAMESPACECREATION == 'true' }} run: | - kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + fi # Validate Namespace exists - name: Validate Namespace Exists run: | - kubectl get namespace ${{ env.NAMESPACE }} + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} + fi # Runs Kustomize to create manifest files - name: Bake deployment @@ -131,13 +159,6 @@ jobs: kustomizationPath: ${{ env.KUSTOMIZE_PATH }} kubectl-version: latest id: bake - # Checks if the AKS cluster is private - - name: Is private cluster - if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} - id: isPrivate - run: | - result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") - echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" # Deploys application based on manifest files from previous step - name: Deploy application diff --git a/template/workflows/manifests/.github/workflows/azure-kubernetes-service.yml b/template/workflows/manifests/.github/workflows/azure-kubernetes-service.yml index 1cfcc7ed7..cdfbfcbe8 100644 --- a/template/workflows/manifests/.github/workflows/azure-kubernetes-service.yml +++ b/template/workflows/manifests/.github/workflows/azure-kubernetes-service.yml @@ -107,24 +107,44 @@ jobs: use-kubelogin: 'true' resource-type: ${{ env.CLUSTER_RESOURCE_TYPE }} + # Checks if the AKS cluster is private + - name: Is private cluster + if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} + id: isPrivate + run: | + result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") + echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + # Create Namespace - name: Create Namespace if: ${{ env.ENABLENAMESPACECREATION == 'true' }} run: | - kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} || kubectl create namespace ${{ env.NAMESPACE }} + fi # Validate Namespace exists - name: Validate Namespace Exists run: | - kubectl get namespace ${{ env.NAMESPACE }} - - # Checks if the AKS cluster is private - - name: Is private cluster - if: ${{ env.CLUSTER_RESOURCE_TYPE != 'Microsoft.ContainerService/fleets' }} - id: isPrivate - run: | - result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster") - echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT" + if [ ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER}} == 'true' ]; then + command_id=$(az aks command invoke --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command "kubectl get namespace ${{ env.NAMESPACE }}" --query id -o tsv) + result=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id) + echo "Command Result: $result" + exitCode=$(az aks command result --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --command-id $command_id --query exitCode -o tsv) + if [ $exitCode -ne 0 ]; then + exit $exitCode + fi + else + kubectl get namespace ${{ env.NAMESPACE }} + fi # Deploys application based on given manifest file - name: Deploys application