Skip to content

Commit

Permalink
Update Test Samples Workflow - Set up Test EKS Cluster for Dapr (radi…
Browse files Browse the repository at this point in the history
  • Loading branch information
kachawla authored and lakshmimsft committed Jan 24, 2025
1 parent 9427c2f commit 9b5724c
Showing 1 changed file with 34 additions and 11 deletions.
45 changes: 34 additions & 11 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -111,18 +111,11 @@ jobs:
RUN_TEST=true
fi
if [[ "${{ matrix.enableDapr }}" == "true" ]]; then
ENABLE_DAPR=true
else
ENABLE_DAPR=false
fi
# Set output variables to be used in the other jobs
echo "RUN_IDENTIFIER=${RUN_IDENTIFIER}" >> $GITHUB_OUTPUT
echo "TEST_AZURE_RESOURCE_GROUP=rg-${RUN_IDENTIFIER}" >> $GITHUB_OUTPUT
echo "TEST_EKS_CLUSTER_NAME=eks-${RUN_IDENTIFIER}" >> $GITHUB_OUTPUT
echo "RUN_TEST=${RUN_TEST}" >> $GITHUB_OUTPUT
echo "ENABLE_DAPR=${ENABLE_DAPR}" >> $GITHUB_OUTPUT
- name: Generate Radius version variables
id: gen-radius-version
if: steps.gen-id.outputs.RUN_TEST == 'true'
Expand Down Expand Up @@ -233,26 +226,56 @@ jobs:
if: steps.gen-id.outputs.RUN_TEST == 'true' && matrix.credential == 'aws'
id: create-eks
run: |
# Install eksctl
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
# Create EKS cluster
eksctl create cluster \
--name ${{ steps.gen-id.outputs.TEST_EKS_CLUSTER_NAME }} \
--nodes-min 1 --nodes-max 2 --node-type t3.large \
--zones ${{ env.AWS_ZONES }} \
--managed \
--region ${{ env.AWS_REGION }}
# Wait for the EKS cluster to be active
while [[ "$(eksctl get cluster ${{ steps.gen-id.outputs.TEST_EKS_CLUSTER_NAME }} --region ${{ env.AWS_REGION }} -o json | jq -r .[0].Status)" != "ACTIVE" ]]; do
echo "Waiting for EKS cluster to be created..."
sleep 60
done
# Update kubeconfig
aws eks update-kubeconfig --region ${{ env.AWS_REGION }} --name ${{ steps.gen-id.outputs.TEST_EKS_CLUSTER_NAME }}
timeout-minutes: 60
continue-on-error: false
- name: Install Dapr
if: steps.gen-id.outputs.RUN_TEST == 'true' && steps.gen-id.outputs.ENABLE_DAPR == 'true'
- name: Configure EKS for Dapr
if: steps.gen-id.outputs.RUN_TEST == 'true' && matrix.credential == 'aws'
run: |
helm repo add dapr https://dapr.github.io/helm-charts/
helm install dapr dapr/dapr --version=1.6 --namespace dapr-system --create-namespace --wait
# Fetch the node group name dynamically
NODEGROUP_NAME=$(eksctl get nodegroup \
--cluster ${{ steps.gen-id.outputs.TEST_EKS_CLUSTER_NAME }} \
--region ${{ env.AWS_REGION }} \
-o json | jq -r '.[0].Name')
# Fetch the security group ID for the EKS worker nodes
NODE_SECURITY_GROUP_ID=$(eksctl get nodegroup \
--cluster ${{ steps.gen-id.outputs.TEST_EKS_CLUSTER_NAME }} \
--name $NODEGROUP_NAME \
--region ${{ env.AWS_REGION }} \
-o json | jq -r '.[0].Resources.SecurityGroup.ID')
# Authorize port 4000 for Dapr sidecar communication within the same security group
# https://docs.dapr.io/operations/hosting/kubernetes/cluster/setup-eks/#add-dapr-requirements-for-sidecar-access-and-default-storage-class
aws ec2 authorize-security-group-ingress \
--group-id $NODE_SECURITY_GROUP_ID \
--protocol tcp \
--port 4000 \
--source-group $NODE_SECURITY_GROUP_ID
# Add a default storage class
kubectl patch storageclass gp2 -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
timeout-minutes: 30
continue-on-error: false
- uses: oras-project/setup-oras@main
if: steps.gen-id.outputs.RUN_TEST == 'true'
with:
Expand Down

0 comments on commit 9b5724c

Please sign in to comment.