Use latest release for upgrade tests (#2097)
Fix upgrade CI flow and added checks at places required
This commit is contained in:
@@ -14,7 +14,6 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/*'
|
|
||||||
- '**.go'
|
- '**.go'
|
||||||
- 'charts/**'
|
- 'charts/**'
|
||||||
- 'test/**'
|
- 'test/**'
|
||||||
@@ -55,7 +54,7 @@ jobs:
|
|||||||
uses: engineerd/setup-kind@v0.5.0
|
uses: engineerd/setup-kind@v0.5.0
|
||||||
with:
|
with:
|
||||||
image: ${{ matrix.kindimage }}
|
image: ${{ matrix.kindimage }}
|
||||||
version: v0.11.0
|
version: v0.11.1
|
||||||
|
|
||||||
- name: Configuring and testing the Installation
|
- name: Configuring and testing the Installation
|
||||||
run: |
|
run: |
|
||||||
@@ -84,9 +83,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and Install Fission CLI
|
- name: Build and Install Fission CLI
|
||||||
run: |
|
run: |
|
||||||
go build -o fission cmd/fission-cli/main.go
|
sudo make install-fission-cli
|
||||||
sudo mv fission /usr/local/bin
|
sudo chmod +x /usr/local/bin/fission
|
||||||
fission version
|
|
||||||
|
|
||||||
- name: Port-forward fission components
|
- name: Port-forward fission components
|
||||||
run: |
|
run: |
|
||||||
@@ -94,6 +92,10 @@ jobs:
|
|||||||
kubectl port-forward svc/controller 8889:80 -nfission &
|
kubectl port-forward svc/controller 8889:80 -nfission &
|
||||||
kubectl port-forward svc/nats-streaming 8890:4222 -nfission &
|
kubectl port-forward svc/nats-streaming 8890:4222 -nfission &
|
||||||
|
|
||||||
|
- name: Get fission version
|
||||||
|
run: |
|
||||||
|
fission version
|
||||||
|
|
||||||
- name: Integration tests
|
- name: Integration tests
|
||||||
run: ./test/kind_CI.sh
|
run: ./test/kind_CI.sh
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,12 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
upgrade-test:
|
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:
|
steps:
|
||||||
- name: Checkout action sources
|
- name: Checkout action sources
|
||||||
uses: actions/checkout@v2.3.4
|
uses: actions/checkout@v2.3.4
|
||||||
@@ -41,13 +46,14 @@ jobs:
|
|||||||
- name: Setup Kind Clutser
|
- name: Setup Kind Clutser
|
||||||
uses: engineerd/setup-kind@v0.5.0
|
uses: engineerd/setup-kind@v0.5.0
|
||||||
with:
|
with:
|
||||||
config: kind.yaml
|
image: ${{ matrix.kindimage }}
|
||||||
|
version: v0.11.1
|
||||||
|
|
||||||
- name: Setup kubectl & fetch node information
|
- name: Setup kubectl & fetch node information
|
||||||
run: |
|
run: |
|
||||||
kubectl cluster-info --context kind-kind
|
kubectl cluster-info --context kind-kind
|
||||||
kind get kubeconfig --internal >$HOME/.kube/config
|
|
||||||
kubectl get nodes
|
kubectl get nodes
|
||||||
|
kubectl get storageclasses.storage.k8s.io
|
||||||
|
|
||||||
- name: Dump system info
|
- name: Dump system info
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ all-fission-cli:
|
|||||||
$(MAKE) fission-cli GOOS=darwin GOARCH=amd64
|
$(MAKE) fission-cli GOOS=darwin GOARCH=amd64
|
||||||
|
|
||||||
install-fission-cli: fission-cli
|
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
|
### Container images
|
||||||
FISSION_IMGS := fission-bundle-multiarch-img \
|
FISSION_IMGS := fission-bundle-multiarch-img \
|
||||||
|
|||||||
@@ -1,116 +1,113 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
ns="f-ns"
|
ns="fission"
|
||||||
ROOT=$(pwd)
|
ROOT=$(pwd)
|
||||||
REPO="docker.io/library"
|
PREV_STABLE_VERSION=1.13.1
|
||||||
PREV_STABLE_VERSION=1.12.0
|
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"
|
||||||
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"
|
|
||||||
|
|
||||||
getVersion () {
|
doit() {
|
||||||
echo $(git rev-parse HEAD)
|
echo "! $*"
|
||||||
|
"$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
getDate () {
|
dump_system_info() {
|
||||||
echo $(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
|
||||||
}
|
|
||||||
|
|
||||||
getGitCommit () {
|
|
||||||
echo $(git rev-parse HEAD)
|
|
||||||
}
|
|
||||||
|
|
||||||
dump_system_info () {
|
|
||||||
echo "System Info"
|
echo "System Info"
|
||||||
go version
|
doit go version
|
||||||
docker version
|
doit docker version
|
||||||
kubectl version
|
doit kubectl version
|
||||||
helm version
|
doit helm version
|
||||||
}
|
}
|
||||||
|
|
||||||
install_stable_release () {
|
install_stable_release() {
|
||||||
echo "Creating namespace $ns"
|
doit helm repo add fission-charts https://fission.github.io/fission-charts/
|
||||||
kubectl create ns $ns
|
doit helm repo update
|
||||||
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.
|
|
||||||
}
|
|
||||||
|
|
||||||
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 "-----------------#########################################--------------------"
|
||||||
echo " Preparing for fission object creation"
|
echo " Preparing for fission object creation"
|
||||||
echo "-----------------#########################################--------------------"
|
echo "-----------------#########################################--------------------"
|
||||||
echo "Creating function environment."
|
echo "Creating function environment."
|
||||||
if fission env create --name nodejs --image fission/node-env:latest
|
if fission env create --name nodejs --image fission/node-env:latest; then
|
||||||
then
|
echo "Successfully created function environment"
|
||||||
echo "Successfully created function environment"
|
else
|
||||||
else
|
echo "Environemnt creation failed"
|
||||||
echo "Environemnt creation failed"
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Creating function"
|
echo "Creating function"
|
||||||
curl -LO https://raw.githubusercontent.com/fission/examples/master/nodejs/hello.js
|
curl -LO https://raw.githubusercontent.com/fission/examples/master/nodejs/hello.js
|
||||||
if fission function create --name hello --env nodejs --code hello.js
|
if fission function create --name hello --env nodejs --code hello.js; then
|
||||||
then
|
echo "Successfully created function"
|
||||||
echo "Successfully created function"
|
else
|
||||||
else
|
echo "Function creation failed"
|
||||||
echo "Function creation failed"
|
exit 1
|
||||||
exit
|
|
||||||
fi
|
fi
|
||||||
|
sleep 5
|
||||||
}
|
}
|
||||||
|
|
||||||
test_fission_objects () {
|
test_fission_objects() {
|
||||||
|
fission env list
|
||||||
|
fission function list
|
||||||
echo "-----------------###############################--------------------"
|
echo "-----------------###############################--------------------"
|
||||||
echo " Running fission object tests"
|
echo " Running fission object tests"
|
||||||
echo "-----------------###############################--------------------"
|
echo "-----------------###############################--------------------"
|
||||||
if fission function test --name hello
|
if fission function test --name hello; then
|
||||||
then
|
echo "----------------------**********************-------------------------"
|
||||||
echo "----------------------**********************-------------------------"
|
echo " Test success"
|
||||||
echo " Test success"
|
echo "----------------------**********************-------------------------"
|
||||||
echo "----------------------**********************-------------------------"
|
else
|
||||||
else
|
echo "----------------------**********************-------------------------"
|
||||||
echo "----------------------**********************-------------------------"
|
echo " Test failed"
|
||||||
echo " Test failed"
|
echo "----------------------**********************-------------------------"
|
||||||
echo "----------------------**********************-------------------------"
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
build_docker_images () {
|
build_docker_images() {
|
||||||
echo "Building new docker images"
|
echo "Building new docker images"
|
||||||
docker build -t fission-bundle -f cmd/fission-bundle/Dockerfile.fission-bundle .
|
doit docker build -t fission-bundle -f cmd/fission-bundle/Dockerfile.fission-bundle .
|
||||||
docker build -t fetcher -f cmd/fetcher/Dockerfile.fission-fetcher .
|
doit docker build -t fetcher -f cmd/fetcher/Dockerfile.fission-fetcher .
|
||||||
docker build -t builder -f cmd/builder/Dockerfile.fission-builder .
|
doit docker build -t builder -f cmd/builder/Dockerfile.fission-builder .
|
||||||
docker build -t reporter -f cmd/reporter/Dockerfile.reporter .
|
doit docker build -t reporter -f cmd/reporter/Dockerfile.reporter .
|
||||||
docker build -t preupgradechecks -f cmd/preupgradechecks/Dockerfile.fission-preupgradechecks .
|
doit docker build -t preupgradechecks -f cmd/preupgradechecks/Dockerfile.fission-preupgradechecks .
|
||||||
}
|
}
|
||||||
|
|
||||||
kind_image_load () {
|
kind_image_load() {
|
||||||
echo "Loading Docker images into Kind cluster."
|
echo "Loading Docker images into Kind cluster."
|
||||||
kind load docker-image fission-bundle --name kind
|
doit kind load docker-image fission-bundle --name kind
|
||||||
kind load docker-image fetcher --name kind
|
doit kind load docker-image fetcher --name kind
|
||||||
kind load docker-image builder --name kind
|
doit kind load docker-image builder --name kind
|
||||||
kind load docker-image reporter --name kind
|
doit kind load docker-image reporter --name kind
|
||||||
kind load docker-image preupgradechecks --name kind
|
doit kind load docker-image preupgradechecks --name kind
|
||||||
}
|
}
|
||||||
|
|
||||||
install_fission_cli () {
|
install_fission_cli() {
|
||||||
echo "Installing new Fission cli"
|
echo "Installing new Fission cli"
|
||||||
go build -ldflags \
|
doit sudo make install-fission-cli
|
||||||
"-X github.com/fission/fission/pkg/info.GitCommit=$(getGitCommit) \
|
sudo chmod +x /usr/local/bin/fission
|
||||||
-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/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
install_current_release () {
|
install_current_release() {
|
||||||
echo "Running Fission upgrade"
|
echo "Running Fission upgrade"
|
||||||
helm dependency update $ROOT/charts/fission-all
|
doit helm dependency update "$ROOT"/charts/fission-all
|
||||||
kubectl replace -k crds/v1
|
doit make update-crds
|
||||||
helm upgrade --namespace $ns --set $HELM_VARS_LATEST_RELEASE fission $ROOT/charts/fission-all
|
doit helm upgrade --debug --wait --namespace $ns --set $HELM_VARS_LATEST_RELEASE fission "$ROOT"/charts/fission-all
|
||||||
}
|
}
|
||||||
|
|
||||||
"$@"
|
"$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user