Skip to content

Commit 457eb25

Browse files
Mauricio Ferraridavidgamero
andauthored
Template Support for Private Clusters (#334)
Co-authored-by: David Gamero <david340804@gmail.com>
1 parent 685966f commit 457eb25

File tree

8 files changed

+64
-62
lines changed

8 files changed

+64
-62
lines changed

.github/workflows/integration-linux.yml

Lines changed: 36 additions & 36 deletions
Large diffs are not rendered by default.

template/workflows/helm/.github/workflows/azure-kubernetes-service-helm.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ env:
5151
CHART_OVERRIDE_PATH: {{CHARTOVERRIDEPATH}}
5252
CHART_OVERRIDES: {{CHARTOVERRIDES}}
5353
NAMESPACE: {{NAMESPACE}}
54-
PRIVATE_CLUSTER: {{PRIVATECLUSTER}}
5554

5655
jobs:
5756
buildImage:
@@ -120,6 +119,13 @@ jobs:
120119
helm-version: "latest"
121120
id: bake
122121

122+
# Checks if the AKS cluster is private
123+
- name: Is private cluster
124+
id: isPrivate
125+
run: |
126+
result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster")
127+
echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT"
128+
123129
# Deploys application based on manifest files from previous step
124130
- name: Deploy application
125131
uses: Azure/k8s-deploy@v4
@@ -129,4 +135,4 @@ jobs:
129135
images: |
130136
${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
131137
namespace: ${{ env.NAMESPACE }}
132-
private-cluster: ${{ env.PRIVATE_CLUSTER }}
138+
private-cluster: ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER }}

template/workflows/helm/draft.yaml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,4 @@ variables:
4141
- name: "NAMESPACE"
4242
default:
4343
value: "default"
44-
description: "the Kubernetes namespace"
45-
- name: "PRIVATECLUSTER"
46-
default:
47-
value: false
48-
description: "true if the AKS cluster is private"
49-
type: "bool"
50-
44+
description: "the Kubernetes namespace"

template/workflows/kustomize/.github/workflows/azure-kubernetes-service-kustomize.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ env:
4848
DOCKER_FILE: {{DOCKERFILE}}
4949
BUILD_CONTEXT_PATH: {{BUILDCONTEXTPATH}}
5050
NAMESPACE: {{NAMESPACE}}
51-
PRIVATE_CLUSTER: {{PRIVATECLUSTER}}
5251

5352
jobs:
5453
buildImage:
@@ -114,6 +113,13 @@ jobs:
114113
kustomizationPath: ${{ env.KUSTOMIZE_PATH }}
115114
kubectl-version: latest
116115
id: bake
116+
117+
# Checks if the AKS cluster is private
118+
- name: Is private cluster
119+
id: isPrivate
120+
run: |
121+
result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster")
122+
echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT"
117123
118124
# Deploys application based on manifest files from previous step
119125
- name: Deploy application
@@ -124,4 +130,4 @@ jobs:
124130
images: |
125131
${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
126132
namespace: ${{ env.NAMESPACE }}
127-
private-cluster: ${{ env.PRIVATE_CLUSTER }}
133+
private-cluster: ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER }}

template/workflows/kustomize/draft.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,3 @@ variables:
3232
default:
3333
value: "default"
3434
description: "the Kubernetes namespace"
35-
- name: "PRIVATECLUSTER"
36-
default:
37-
value: "false"
38-
description: "true if the AKS cluster is private"
39-
type: "bool"

template/workflows/manifests/.github/workflows/azure-kubernetes-service.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ env:
4444
DOCKER_FILE: {{DOCKERFILE}}
4545
BUILD_CONTEXT_PATH: {{BUILDCONTEXTPATH}}
4646
NAMESPACE: {{NAMESPACE}}
47-
PRIVATE_CLUSTER: {{PRIVATECLUSTER}}
4847

4948
jobs:
5049
buildImage:
@@ -102,6 +101,13 @@ jobs:
102101
admin: 'false'
103102
use-kubelogin: 'true'
104103

104+
# Checks if the AKS cluster is private
105+
- name: Is private cluster
106+
id: isPrivate
107+
run: |
108+
result=$(az aks show --resource-group ${{ env.CLUSTER_RESOURCE_GROUP }} --name ${{ env.CLUSTER_NAME }} --query "apiServerAccessProfile.enablePrivateCluster")
109+
echo "PRIVATE_CLUSTER=$result" >> "$GITHUB_OUTPUT"
110+
105111
# Deploys application based on given manifest file
106112
- name: Deploys application
107113
uses: Azure/k8s-deploy@v4
@@ -111,5 +117,5 @@ jobs:
111117
images: |
112118
${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
113119
namespace: ${{ env.NAMESPACE }}
114-
private-cluster: ${{ env.PRIVATE_CLUSTER }}
120+
private-cluster: ${{ steps.isPrivate.outputs.PRIVATE_CLUSTER }}
115121

template/workflows/manifests/draft.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,3 @@ variables:
3232
default:
3333
value: "default"
3434
description: "the Kubernetes namespace"
35-
- name: "PRIVATECLUSTER"
36-
default:
37-
value: "false"
38-
description: "true if the AKS cluster is private"
39-
type: "bool"

test/gen_integration.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ languageVariables:
305305
curl -m 3 \$SERVICEIP:$serviceport
306306
kill \$tunnelPID
307307
- run: |
308-
./draft -v generate-workflow -d ./langtest/ --deploy-type helm --variable WORKFLOWNAME=someWorkflow --variable BRANCHNAME=main --variable ACRRESOURCEGROUP=someAcrResourceGroup --variable AZURECONTAINERREGISTRY=someRegistry --variable CONTAINERNAME=someContainer --variable CLUSTERRESOURCEGROUP=someClusterResourceGroup --variable CLUSTERNAME=someAksCluster --variable DOCKERFILE=./Dockerfile --variable BUILDCONTEXTPATH=. --variable NAMESPACE=default --variable PRIVATECLUSTER=false
308+
./draft -v generate-workflow -d ./langtest/ --deploy-type helm --variable WORKFLOWNAME=someWorkflow --variable BRANCHNAME=main --variable ACRRESOURCEGROUP=someAcrResourceGroup --variable AZURECONTAINERREGISTRY=someRegistry --variable CONTAINERNAME=someContainer --variable CLUSTERRESOURCEGROUP=someClusterResourceGroup --variable CLUSTERNAME=someAksCluster --variable DOCKERFILE=./Dockerfile --variable BUILDCONTEXTPATH=. --variable NAMESPACE=default
309309
pwd
310310
# Validate generated workflow yaml
311311
- name: Install action-validator with asdf
@@ -455,7 +455,7 @@ languageVariables:
455455
echo 'Curling service IP'
456456
curl -m 3 \$SERVICEIP:$serviceport
457457
kill \$tunnelPID
458-
- run: ./draft -v generate-workflow -d ./langtest/ --deploy-type kustomize --variable WORKFLOWNAME=someWorkflow --variable BRANCHNAME=main --variable ACRRESOURCEGROUP=someAcrResourceGroup --variable AZURECONTAINERREGISTRY=someRegistry --variable CONTAINERNAME=someContainer --variable CLUSTERRESOURCEGROUP=someClusterResourceGroup --variable CLUSTERNAME=someAksCluster --variable DOCKERFILE=./Dockerfile --variable BUILDCONTEXTPATH=. --variable NAMESPACE=default --variable PRIVATECLUSTER=false
458+
- run: ./draft -v generate-workflow -d ./langtest/ --deploy-type kustomize --variable WORKFLOWNAME=someWorkflow --variable BRANCHNAME=main --variable ACRRESOURCEGROUP=someAcrResourceGroup --variable AZURECONTAINERREGISTRY=someRegistry --variable CONTAINERNAME=someContainer --variable CLUSTERRESOURCEGROUP=someClusterResourceGroup --variable CLUSTERNAME=someAksCluster --variable DOCKERFILE=./Dockerfile --variable BUILDCONTEXTPATH=. --variable NAMESPACE=default
459459
# Validate generated workflow yaml
460460
- name: Install action-validator with asdf
461461
uses: asdf-vm/actions/install@v1
@@ -596,7 +596,7 @@ languageVariables:
596596
echo 'Curling service IP'
597597
curl -m 3 \$SERVICEIP:$serviceport
598598
kill \$tunnelPID
599-
- run: ./draft -v generate-workflow -d ./langtest/ --deploy-type manifests --variable WORKFLOWNAME=someWorkflow --variable BRANCHNAME=main --variable ACRRESOURCEGROUP=someAcrResourceGroup --variable AZURECONTAINERREGISTRY=someRegistry --variable CONTAINERNAME=someContainer --variable CLUSTERRESOURCEGROUP=someClusterResourceGroup --variable CLUSTERNAME=someAksCluster --variable DOCKERFILE=./Dockerfile --variable BUILDCONTEXTPATH=. --variable NAMESPACE=default --variable PRIVATECLUSTER=false
599+
- run: ./draft -v generate-workflow -d ./langtest/ --deploy-type manifests --variable WORKFLOWNAME=someWorkflow --variable BRANCHNAME=main --variable ACRRESOURCEGROUP=someAcrResourceGroup --variable AZURECONTAINERREGISTRY=someRegistry --variable CONTAINERNAME=someContainer --variable CLUSTERRESOURCEGROUP=someClusterResourceGroup --variable CLUSTERNAME=someAksCluster --variable DOCKERFILE=./Dockerfile --variable BUILDCONTEXTPATH=. --variable NAMESPACE=default
600600
# Validate generated workflow yaml
601601
- name: Install action-validator with asdf
602602
uses: asdf-vm/actions/install@v1

0 commit comments

Comments
 (0)