diff --git a/.github/workflows/push_pr.yaml b/.github/workflows/push_pr.yaml index a532224f..3f65a4d3 100644 --- a/.github/workflows/push_pr.yaml +++ b/.github/workflows/push_pr.yaml @@ -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 diff --git a/.github/workflows/upgrade_test.yaml b/.github/workflows/upgrade_test.yaml index b9e7e808..1678db62 100644 --- a/.github/workflows/upgrade_test.yaml +++ b/.github/workflows/upgrade_test.yaml @@ -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: | diff --git a/Makefile b/Makefile index 9550112c..1547dbda 100644 --- a/Makefile +++ b/Makefile @@ -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 \ diff --git a/test/upgrade_test/fission_objects.sh b/test/upgrade_test/fission_objects.sh index 341d8264..41a25bd5 100644 --- a/test/upgrade_test/fission_objects.sh +++ b/test/upgrade_test/fission_objects.sh @@ -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 } -"$@" \ No newline at end of file +"$@"