Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add attachedcluater e2e test #582

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: E2E
on:
pull_request:
push:
jobs:
e2e-test:
runs-on: ubuntu-22.04
name: E2E Test
timeout-minutes: 40
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build Clusters
uses: helm/[email protected]
with:
version: v0.18.0
install_only: true
run: |
hack/local-dev-setup.sh
- name: Install Helm
uses: azure/setup-helm@v3
with:
version: v3.10.1
- name: Install Kubectl
uses: actions-hub/[email protected]
- name: Init kurator cluster
run: |
test/install.sh
- name: fleet-clusters e2e test
run: |
test/fleet-clusters/e2e-run.sh
52 changes: 52 additions & 0 deletions hack/e2e-test/fleet-clusters/attachedcluster.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/usr/bin/env bash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: we should provife e2e case in go, could improve later


set -o errexit
set -o nounset
set -o pipefail

KUBECONFIG_PATH=${KUBECONFIG_PATH:-"${HOME}/.kube"}
MAIN_KUBECONFIG=${MAIN_KUBECONFIG:-"${KUBECONFIG_PATH}/kurator-host.config"}
export KUBECONFIG=${MAIN_KUBECONFIG}

kubectl create secret generic kurator-member1 --from-file=kurator-member1.config=${KUBECONFIG_PATH}/kurator-member1.config
kubectl create secret generic kurator-member2 --from-file=kurator-member2.config=${KUBECONFIG_PATH}/kurator-member2.config

cat <<EOF | kubectl apply -f -
apiVersion: cluster.kurator.dev/v1alpha1
kind: AttachedCluster
metadata:
name: kurator-member1
namespace: default
spec:
kubeconfig:
name: kurator-member1
key: kurator-member1.config
EOF

ok=false
sleep 10
kubectl get attachedclusters.cluster.kurator.dev kurator-member1 -o yaml | grep 'ready: true' && ok=true || ok=false
if [ ${ok} = false ]; then
echo "create attachedCluster resources failed"
exit 1
fi

cat <<EOF | kubectl apply -f -
apiVersion: cluster.kurator.dev/v1alpha1
kind: AttachedCluster
metadata:
name: kurator-member2
namespace: default
spec:
kubeconfig:
name: kurator-member2
key: kurator-member2.config
EOF

ok=false
sleep 10
kubectl get attachedclusters.cluster.kurator.dev kurator-member1 -o yaml | grep 'ready: true' && ok=true || ok=false
if [ ${ok} = false ]; then
echo "create attachedCluster resources failed"
exit 1
fi
8 changes: 8 additions & 0 deletions hack/e2e-test/fleet-clusters/e2e-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash

set -o errexit

REPO_ROOT=$(git rev-parse --show-toplevel)
DIR="$(cd "$(dirname "$0")" && pwd)"

"$DIR"/attachedcluster.sh
41 changes: 41 additions & 0 deletions hack/e2e-test/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail

# This script installs Kurator cluster-operater and fleet-manager.

KUBECONFIG_PATH=${KUBECONFIG_PATH:-"${HOME}/.kube"}
MAIN_KUBECONFIG=${MAIN_KUBECONFIG:-"${KUBECONFIG_PATH}/kurator-host.config"}
export KUBECONFIG=${MAIN_KUBECONFIG}
VERSION=${VERSION:-"0.6.0"}

helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl create namespace cert-manager
sleep 5s
helm install -n cert-manager cert-manager jetstack/cert-manager --set installCRDs=true

sleep 5s

helm repo add fluxcd-community https://fluxcd-community.github.io/helm-charts
cat <<EOF | helm install fluxcd fluxcd-community/flux2 --version 2.7.0 -n fluxcd-system --create-namespace -f -
imageAutomationController:
create: false
imageReflectionController:
create: false
notificationController:
create: false
EOF

sleep 5s

helm repo add kurator https://kurator-dev.github.io/helm-charts
helm repo update
sleep 5s

helm install --create-namespace kurator-cluster-operator kurator/cluster-operator --version=${VERSION} -n kurator-system
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we cannot install via helm, because this version is not released yet

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to pull the latest code commits, and use the built images and chart packages to install.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope, the code in here, you should not use the helmchart from helm registry

helm install --create-namespace kurator-fleet-manager kurator/fleet-manager --version=${VERSION} -n kurator-system

echo "install kurator successful"
Loading