rewrite func getImageNameTag for supporting registries with port #935
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: MetalLB-E2E | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: | |
- main | |
- "v[0-9]+.[0-9]+.[0-9]+" | |
- "v[0-9]+.[0-9]+" | |
defaults: | |
run: | |
shell: bash | |
working-directory: metallboperator | |
jobs: | |
main: | |
runs-on: ubuntu-20.04 | |
env: | |
built_image: "metallb-operator:ci" # Arbitrary name | |
strategy: | |
matrix: | |
go: ["1.19.5"] | |
name: Go ${{ matrix.go }} | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout Metal LB Operator | |
uses: actions/checkout@v2 | |
with: | |
path: metallboperator | |
fetch-depth: 0 # Fetch all history for all tags and branches | |
- uses: actions/setup-go@v2 | |
id: go | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Verify modules | |
run: go mod verify | |
- name: Verify format | |
run: | | |
make fmt | |
git diff --exit-code | |
- name: Verify manifests | |
run: | | |
make manifests | |
git diff --exit-code | |
- name: Read metallb ref | |
id: metallb_ref | |
run: echo "content=$(cat ./hack/metallb_ref.txt)" >> $GITHUB_OUTPUT | |
- name: Checkout MetalLB | |
uses: actions/checkout@v2 | |
with: | |
repository: metallb/metallb | |
path: metallb | |
ref: "${{ steps.metallb_ref.outputs.content }}" | |
- name: Checkout MetalLB v0.12 | |
uses: actions/checkout@v2 | |
with: | |
repository: metallb/metallb | |
path: metallb-0.12 | |
ref: v0.12 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install linux-modules-extra-$(uname -r) python3-pip arping ndisc6 | |
sudo pip3 install -r ${GITHUB_WORKSPACE}/metallb/dev-env/requirements.txt | |
go install github.com/onsi/ginkgo/v2/[email protected] | |
- name: Build image | |
run: | | |
IMG=${built_image} make docker-build | |
- name: Create multi-node K8s Kind Cluster | |
run: | | |
./hack/kind-multi-node-cluster-without-registry.sh | |
kind load docker-image ${built_image} | |
./hack/create_second_interface.sh | |
- name: Deploy Prometheus | |
run: | | |
make deploy-prometheus | |
- name: Deploy Metal LB Operator | |
run: | | |
IMG=${built_image} KUSTOMIZE_DEPLOY_DIR="config/frr-on-ci/" make deploy | |
- name: Ensure MetalLB operator is ready | |
run: | | |
while [ "$(kubectl get pods -n metallb-system -l control-plane='controller-manager' -o jsonpath='{.items[*].status.containerStatuses[0].ready}')" != "true" ]; do | |
sleep 5 | |
echo "Waiting for operator pod to be ready." | |
done | |
- name: Enable MetalLB | |
run: | | |
export KUBECONFIG=${HOME}/.kube/config | |
kubectl apply -f config/samples/metallb.yaml | |
- name: MetalLB E2E Tests | |
run: | | |
cd ${GITHUB_WORKSPACE}/metallb | |
sudo -E env "PATH=$PATH" inv e2etest --skip "IPV6|DUALSTACK" -e /tmp/kind_logs | |
- name: MetalLB E2E Tests - backward compatible | |
run: | | |
patch ${GITHUB_WORKSPACE}/metallb-0.12/e2etest/pkg/config/update.go < ${GITHUB_WORKSPACE}/metallb/e2etest/backwardcompatible/patchfile | |
cat <<EOF | kubectl apply -f - | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
namespace: metallb-system | |
name: config | |
EOF | |
cd ${GITHUB_WORKSPACE}/metallb-0.12 | |
FOCUS="L2.*should work for ExternalTrafficPolicy=Cluster|BGP.*A service of protocol load balancer should work with.*IPV4 - ExternalTrafficPolicyCluster$|BGP.*should work with the given bfd profile.*IPV4 - default" | |
sudo -E env "PATH=$PATH" inv e2etest --use-operator --focus "$FOCUS" -e /tmp/kind_logs | |
- name: Change permissions for kind logs | |
if: ${{ failure() }} | |
run: | | |
sudo chmod -R o+r /tmp/kind_logs | |
- name: Archive kind logs | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: kind_logs | |
path: /tmp/kind_logs |