Use latest release for upgrade tests (#2097)

Fix upgrade CI flow and added checks at places required
This commit is contained in:
Sanket Sudake
2021-07-02 15:48:02 +05:30
committed by GitHub
parent 154fe0d447
commit 2cf2c6979e
4 changed files with 92 additions and 87 deletions
+7 -5
View File
@@ -14,7 +14,6 @@ on:
branches:
- master
paths:
- '.github/workflows/*'
- '**.go'
- 'charts/**'
- 'test/**'
@@ -55,7 +54,7 @@ jobs:
uses: engineerd/setup-kind@v0.5.0
with:
image: ${{ matrix.kindimage }}
version: v0.11.0
version: v0.11.1
- name: Configuring and testing the Installation
run: |
@@ -84,9 +83,8 @@ jobs:
- name: Build and Install Fission CLI
run: |
go build -o fission cmd/fission-cli/main.go
sudo mv fission /usr/local/bin
fission version
sudo make install-fission-cli
sudo chmod +x /usr/local/bin/fission
- name: Port-forward fission components
run: |
@@ -94,6 +92,10 @@ jobs:
kubectl port-forward svc/controller 8889:80 -nfission &
kubectl port-forward svc/nats-streaming 8890:4222 -nfission &
- name: Get fission version
run: |
fission version
- name: Integration tests
run: ./test/kind_CI.sh
+9 -3
View File
@@ -23,7 +23,12 @@ on:
jobs:
upgrade-test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
kindimage : [ 'kindest/node:v1.19.11' ]
os: [ ubuntu-latest ]
steps:
- name: Checkout action sources
uses: actions/checkout@v2.3.4
@@ -41,13 +46,14 @@ jobs:
- name: Setup Kind Clutser
uses: engineerd/setup-kind@v0.5.0
with:
config: kind.yaml
image: ${{ matrix.kindimage }}
version: v0.11.1
- name: Setup kubectl & fetch node information
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig --internal >$HOME/.kube/config
kubectl get nodes
kubectl get storageclasses.storage.k8s.io
- name: Dump system info
run: |
+1 -1
View File
@@ -72,7 +72,7 @@ all-fission-cli:
$(MAKE) fission-cli GOOS=darwin GOARCH=amd64
install-fission-cli: fission-cli
mv $(BINDIR)/fission-$(VERSION)-$(GOOS)-$(GOARCH)$(FISSION-CLI-SUFFIX) /usr/local/bin/
mv $(BINDIR)/fission-$(VERSION)-$(GOOS)-$(GOARCH)$(FISSION-CLI-SUFFIX) /usr/local/bin/fission
### Container images
FISSION_IMGS := fission-bundle-multiarch-img \
+75 -78
View File
@@ -1,116 +1,113 @@
#!/bin/bash
set -eu
ns="f-ns"
ns="fission"
ROOT=$(pwd)
REPO="docker.io/library"
PREV_STABLE_VERSION=1.12.0
HELM_VARS_LATEST_RELEASE="helmVars=repository=docker.io/library,image=fission-bundle,pullPolicy=IfNotPresent,imageTag=latest,fetcher.image=docker.io/library/fetcher,fetcher.imageTag=latest,postInstallReportImage=reporter,preUpgradeChecksImage=preupgradechecks"
PREV_STABLE_VERSION=1.13.1
HELM_VARS_LATEST_RELEASE="routerServiceType=NodePort,repository=docker.io/library,image=fission-bundle,pullPolicy=IfNotPresent,imageTag=latest,fetcher.image=docker.io/library/fetcher,fetcher.imageTag=latest,postInstallReportImage=reporter,preUpgradeChecksImage=preupgradechecks"
getVersion () {
echo $(git rev-parse HEAD)
doit() {
echo "! $*"
"$@"
}
getDate () {
echo $(date -u +'%Y-%m-%dT%H:%M:%SZ')
}
getGitCommit () {
echo $(git rev-parse HEAD)
}
dump_system_info () {
dump_system_info() {
echo "System Info"
go version
docker version
kubectl version
helm version
doit go version
doit docker version
doit kubectl version
doit helm version
}
install_stable_release () {
echo "Creating namespace $ns"
kubectl create ns $ns
echo "Installing Fission $PREV_STABLE_VERSION"
helm install \
--namespace $ns \
--name-template fission \
https://github.com/fission/fission/releases/download/${PREV_STABLE_VERSION}/fission-all-${PREV_STABLE_VERSION}.tgz
mkdir temp && cd temp && curl -Lo fission https://github.com/fission/fission/releases/download/${PREV_STABLE_VERSION}/fission-cli-linux && chmod +x fission && sudo mv fission /usr/local/bin/ && cd .. && rm -rf temp
sleep 10 # This sleep is required here to become all pods active.
}
install_stable_release() {
doit helm repo add fission-charts https://fission.github.io/fission-charts/
doit helm repo update
create_fission_objects () {
echo "Creating namespace $ns"
doit kubectl create ns $ns
echo "Creating CRDs"
doit kubectl create -k "github.com/fission/fission/crds/v1?ref=$PREV_STABLE_VERSION"
echo "Installing Fission $PREV_STABLE_VERSION"
doit helm install --debug --wait --version $PREV_STABLE_VERSION \
--namespace $ns fission fission-charts/fission-all --set routerServiceType=NodePort
echo "Download fission cli $PREV_STABLE_VERSION"
curl -Lo fission https://github.com/fission/fission/releases/download/$PREV_STABLE_VERSION/fission-$PREV_STABLE_VERSION-linux-amd64 && chmod +x fission && sudo mv fission /usr/local/bin/
doit fission version
}
create_fission_objects() {
echo "-----------------#########################################--------------------"
echo " Preparing for fission object creation"
echo "-----------------#########################################--------------------"
echo "Creating function environment."
if fission env create --name nodejs --image fission/node-env:latest
then
echo "Successfully created function environment"
else
echo "Environemnt creation failed"
if fission env create --name nodejs --image fission/node-env:latest; then
echo "Successfully created function environment"
else
echo "Environemnt creation failed"
exit 1
fi
echo "Creating function"
curl -LO https://raw.githubusercontent.com/fission/examples/master/nodejs/hello.js
if fission function create --name hello --env nodejs --code hello.js
then
echo "Successfully created function"
else
echo "Function creation failed"
exit
if fission function create --name hello --env nodejs --code hello.js; then
echo "Successfully created function"
else
echo "Function creation failed"
exit 1
fi
sleep 5
}
test_fission_objects () {
test_fission_objects() {
fission env list
fission function list
echo "-----------------###############################--------------------"
echo " Running fission object tests"
echo "-----------------###############################--------------------"
if fission function test --name hello
then
echo "----------------------**********************-------------------------"
echo " Test success"
echo "----------------------**********************-------------------------"
else
echo "----------------------**********************-------------------------"
echo " Test failed"
echo "----------------------**********************-------------------------"
if fission function test --name hello; then
echo "----------------------**********************-------------------------"
echo " Test success"
echo "----------------------**********************-------------------------"
else
echo "----------------------**********************-------------------------"
echo " Test failed"
echo "----------------------**********************-------------------------"
exit 1
fi
}
build_docker_images () {
build_docker_images() {
echo "Building new docker images"
docker build -t fission-bundle -f cmd/fission-bundle/Dockerfile.fission-bundle .
docker build -t fetcher -f cmd/fetcher/Dockerfile.fission-fetcher .
docker build -t builder -f cmd/builder/Dockerfile.fission-builder .
docker build -t reporter -f cmd/reporter/Dockerfile.reporter .
docker build -t preupgradechecks -f cmd/preupgradechecks/Dockerfile.fission-preupgradechecks .
doit docker build -t fission-bundle -f cmd/fission-bundle/Dockerfile.fission-bundle .
doit docker build -t fetcher -f cmd/fetcher/Dockerfile.fission-fetcher .
doit docker build -t builder -f cmd/builder/Dockerfile.fission-builder .
doit docker build -t reporter -f cmd/reporter/Dockerfile.reporter .
doit docker build -t preupgradechecks -f cmd/preupgradechecks/Dockerfile.fission-preupgradechecks .
}
kind_image_load () {
kind_image_load() {
echo "Loading Docker images into Kind cluster."
kind load docker-image fission-bundle --name kind
kind load docker-image fetcher --name kind
kind load docker-image builder --name kind
kind load docker-image reporter --name kind
kind load docker-image preupgradechecks --name kind
}
doit kind load docker-image fission-bundle --name kind
doit kind load docker-image fetcher --name kind
doit kind load docker-image builder --name kind
doit kind load docker-image reporter --name kind
doit kind load docker-image preupgradechecks --name kind
}
install_fission_cli () {
install_fission_cli() {
echo "Installing new Fission cli"
go build -ldflags \
"-X github.com/fission/fission/pkg/info.GitCommit=$(getGitCommit) \
-X github.com/fission/fission/pkg/info.BuildDate=$(getDate) \
-X github.com/fission/fission/pkg/info.Version=$(getVersion)" \
-o fission ./cmd/fission-cli/main.go
chmod +x fission && sudo mv fission /usr/local/bin/
doit sudo make install-fission-cli
sudo chmod +x /usr/local/bin/fission
}
install_current_release () {
install_current_release() {
echo "Running Fission upgrade"
helm dependency update $ROOT/charts/fission-all
kubectl replace -k crds/v1
helm upgrade --namespace $ns --set $HELM_VARS_LATEST_RELEASE fission $ROOT/charts/fission-all
doit helm dependency update "$ROOT"/charts/fission-all
doit make update-crds
doit helm upgrade --debug --wait --namespace $ns --set $HELM_VARS_LATEST_RELEASE fission "$ROOT"/charts/fission-all
}
"$@"
"$@"