Add leaderelection to addon-manager. (#196) #670
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: Go | |
on: | |
workflow_dispatch: {} | |
push: | |
branches: | |
- main | |
- release-* | |
pull_request: | |
branches: | |
- main | |
- release-* | |
env: | |
# Common versions | |
GO_VERSION: '1.21' | |
GO_REQUIRED_MIN_VERSION: '' | |
jobs: | |
build: | |
name: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: build | |
run: make build | |
linelint: | |
name: linelint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Linelint | |
uses: fernandrone/[email protected] | |
verify: | |
name: verify | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: verify | |
run: make verify | |
unit: | |
name: unit | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: unit | |
run: make test | |
- name: report coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_UPLOAD_TOKEN }} | |
files: ./cover.out | |
flags: unit | |
name: unit | |
verbose: true | |
fail_ci_if_error: true | |
integration: | |
name: integration | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: integration | |
run: make test-integration | |
e2e: | |
name: e2e | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install clusteradm | |
run: curl -L https://raw.githubusercontent.com/open-cluster-management-io/clusteradm/main/install.sh | bash | |
- name: Create k8s Kind Cluster | |
uses: helm/[email protected] | |
- name: Prepare OCM testing environment | |
run: | # fixed the OCM to the latest released version | |
clusteradm init --output-join-command-file join.sh --wait | |
sh -c "$(cat join.sh) loopback --force-internal-endpoint-lookup" | |
clusteradm accept --clusters loopback --wait 30 | |
kubectl wait --for=condition=ManagedClusterConditionAvailable managedcluster/loopback | |
- name: Build image | |
run: | | |
make images | |
kind load docker-image quay.io/open-cluster-management/cluster-proxy:latest --name chart-testing | |
- name: Install latest cluster-proxy | |
run: | | |
helm install \ | |
-n open-cluster-management-addon --create-namespace \ | |
cluster-proxy charts/cluster-proxy/ \ | |
--set tag=latest --set installByPlacement.placementName=default | |
- name: Build&Run e2e test | |
run: | | |
kubectl wait --for=condition=ProxyServerDeployed=true managedproxyconfiguration cluster-proxy --timeout=60s | |
kubectl wait --for=condition=Available deployment/cluster-proxy --timeout=60s -n open-cluster-management-addon | |
kubectl port-forward -n open-cluster-management-addon services/proxy-entrypoint 8090:8090 & | |
make test-e2e |