Skip to content

rewrite func getImageNameTag for supporting registries with port #935

rewrite func getImageNameTag for supporting registries with port

rewrite func getImageNameTag for supporting registries with port #935

Workflow file for this run

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