From 3f98c856e5bdad8ce6560261f9b06909b5c298a5 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" <alexellis2@gmail.com> Date: Wed, 16 Dec 2020 10:01:21 +0000 Subject: [PATCH] Remove Swarm references Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com> --- .github/ISSUE_TEMPLATE.md | 7 +- api-docs/swagger.yml | 2 +- contrib/ci.sh | 85 ------------------ docs/managing-images.md | 104 ---------------------- gateway/README.md | 4 +- gateway/assets/templates/newfunction.html | 2 +- sample-functions/README.md | 2 +- 7 files changed, 6 insertions(+), 200 deletions(-) delete mode 100755 contrib/ci.sh delete mode 100644 docs/managing-images.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 7ccb120b..c5dbebcb 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -42,7 +42,7 @@ * Docker version `docker version` (e.g. Docker 17.0.05 ): -* Are you using Docker Swarm or Kubernetes (FaaS-netes)? +* Are you using Kubernetes or faasd? * Operating System and version (e.g. Linux, Windows, MacOS): @@ -50,11 +50,6 @@ * Other diagnostic information / logs from [troubleshooting guide](https://docs.openfaas.com/deployment/troubleshooting) -If using Swarm, run the following and include the output: - -``` -curl -sLS https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh | bash -``` ## Next steps diff --git a/api-docs/swagger.yml b/api-docs/swagger.yml index 0e0f1917..1e2710e3 100644 --- a/api-docs/swagger.yml +++ b/api-docs/swagger.yml @@ -461,7 +461,7 @@ definitions: example: nodeinfo network: type: string - description: Docker swarm network, usually func_functions + description: Network, usually func_functions for Swarm (deprecated) example: func_functions image: type: string diff --git a/contrib/ci.sh b/contrib/ci.sh deleted file mode 100755 index 6d8ac9c7..00000000 --- a/contrib/ci.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -docker swarm init --advertise-addr=127.0.0.1 -set -e - -./deploy_stack.sh --no-auth - -# The timeout is required on Travis due to some tasks not starting in -# time and being deemed to have failed. -docker service update func_gateway --image=ghcr.io/openfaas/gateway:latest-dev \ - --update-failure-action=continue \ - --update-monitor=20s - -# 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" - status_code=$(curl --silent --output /dev/stderr --write-out "%{http_code}" http://127.0.0.1:8080/) - - 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 .. - -if [ -z "$GOPATH" ] -then - export GOPATH=$GITHUB_WORKSPACE -fi - -if [ ! -d "$GOPATH/src/github.com/openfaas/" ]; then - mkdir -p $GOPATH/src/github.com/openfaas/ -fi - -if [ ! -d "$GOPATH/src/github.com/openfaas/certifier" ]; then - git clone https://github.com/openfaas/certifier -fi - -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 -count=1 - -echo Running certifier -export OPENFAAS_URL=http://127.0.0.1:8080/ -cd $GOPATH/src/github.com/openfaas/certifier && \ - make test-swarm - -echo Integration tests all PASSED -exit 0 diff --git a/docs/managing-images.md b/docs/managing-images.md deleted file mode 100644 index 3b1771e8..00000000 --- a/docs/managing-images.md +++ /dev/null @@ -1,104 +0,0 @@ -# Managing images - -Any Docker images you build for your FaaS functions need to be accessible by any Docker Swarm worker or manager in your cluster. The only exception is during development - when you may have a single-node cluster and the image is in your local image library. - -All images should be pushed to either a private repository or the Docker Hub: - -* Manually built FaaS images -* Images build with the FaaS-CLI - -Repositories that need authentication will require configuration when deploying your FaaS functions. - -## Using private Docker registries - -FaaS supports running functions from Docker images in private Docker registries. -The registry credentials can be passed on function deployment, and are then handled by Swarm for image polling. - -### Deploy functions with private registries credentials - -A `POST` request on `/system/function` allows you to specify private registry credentials, as a base64-encoded basic auth (user:password). -``` -curl -XPOST /system/functions -d { - "service": "functionName", - "image": "privateregistry.domain.com/user/function", - "envProcess": "/usr/bin/myprocess", - "network": "func_functions", - "registryAuth": "dXNlcjpwYXNzd29yZA==" -} -``` - -Base64-encoded basic auth can be resolved using your registry username and password: - -```` -$ echo -n "user:password" | base64 -```` - -or (to prevent tracking in `history` command): - -``` -$ base64 - -(type in) user:password (hit control+D twice) -``` - -You can also find this string your `~/.docker/config.json` file. Docker stores credentials here after you run the `docker login` command: - -``` -cat ~/.docker/config.json -{ - "auths": { - "privateregistry.domain.com": { - "auth": "dXNlcjpwYXNzd29yZA==" - } - } -} -``` - -### Deploy your own private Docker registry - -If you wish to deploy your own private registry, you can follow [Docker official documentation](https://docs.docker.com/registry/deploying/). - -A quick way to get started for a private registry with TLS and authentication -is to create a VM with port 443 open to the world (for letsencrypt registration), and a registered DNS ($YOURHOST). -Then, create these two files in the current directory: - -``` -# docker-compose.yml -version: '2' - -services: - - registry: - restart: always - image: registry:2 - ports: - - 5000:5000 - - 443:5000 - environment: - REGISTRY_AUTH: htpasswd - REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd - REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm - REGISTRY_HTTP_TLS_LETSENCRYPT_CACHEFILE: /letsencrypt/cache - REGISTRY_HTTP_TLS_LETSENCRYPT_EMAIL: your@email.com - volumes: - - ./data:/var/lib/registry - - ./auth:/auth - - ./letsencrypt:/letsencrypt -``` - -``` -# auth/htpasswd (generated with `docker run --entrypoint htpasswd registry:2 -Bbn testuser testpassword`) -testuser:$2y$05$Bl9siDMe7ieQHLM8e7ifaOklKrHmXymbMqfmqXs7zssj6MMGQW4le -``` - -Your registry is ready to be deployed by running `docker-compose up -d`. - -On the client machine, you can now login and use the newly setup registry: -``` -docker pull ubuntu && docker tag ubuntu $YOURHOST/ubuntu -docker login $YOURHOST # will add encoded registry credentials to ~/.docker/config.json - Username: testuser - Password: testpassword -docker push $YOURHOST/ubuntu -``` - -Images pushed to this registry can be used as functions with FaaS, provided you pass the appropriate `registryAuth` parameter at deployment time. diff --git a/gateway/README.md b/gateway/README.md index c35d6849..629dd270 100644 --- a/gateway/README.md +++ b/gateway/README.md @@ -2,7 +2,7 @@ The API Gateway provides an external route into your functions and collects Cloud Native metrics through Prometheus. The gateway also has a UI built-in which can be used to deploy your own functions or functions from the OpenFaaS Function Store then invoke them. -The gateway will scale functions according to demand by altering the service replica count in the Docker Swarm or Kubernetes API. Custom alerts generated by AlertManager are received on the /system/alert endpoint. +The gateway will scale functions according to demand by altering the service replica count in the Kubernetes API. Custom alerts generated by AlertManager are received on the /system/alert endpoint. In summary: @@ -19,7 +19,7 @@ In summary: ## Function Providers -Providers for functions can be written using the [faas-provider](https://github.com/openfaas/faas-provider/) interface in Golang which provides the REST API for interacting with the gateway. The gateway originally interacted with Docker Swarm directly and anything else via a Function Provider - this support was moved into a separate project [faas-swarm](https://github.com/openfaas/faas-swarm/). +Providers for functions can be written using the [faas-provider](https://github.com/openfaas/faas-provider/) interface in Golang which provides the REST API for interacting with the gateway. ## REST API diff --git a/gateway/assets/templates/newfunction.html b/gateway/assets/templates/newfunction.html index 2ee5f68f..67e314f2 100644 --- a/gateway/assets/templates/newfunction.html +++ b/gateway/assets/templates/newfunction.html @@ -54,7 +54,7 @@ <div layout-gt-xs="row"> <md-input-container class="md-block" flex-gt-sm> <md-tooltip md-direction="bottom">Docker Swarm network, not required for other providers. Default: func_functions</md-tooltip> - <label>Network (Swarm):</label> + <label>Network (Deprecated):</label> <input name="network" ng-model="item.network" md-maxlength="200" minlength="0"> </md-input-container> </div> diff --git a/sample-functions/README.md b/sample-functions/README.md index d0a10fdc..10ec543c 100644 --- a/sample-functions/README.md +++ b/sample-functions/README.md @@ -20,7 +20,7 @@ Here is a list of some of the sample functions included this repository. | Name | Details | |--------------------------|----------------------------------------- | | AlpineFunction | BusyBox - a useful base image with busybox utilities pre-installed | -| apikey-secret | Example in Golang showing how to read a secret from a HTTP header and validate with a Swarm/Kubernetes secret | +| apikey-secret | Example in Golang showing how to read a secret from a HTTP header and validate with a Kubernetes secret | | CaptainsIntent | Alexa skill - find the count of Docker Captains | | ChangeColorIntent | Alexa skill - change the colour of IoT-connected lights | | CHelloWorld | Use C to build a function | -- GitLab