mirror of
https://github.com/rancher/rke.git
synced 2025-04-27 11:21:08 +00:00
Test all CNI in CI
This commit is contained in:
parent
c732e14868
commit
969b8e70dd
@ -1,4 +1,3 @@
|
|||||||
./bin
|
|
||||||
./.dapper
|
./.dapper
|
||||||
./dist
|
./dist
|
||||||
./.trash-cache
|
./.trash-cache
|
||||||
|
55
.drone.yml
55
.drone.yml
@ -20,6 +20,7 @@ steps:
|
|||||||
- name: socket
|
- name: socket
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
|
||||||
- name: stage-binaries
|
- name: stage-binaries
|
||||||
pull: default
|
pull: default
|
||||||
image: rancher/dapper:1.11.2
|
image: rancher/dapper:1.11.2
|
||||||
@ -77,3 +78,57 @@ volumes:
|
|||||||
- name: socket
|
- name: socket
|
||||||
host:
|
host:
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: test-cni
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build
|
||||||
|
pull: default
|
||||||
|
image: rancher/dapper:1.11.2
|
||||||
|
commands:
|
||||||
|
- dapper build
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: socket
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
- name: integration-flannel
|
||||||
|
pull: default
|
||||||
|
image: rancher/dapper:1.11.2
|
||||||
|
commands:
|
||||||
|
- dapper integration flannel
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: socket
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
- name: integration-calico
|
||||||
|
pull: default
|
||||||
|
image: rancher/dapper:1.11.2
|
||||||
|
commands:
|
||||||
|
- dapper integration calico
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: socket
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
- name: integration-weave
|
||||||
|
pull: default
|
||||||
|
image: rancher/dapper:1.11.2
|
||||||
|
commands:
|
||||||
|
- dapper integration weave
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: socket
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: socket
|
||||||
|
host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
@ -47,6 +47,7 @@ func StartUpDindContainer(ctx context.Context, dindAddress, dindNetwork, dindSto
|
|||||||
}
|
}
|
||||||
binds := []string{
|
binds := []string{
|
||||||
fmt.Sprintf("/var/lib/kubelet-%s:/var/lib/kubelet:shared", containerName),
|
fmt.Sprintf("/var/lib/kubelet-%s:/var/lib/kubelet:shared", containerName),
|
||||||
|
"/etc/machine-id:/etc/machine-id:ro",
|
||||||
}
|
}
|
||||||
isLink, err := util.IsSymlink("/etc/resolv.conf")
|
isLink, err := util.IsSymlink("/etc/resolv.conf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
NETWORK_PLUGIN=$1
|
||||||
|
|
||||||
function kubectlinstall {
|
function kubectlinstall {
|
||||||
k8sversion=$1
|
k8sversion=$1
|
||||||
@ -46,7 +47,6 @@ source $(dirname $0)/version
|
|||||||
|
|
||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
|
|
||||||
|
|
||||||
# Get latest version from rke
|
# Get latest version from rke
|
||||||
all_versions=$(./bin/rke --quiet config --all --list-version | sort -V)
|
all_versions=$(./bin/rke --quiet config --all --list-version | sort -V)
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ for ver in "${!versions_to_test[@]}"; do
|
|||||||
echo_with_time "Testing version ${version_to_test}"
|
echo_with_time "Testing version ${version_to_test}"
|
||||||
|
|
||||||
# Create cluster yaml with random node names
|
# Create cluster yaml with random node names
|
||||||
node=$(cat /dev/urandom | tr -dc a-z | head -c${1:-8})
|
node=$(cat /dev/urandom | tr -dc a-z | head -c8)
|
||||||
cat << EOF > "./bin/cluster-${version_to_test}.yml"
|
cat << EOF > "./bin/cluster-${version_to_test}.yml"
|
||||||
kubernetes_version: ${version_to_test}
|
kubernetes_version: ${version_to_test}
|
||||||
nodes:
|
nodes:
|
||||||
@ -78,6 +78,11 @@ nodes:
|
|||||||
user: ubuntu
|
user: ubuntu
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
if [ "x${NETWORK_PLUGIN}" != "x" ]; then
|
||||||
|
echo_with_time "Network plugin specified: ${NETWORK_PLUGIN}"
|
||||||
|
echo -e "network:\n plugin: ${NETWORK_PLUGIN}" >> ./bin/cluster-${version_to_test}.yml
|
||||||
|
fi
|
||||||
|
|
||||||
# Run rke - output to logs and track results.
|
# Run rke - output to logs and track results.
|
||||||
./bin/rke up --dind --config "./bin/cluster-${version_to_test}.yml" 2>&1 >"./bin/cluster-${version_to_test}.log" &
|
./bin/rke up --dind --config "./bin/cluster-${version_to_test}.yml" 2>&1 >"./bin/cluster-${version_to_test}.log" &
|
||||||
pids="$pids $!"
|
pids="$pids $!"
|
||||||
@ -125,18 +130,20 @@ for pid in "${!pid_results[@]}"; do
|
|||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo_with_time "[FAIL] Rollout of $kind $name in namespace $namespace for ${pid_to_version} did not complete in 5 minutes"
|
echo_with_time "[FAIL] Rollout of $kind $name in namespace $namespace for ${pid_to_version} did not complete in 5 minutes"
|
||||||
rollout_results["${pid}"]="1"
|
rollout_results["${pid}"]="1"
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get pods --all-namespaces
|
|
||||||
else
|
else
|
||||||
echo_with_time "[OK] Rollout of $kind $name in namespace $namespace for ${pid_to_version} complete"
|
echo_with_time "[OK] Rollout of $kind $name in namespace $namespace for ${pid_to_version} complete"
|
||||||
rollout_results["${pid}"]="0"
|
rollout_results["${pid}"]="0"
|
||||||
fi
|
fi
|
||||||
done <<<$(/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" -n $namespace get deploy,daemonset --no-headers -o custom-columns=NAME:.metadata.name,KIND:.kind --no-headers)
|
done <<<$(/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" -n $namespace get deploy,daemonset --no-headers -o custom-columns=NAME:.metadata.name,KIND:.kind --no-headers)
|
||||||
done
|
done
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get pods --all-namespaces
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" | tr -s '[[:space:]]' '\n' | sort -u
|
||||||
else
|
else
|
||||||
rkeup_results["${pid}"]="1"
|
rkeup_results["${pid}"]="1"
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get pods --all-namespaces
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get pods --all-namespaces
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_to_version}.yml" get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" | tr -s '[[:space:]]' '\n' | sort -u
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -232,18 +239,20 @@ for pid in "${!pid_upgrade_results[@]}"; do
|
|||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo_with_time "[FAIL] Rollout of $kind $name in namespace $namespace for upgrade ${pid_upgrade_to_version} to "${upgraded_version}" did not complete in 5 minutes"
|
echo_with_time "[FAIL] Rollout of $kind $name in namespace $namespace for upgrade ${pid_upgrade_to_version} to "${upgraded_version}" did not complete in 5 minutes"
|
||||||
rollout_upgrade_results["${pid}"]="1"
|
rollout_upgrade_results["${pid}"]="1"
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_upgrade_to_version}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_upgrade_to_version}.yml" get pods --all-namespaces
|
|
||||||
else
|
else
|
||||||
echo_with_time "[OK] Rollout of $kind $name in namespace $namespace for upgrade ${pid_upgrade_to_version} to "${upgraded_version}" complete"
|
echo_with_time "[OK] Rollout of $kind $name in namespace $namespace for upgrade ${pid_upgrade_to_version} to "${upgraded_version}" complete"
|
||||||
rollout_upgrade_results["${pid}"]="0"
|
rollout_upgrade_results["${pid}"]="0"
|
||||||
fi
|
fi
|
||||||
done <<<$(/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_upgrade_to_version}.yml" -n $namespace get deploy,daemonset --no-headers -o custom-columns=NAME:.metadata.name,KIND:.kind --no-headers)
|
done <<<$(/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_upgrade_to_version}.yml" -n $namespace get deploy,daemonset --no-headers -o custom-columns=NAME:.metadata.name,KIND:.kind --no-headers)
|
||||||
done
|
done
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_upgrade_to_version}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_upgrade_to_version}.yml" get pods --all-namespaces
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pid_upgrade_to_version}.yml" get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" | tr -s '[[:space:]]' '\n' | sort -u
|
||||||
else
|
else
|
||||||
rkeup_upgrade_results["${pid}"]="1"
|
rkeup_upgrade_results["${pid}"]="1"
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pids_to_version["${pid}"]}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pids_to_version["${pid}"]}.yml" get nodes -o go-template='{{range .items}}{{$node := .}}{{range .status.conditions}}{{$node.metadata.name}}{{": "}}{{.type}}{{":"}}{{.status}}{{"\n"}}{{end}}{{end}}'
|
||||||
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pids_to_version["${pid}"]}.yml" get pods --all-namespaces
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pids_to_version["${pid}"]}.yml" get pods --all-namespaces
|
||||||
|
/usr/local/bin/kubectl-${clusterk8sversion} --kubeconfig "./bin/kube_config_cluster-${pids_to_version["${pid}"]}.yml" get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" | tr -s '[[:space:]]' '\n' | sort -u
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user