mirror of
https://github.com/openfaas/faas.git
synced 2025-06-09 08:46:48 +00:00
Adds annotation attribute to CreateFunctionRequest
1. Add new annotation attributes which may be used by the back-end for making scheduling or routing decisions. 2. Updated tests/README.md to give clearer instructions on creating and tearing down the stack required to run the integration tests 3. Update ci.sh * Fail as soon as an error is encountered * Allow script to run locally in development environment, test if repos are already cloned etc.. * Deploy ./stack.yml used by existing integration tests Signed-off-by: Edward Wilde <ewilde@gmail.com>
This commit is contained in:
parent
9512f09d2b
commit
be907d220c
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,3 +4,5 @@ fwatchdog-armhf
|
||||
**/*.DS_Store
|
||||
.vscode
|
||||
.idea
|
||||
certifier
|
||||
.editorconfig
|
||||
|
@ -15,9 +15,8 @@ addons:
|
||||
before_install:
|
||||
|
||||
script:
|
||||
- sh build.sh
|
||||
# Invoke ci script too
|
||||
- sh contrib/ci.sh
|
||||
- ./build.sh
|
||||
- ./contrib/ci.sh
|
||||
|
||||
after_success:
|
||||
- if [ -z $DOCKER_NS ] ; then
|
||||
|
4
Makefile
4
Makefile
@ -1,6 +1,8 @@
|
||||
.PHONY: build
|
||||
.PHONY: build build-gateway test-ci
|
||||
|
||||
build:
|
||||
./build.sh
|
||||
build-gateway:
|
||||
(cd gateway; ./build.sh latest-dev)
|
||||
test-ci:
|
||||
./contrib/ci.sh
|
||||
|
@ -263,6 +263,16 @@ definitions:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Overrides to environmental variables
|
||||
labels:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: An array of labels used by the back-end for making scheduling or routing decisions
|
||||
annotations:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: An array of annotations used by the back-end for management, orchestration, events and build tasks
|
||||
secrets:
|
||||
type: array
|
||||
items:
|
||||
|
59
contrib/ci.sh
Normal file → Executable file
59
contrib/ci.sh
Normal file → Executable file
@ -1,39 +1,78 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker swarm init --advertise-addr=127.0.0.1
|
||||
set -e
|
||||
|
||||
./deploy_stack.sh --no-auth
|
||||
|
||||
docker service update func_gateway --image=openfaas/gateway:latest-dev
|
||||
|
||||
# Script makes sure OpenFaaS API gateway is ready before running tests
|
||||
|
||||
wait_success=false
|
||||
for i in {1..30};
|
||||
do
|
||||
echo "Checking if 127.0.0.1:8000 is up.. ${i}/30"
|
||||
curl -fs 127.0.0.1:8080/
|
||||
echo "Checking if 127.0.0.1:8000 is up.. ${i}/30"
|
||||
status_code=$(curl --silent --output /dev/stderr --write-out "%{http_code}" http://127.0.0.1:8080/)
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
if [ "$status_code" -ge 200 -a "$status_code" -lt 400 ]; then
|
||||
echo "Deploying gateway success"
|
||||
wait_success=true
|
||||
break
|
||||
fi
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
if [ "$wait_success" != true ] ; then
|
||||
echo "Failed to wait for gateway"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
echo $GOPATH
|
||||
|
||||
mkdir -p $GOPATH/src/github.com/openfaas/
|
||||
cp -r faas $GOPATH/src/github.com/openfaas/
|
||||
if [ ! -d "$GOPATH/src/github.com/openfaas/" ]; then
|
||||
mkdir -p $GOPATH/src/github.com/openfaas/
|
||||
cp -r faas $GOPATH/src/github.com/openfaas/
|
||||
fi
|
||||
|
||||
git clone https://github.com/openfaas/certifier
|
||||
if [ ! -d "$GOPATH/src/github.com/openfaas/certifier" ]; then
|
||||
git clone https://github.com/openfaas/certifier
|
||||
fi
|
||||
|
||||
cp -r certifier $GOPATH/src/github.com/openfaas/
|
||||
echo "Deploying OpenFaaS stack.yml from $(pwd)/faas"
|
||||
command -v faas-cli >/dev/null 2>&1 || curl -sSL https://cli.openfaas.com | sudo sh
|
||||
faas-cli deploy -f ./faas/stack.yml
|
||||
|
||||
wait_success=false
|
||||
for i in {1..30}
|
||||
do
|
||||
echo "Checking if 127.0.0.1:8080/function/echoit is up.. ${i}/30"
|
||||
status_code=$(curl --silent --output /dev/stderr --write-out "%{http_code}" http://127.0.0.1:8080/function/echoit -d "hello")
|
||||
|
||||
if [ "$status_code" -ge 200 -a "$status_code" -lt 400 ]; then
|
||||
echo "Deploying OpenFaaS stack.yml success"
|
||||
wait_success=true
|
||||
break
|
||||
else
|
||||
echo "Attempt $i lets try again"
|
||||
fi
|
||||
|
||||
printf '.'
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
if [ "$wait_success" != true ] ; then
|
||||
echo "Failed to wait for stack.yml to deploy"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo Running integration tests
|
||||
cd $GOPATH/src/github.com/openfaas/faas/gateway/tests/integration && \
|
||||
go test -v
|
||||
go test -v -count=1
|
||||
|
||||
echo Running certifier
|
||||
cd $GOPATH/src/github.com/openfaas/certifier && \
|
||||
make test
|
||||
|
||||
echo Integration tests all PASSED
|
||||
exit 0
|
||||
|
@ -36,6 +36,10 @@ type CreateFunctionRequest struct {
|
||||
// back-end for making scheduling or routing decisions
|
||||
Labels *map[string]string `json:"labels"`
|
||||
|
||||
// Annotations are metadata for functions which may be used by the
|
||||
// back-end for management, orchestration, events and build tasks
|
||||
Annotations *map[string]string `json:"annotations"`
|
||||
|
||||
// Limits for function
|
||||
Limits *FunctionResources `json:"limits"`
|
||||
|
||||
@ -67,6 +71,10 @@ type Function struct {
|
||||
// Labels are metadata for functions which may be used by the
|
||||
// back-end for making scheduling or routing decisions
|
||||
Labels *map[string]string `json:"labels"`
|
||||
|
||||
// Annotations are metadata for functions which may be used by the
|
||||
// back-end for management, orchestration, events and build tasks
|
||||
Annotations *map[string]string `json:"annotations"`
|
||||
}
|
||||
|
||||
// AsyncReport is the report from a function executed on a queue worker.
|
||||
|
@ -2,3 +2,15 @@
|
||||
|
||||
These tests should be run against the sample stack included in the repository root.
|
||||
|
||||
## Deploy the stack
|
||||
```
|
||||
./deploy_stack.sh
|
||||
faas-cli deploy -f ./stack.yml
|
||||
```
|
||||
|
||||
## Remove the stack
|
||||
1. Delete all OpenFaaS deployed functions
|
||||
```
|
||||
faas-cli remove
|
||||
docker stack rm func
|
||||
```
|
@ -34,7 +34,7 @@ func Test_InfoEndpoint_Returns_Gateway_Version_SHA_And_Message(t *testing.T) {
|
||||
gatewayInfo := &types.GatewayInfo{}
|
||||
err = json.Unmarshal([]byte(body), gatewayInfo)
|
||||
if err != nil {
|
||||
t.Log(err)
|
||||
t.Errorf("Could not unmarshal gateway info, response body:%s, error:%s", body, err.Error())
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
|
@ -3,17 +3,17 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"time"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
input, err := ioutil.ReadAll(os.Stdin)
|
||||
if err != nil {
|
||||
log.Fatalf("Cannot read input %s.\n", err)
|
||||
return
|
||||
return
|
||||
}
|
||||
now := time.Now()
|
||||
stamp := strconv.FormatInt(now.UnixNano(), 10)
|
||||
@ -21,7 +21,7 @@ func main() {
|
||||
writeErr := ioutil.WriteFile(stamp+".txt", input, 0644)
|
||||
if writeErr != nil {
|
||||
log.Fatalf("Cannot write input %s.\n", err)
|
||||
return
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf("Stashing request: %s.txt\n", stamp)
|
||||
|
Loading…
x
Reference in New Issue
Block a user