Skip to content

Commit

Permalink
Update package setup for e2e pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
helayoty committed Sep 9, 2022
1 parent 019767f commit bbbfcd6
Show file tree
Hide file tree
Showing 6 changed files with 99 additions and 30 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- "charts/**"
create:
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]
tags: [ 'v*.*.*.*' ]

permissions:
contents: write
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: create_release
on:
create:
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]
tags: [ 'v*.*.*.*' ]

permissions:
contents: write
Expand Down
33 changes: 10 additions & 23 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ on:
paths-ignore: [ docs/**, "**.md", "**.mdx", "**.png", "**.jpg" ]

permissions:
id-token: write
contents: read
packages: write
id-token: write
contents: read

env:
REGISTRY: ghcr.io
Expand Down Expand Up @@ -48,6 +47,7 @@ jobs:
env:
REGISTRY: ${{ needs.export-registry.outputs.registry }}
E2E_IMG_TAG: "e2e-ci"
PR_COMMIT_REF: ${{ github.event.pull_request.head.ref }}
runs-on: ubuntu-latest
steps:
- name: Set up Go
Expand All @@ -57,29 +57,20 @@ jobs:

- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}

- name: Set e2e Cluster Name
run: |
rand=$RANDOM
echo "CLUSTER_NAME=vk-aci-test-${rand}" >> $GITHUB_ENV
- name: Login to ${{ env.REGISTRY }}
uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build image
run: |
OUTPUT_TYPE=type=registry make docker-build-image
env:
VERSION: ${{ env.E2E_IMG_TAG}}

- name: Install Azure CLI latest
run: |
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
az version
- uses: azure/login@v1.4.5
with:
client-id: ${{ secrets.CLIENTID }}
Expand All @@ -88,21 +79,17 @@ jobs:

- name: Run e2e test
run: |
make e2e-test
OUTPUT_TYPE=type=registry make e2e-test
env:
REGISTRY: ${{ env.REGISTRY}}
E2E_REGION: ${{ secrets.E2E_REGION}}
CLUSTER_NAME: ${{ env.CLUSTER_NAME }}
VERSION: ${{ env.E2E_IMG_TAG}}
E2E_TARGET: "pr"
PR_COMMIT_REF: ${{ env.PR_COMMIT_REF }}

- name: Cleanup e2e resources
if: ${{ always() }}
run: |
set +e
az group delete --name "${{ env.CLUSTER_NAME }}" --yes --no-wait || true
- uses: actions/delete-package-versions@v3
if: ${{ always() }}
with:
package-name: 'virtual-kubelet'
token: ${{ secrets.GITHUB_TOKEN }}
50 changes: 50 additions & 0 deletions .github/workflows/publish-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: publish_images

on:
create:
# Publish semver tags as releases.
tags: [ 'v*.*.*.*' ]

permissions:
contents: read
packages: write

env:
REGISTRY: ghcr.io
IMAGE_NAME: virtual-kubelet

jobs:
export-registry:
runs-on: ubuntu-20.04
needs: detect-noop
if: needs.detect-noop.outputs.noop != 'true'
outputs:
registry: ${{ steps.export.outputs.registry }}
steps:
- id: export
run: |
# registry must be in lowercase
echo "::set-output name=registry::$(echo "${{ env.REGISTRY }}/${{ github.repository }}" | tr [:upper:] [:lower:])"
publish-images:
needs: export-registry
env:
REGISTRY: ${{ needs.export-registry.outputs.registry }}
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 0
- name: Login to ${{ env.REGISTRY }}
uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build image
run: |
OUTPUT_TYPE=type=registry make docker-build-image
env:
VERSION: ${{ env.E2E_IMG_TAG}}
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ TEST_LOGANALYTICS_JSON ?= $(TEST_CREDENTIALS_DIR)/loganalytics.json
export TEST_CREDENTIALS_JSON TEST_LOGANALYTICS_JSON

IMG_NAME ?= virtual-kubelet
IMG_REPO ?= $(REGISTRY)/$(IMG_NAME)
IMAGE ?= $(REGISTRY)/$(IMG_NAME)
LOCATION := $(E2E_REGION)
E2E_CLUSTER_NAME := $(CLUSTER_NAME)

Expand Down Expand Up @@ -59,7 +59,7 @@ docker-build-image: docker-buildx-builder
--output=$(OUTPUT_TYPE) \
--platform="$(BUILDPLATFORM)" \
--pull \
--tag $(IMG_REPO):$(IMG_TAG) .
--tag $(IMAGE):$(IMG_TAG) .

.PHONY: build
build: bin/virtual-kubelet
Expand All @@ -80,7 +80,7 @@ test:

.PHONY: e2e-test
e2e-test:
IMG_URL=$(REGISTRY) IMG_REPO=$(IMG_NAME) IMG_TAG=$(IMG_TAG) LOCATION=$(LOCATION) RESOURCE_GROUP=$(E2E_CLUSTER_NAME) $(AKS_E2E_SCRIPT) go test -timeout 30m -v ./e2e
PR_RAND=$(PR_COMMIT_REF) E2E_TARGET=$(E2E_TARGET) IMG_URL=$(REGISTRY) IMG_REPO=$(IMG_NAME) IMG_TAG=$(IMG_TAG) LOCATION=$(LOCATION) RESOURCE_GROUP=$(E2E_CLUSTER_NAME) $(AKS_E2E_SCRIPT) go test -timeout 30m -v ./e2e

.PHONY: vet
vet:
Expand Down
36 changes: 34 additions & 2 deletions hack/e2e/aks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@ if ! type go > /dev/null; then
exit 1
fi

: "${RANDOM_NUM:=$RANDOM}"
: "${RANDOM_NUM:=${PR_RAND}}"

if [ "$PR_RAND" = "" ]; then
RANDOM_NUM=$RANDOM
fi

: "${RESOURCE_GROUP:=vk-aci-test-$RANDOM_NUM}"
: "${LOCATION:=westus2}"
: "${CLUSTER_NAME:=${RESOURCE_GROUP}}"
Expand All @@ -29,7 +34,7 @@ fi
: "${VNET_NAME=myAKSVNet}"
: "${CLUSTER_SUBNET_NAME=myAKSSubnet}"
: "${ACI_SUBNET_NAME=myACISubnet}"

: "${ACR_NAME=vkacr$RANDOM_NUM}"
: "${CSI_DRIVER_STORAGE_ACCOUNT_NAME=vkcsidrivers$RANDOM_NUM}"
: "${CSI_DRIVER_SHARE_NAME=vncsidriversharename}"

Expand Down Expand Up @@ -68,6 +73,16 @@ fi

az group create --name "$RESOURCE_GROUP" --location "$LOCATION"

if [ "$E2E_TARGET" = "pr" ]; then
az acr create --resource-group "$RESOURCE_GROUP" \
--name "$ACR_NAME" --sku Basic

az acr login --name "$ACR_NAME"
IMG_URL=$ACR_NAME.azurecr.io
IMG_REPO="virtual-kubelet"
OUTPUT_TYPE=type=registry IMG_TAG=$IMG_TAG IMAGE=$ACR_NAME.azurecr.io/$IMG_REPO make docker-build-image

fi

KUBE_DNS_IP=10.0.0.10

Expand Down Expand Up @@ -95,6 +110,23 @@ node_identity="$(az identity create --name "${RESOURCE_GROUP}-node-identity" --r

node_identity_id="$(az identity show --name ${RESOURCE_GROUP}-node-identity --resource-group ${RESOURCE_GROUP} --query id -o tsv)"
cluster_identity_id="$(az identity show --name ${RESOURCE_GROUP}-aks-identity --resource-group ${RESOURCE_GROUP} --query id -o tsv)"

if [ "$E2E_TARGET" = "pr" ]; then
az aks create \
-g "$RESOURCE_GROUP" \
-l "$LOCATION" \
-c "$NODE_COUNT" \
--node-vm-size standard_d8_v3 \
-n "$CLUSTER_NAME" \
--network-plugin azure \
--vnet-subnet-id "$aks_subnet_id" \
--dns-service-ip "$KUBE_DNS_IP" \
--assign-kubelet-identity "$node_identity_id" \
--assign-identity "$cluster_identity_id" \
--generate-ssh-keys \
--attach-acr "$ACR_NAME"
fi

az aks create \
-g "$RESOURCE_GROUP" \
-l "$LOCATION" \
Expand Down

0 comments on commit bbbfcd6

Please sign in to comment.