Update images for all architectures for Swarm

Updates armhf, arm64 and x86_64 - queue-worker moves to multi-
arch image. gateway and basic-auth are updated, along with NATS
which has been done in faas-netes for some time now.

Closes: #1539 (partial PR)
Fixes #1537

Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
This commit is contained in:
Alex Ellis (OpenFaaS Ltd) 2020-06-15 19:32:19 +01:00 committed by Alex Ellis
parent 64e340e4bd
commit d0ebb19fd9
4 changed files with 77 additions and 74 deletions

View File

@ -50,6 +50,12 @@
* Other diagnostic information / logs from [troubleshooting guide](https://docs.openfaas.com/deployment/troubleshooting) * 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 ## Next steps
You may [join Slack](https://docs.openfaas.com/community) for community support. You may [join Slack](https://docs.openfaas.com/community) for community support.

View File

@ -3,22 +3,22 @@ services:
gateway: gateway:
ports: ports:
- 8080:8080 - 8080:8080
image: openfaas/gateway:0.18.13-arm64 image: openfaas/gateway:0.18.17-arm64
networks: networks:
- functions - functions
environment: environment:
functions_provider_url: "http://faas-swarm:8080/" functions_provider_url: "http://faas-swarm:8080/"
read_timeout: "5m5s" # Maximum time to read HTTP request read_timeout: "5m5s" # Maximum time to read HTTP request
write_timeout: "5m5s" # Maximum time to write HTTP response write_timeout: "5m5s" # Maximum time to write HTTP response
upstream_timeout: "5m" # Maximum duration of upstream function call - should be more than read_timeout and write_timeout upstream_timeout: "5m" # Maximum duration of upstream function call - should be more than read_timeout and write_timeout
dnsrr: "true" # Temporarily use dnsrr in place of VIP while issue persists on PWD dnsrr: "true" # Temporarily use dnsrr in place of VIP while issue persists on PWD
faas_nats_address: "nats" faas_nats_address: "nats"
faas_nats_port: 4222 faas_nats_port: 4222
direct_functions: "true" # Functions are invoked directly over the overlay network direct_functions: "true" # Functions are invoked directly over the overlay network
direct_functions_suffix: "" direct_functions_suffix: ""
basic_auth: "${BASIC_AUTH:-false}" basic_auth: "${BASIC_AUTH:-false}"
secret_mount_path: "/run/secrets/" secret_mount_path: "/run/secrets/"
scale_from_zero: "true" # Enable if you want functions to scale from 0/0 to min replica count upon invoke scale_from_zero: "true" # Enable if you want functions to scale from 0/0 to min replica count upon invoke
max_idle_conns: 1024 max_idle_conns: 1024
max_idle_conns_per_host: 1024 max_idle_conns_per_host: 1024
auth_proxy_url: "${AUTH_URL:-}" auth_proxy_url: "${AUTH_URL:-}"
@ -36,14 +36,14 @@ services:
window: 380s window: 380s
placement: placement:
constraints: constraints:
- 'node.platform.os == linux' - "node.platform.os == linux"
secrets: secrets:
- basic-auth-user - basic-auth-user
- basic-auth-password - basic-auth-password
# auth service provide basic-auth plugin for system APIs # auth service provide basic-auth plugin for system APIs
basic-auth-plugin: basic-auth-plugin:
image: openfaas/basic-auth-plugin:0.18.13-arm64 image: openfaas/basic-auth-plugin:0.18.17-arm64
networks: networks:
- functions - functions
environment: environment:
@ -69,7 +69,6 @@ services:
- basic-auth-user - basic-auth-user
- basic-auth-password - basic-auth-password
# Docker Swarm provider # Docker Swarm provider
faas-swarm: faas-swarm:
volumes: volumes:
@ -78,18 +77,16 @@ services:
networks: networks:
- functions - functions
environment: environment:
read_timeout: "5m5s" # set both here, and on your functions read_timeout: "5m5s" # set both here, and on your functions
write_timeout: "5m5s" # set both here, and on your functions write_timeout: "5m5s" # set both here, and on your functions
DOCKER_API_VERSION: "1.30" DOCKER_API_VERSION: "1.30"
basic_auth: "${BASIC_AUTH:-false}" basic_auth: "${BASIC_AUTH:-false}"
secret_mount_path: "/run/secrets/" secret_mount_path: "/run/secrets/"
gateway_invoke: "true"
faas_gateway_address: "gateway"
deploy: deploy:
placement: placement:
constraints: constraints:
- 'node.role == manager' - "node.role == manager"
- 'node.platform.os == linux' - "node.platform.os == linux"
resources: resources:
# limits: # Enable if you want to limit memory usage # limits: # Enable if you want to limit memory usage
# memory: 100M # memory: 100M
@ -105,7 +102,7 @@ services:
- basic-auth-password - basic-auth-password
nats: nats:
image: nats-streaming:0.11.2 image: nats-streaming:0.17.0
# Uncomment the following port mappings if you wish to expose the # Uncomment the following port mappings if you wish to expose the
# NATS client and/or management ports you must also add `-m 8222` to the command # NATS client and/or management ports you must also add `-m 8222` to the command
# ports: # ports:
@ -122,17 +119,19 @@ services:
memory: 50M memory: 50M
placement: placement:
constraints: constraints:
- 'node.platform.os == linux' - "node.platform.os == linux"
queue-worker: queue-worker:
image: openfaas/queue-worker:0.9.0-arm64 image: openfaas/queue-worker:0.11.2
networks: networks:
- functions - functions
environment: environment:
max_inflight: "1" max_inflight: "1"
ack_wait: "5m5s" # Max duration of any async task / request ack_wait: "5m5s" # Max duration of any async task / request
basic_auth: "${BASIC_AUTH:-false}" basic_auth: "${BASIC_AUTH:-false}"
secret_mount_path: "/run/secrets/" secret_mount_path: "/run/secrets/"
gateway_invoke: "true"
faas_gateway_address: "gateway"
deploy: deploy:
resources: resources:
limits: limits:
@ -146,7 +145,7 @@ services:
window: 380s window: 380s
placement: placement:
constraints: constraints:
- 'node.platform.os == linux' - "node.platform.os == linux"
secrets: secrets:
- basic-auth-user - basic-auth-user
- basic-auth-password - basic-auth-password
@ -160,12 +159,12 @@ services:
environment: environment:
no_proxy: "gateway" no_proxy: "gateway"
configs: configs:
- source: prometheus_config - source: prometheus_config
target: /etc/prometheus/prometheus.yml target: /etc/prometheus/prometheus.yml
- source: prometheus_rules - source: prometheus_rules
target: /etc/prometheus/alert.rules.yml target: /etc/prometheus/alert.rules.yml
command: command:
- '--config.file=/etc/prometheus/prometheus.yml' - "--config.file=/etc/prometheus/prometheus.yml"
# - '-storage.local.path=/prometheus' # - '-storage.local.path=/prometheus'
ports: ports:
- 9090:9090 - 9090:9090
@ -174,8 +173,8 @@ services:
deploy: deploy:
placement: placement:
constraints: constraints:
- 'node.role == manager' - "node.role == manager"
- 'node.platform.os == linux' - "node.platform.os == linux"
resources: resources:
limits: limits:
memory: 500M memory: 500M
@ -187,8 +186,8 @@ services:
environment: environment:
no_proxy: "gateway" no_proxy: "gateway"
command: command:
- '--config.file=/alertmanager.yml' - "--config.file=/alertmanager.yml"
- '--storage.path=/alertmanager' - "--storage.path=/alertmanager"
networks: networks:
- functions - functions
# Uncomment the following port mapping if you wish to expose the Prometheus # Uncomment the following port mapping if you wish to expose the Prometheus
@ -203,29 +202,28 @@ services:
memory: 20M memory: 20M
placement: placement:
constraints: constraints:
- 'node.role == manager' - "node.role == manager"
- 'node.platform.os == linux' - "node.platform.os == linux"
configs: configs:
- source: alertmanager_config - source: alertmanager_config
target: /alertmanager.yml target: /alertmanager.yml
secrets: secrets:
- basic-auth-password - basic-auth-password
configs: configs:
prometheus_config: prometheus_config:
file: ./prometheus/prometheus.yml file: ./prometheus/prometheus.yml
prometheus_rules: prometheus_rules:
file: ./prometheus/alert.rules.yml file: ./prometheus/alert.rules.yml
alertmanager_config: alertmanager_config:
file: ./prometheus/alertmanager.yml file: ./prometheus/alertmanager.yml
networks: networks:
functions: functions:
driver: overlay driver: overlay
attachable: true attachable: true
labels: labels:
- "openfaas=true" - "openfaas=true"
secrets: secrets:
basic-auth-user: basic-auth-user:

View File

@ -3,7 +3,7 @@ services:
gateway: gateway:
ports: ports:
- 8080:8080 - 8080:8080
image: openfaas/gateway:0.18.13-armhf image: openfaas/gateway:0.18.17-armhf
networks: networks:
- functions - functions
environment: environment:
@ -43,7 +43,7 @@ services:
# auth service provide basic-auth plugin for system APIs # auth service provide basic-auth plugin for system APIs
basic-auth-plugin: basic-auth-plugin:
image: openfaas/basic-auth-plugin:0.18.13-armhf image: openfaas/basic-auth-plugin:0.18.17-armhf
networks: networks:
- functions - functions
environment: environment:
@ -77,16 +77,16 @@ services:
networks: networks:
- functions - functions
environment: environment:
read_timeout: "5m5s" # set both here, and on your functions read_timeout: "5m5s" # set both here, and on your functions
write_timeout: "5m5s" # set both here, and on your functions write_timeout: "5m5s" # set both here, and on your functions
DOCKER_API_VERSION: "1.30" DOCKER_API_VERSION: "1.30"
basic_auth: "${BASIC_AUTH:-false}" basic_auth: "${BASIC_AUTH:-false}"
secret_mount_path: "/run/secrets/" secret_mount_path: "/run/secrets/"
deploy: deploy:
placement: placement:
constraints: constraints:
- 'node.role == manager' - "node.role == manager"
- 'node.platform.os == linux' - "node.platform.os == linux"
resources: resources:
# limits: # Enable if you want to limit memory usage # limits: # Enable if you want to limit memory usage
# memory: 100M # memory: 100M
@ -102,7 +102,7 @@ services:
- basic-auth-password - basic-auth-password
nats: nats:
image: nats-streaming:0.11.2 image: nats-streaming:0.17.0
# Uncomment the following port mappings if you wish to expose the # Uncomment the following port mappings if you wish to expose the
# NATS client and/or management ports you must also add `-m 8222` to the command # NATS client and/or management ports you must also add `-m 8222` to the command
# ports: # ports:
@ -119,15 +119,15 @@ services:
memory: 50M memory: 50M
placement: placement:
constraints: constraints:
- 'node.platform.os == linux' - "node.platform.os == linux"
queue-worker: queue-worker:
image: openfaas/queue-worker:0.9.0-armhf image: openfaas/queue-worker:0.11.2
networks: networks:
- functions - functions
environment: environment:
max_inflight: "1" max_inflight: "1"
ack_wait: "5m5s" # Max duration of any async task / request ack_wait: "5m5s" # Max duration of any async task / request
basic_auth: "${BASIC_AUTH:-false}" basic_auth: "${BASIC_AUTH:-false}"
secret_mount_path: "/run/secrets/" secret_mount_path: "/run/secrets/"
gateway_invoke: "true" gateway_invoke: "true"
@ -145,7 +145,7 @@ services:
window: 380s window: 380s
placement: placement:
constraints: constraints:
- 'node.platform.os == linux' - "node.platform.os == linux"
secrets: secrets:
- basic-auth-user - basic-auth-user
- basic-auth-password - basic-auth-password
@ -159,12 +159,12 @@ services:
environment: environment:
no_proxy: "gateway" no_proxy: "gateway"
configs: configs:
- source: prometheus_config - source: prometheus_config
target: /etc/prometheus/prometheus.yml target: /etc/prometheus/prometheus.yml
- source: prometheus_rules - source: prometheus_rules
target: /etc/prometheus/alert.rules.yml target: /etc/prometheus/alert.rules.yml
command: command:
- '--config.file=/etc/prometheus/prometheus.yml' - "--config.file=/etc/prometheus/prometheus.yml"
# - '-storage.local.path=/prometheus' # - '-storage.local.path=/prometheus'
ports: ports:
- 9090:9090 - 9090:9090
@ -173,8 +173,8 @@ services:
deploy: deploy:
placement: placement:
constraints: constraints:
- 'node.role == manager' - "node.role == manager"
- 'node.platform.os == linux' - "node.platform.os == linux"
resources: resources:
limits: limits:
memory: 500M memory: 500M
@ -186,8 +186,8 @@ services:
environment: environment:
no_proxy: "gateway" no_proxy: "gateway"
command: command:
- '--config.file=/alertmanager.yml' - "--config.file=/alertmanager.yml"
- '--storage.path=/alertmanager' - "--storage.path=/alertmanager"
networks: networks:
- functions - functions
# Uncomment the following port mapping if you wish to expose the Prometheus # Uncomment the following port mapping if you wish to expose the Prometheus
@ -202,29 +202,28 @@ services:
memory: 20M memory: 20M
placement: placement:
constraints: constraints:
- 'node.role == manager' - "node.role == manager"
- 'node.platform.os == linux' - "node.platform.os == linux"
configs: configs:
- source: alertmanager_config - source: alertmanager_config
target: /alertmanager.yml target: /alertmanager.yml
secrets: secrets:
- basic-auth-password - basic-auth-password
configs: configs:
prometheus_config: prometheus_config:
file: ./prometheus/prometheus.yml file: ./prometheus/prometheus.yml
prometheus_rules: prometheus_rules:
file: ./prometheus/alert.rules.yml file: ./prometheus/alert.rules.yml
alertmanager_config: alertmanager_config:
file: ./prometheus/alertmanager.yml file: ./prometheus/alertmanager.yml
networks: networks:
functions: functions:
driver: overlay driver: overlay
attachable: true attachable: true
labels: labels:
- "openfaas=true" - "openfaas=true"
secrets: secrets:
basic-auth-user: basic-auth-user:

View File

@ -3,7 +3,7 @@ services:
gateway: gateway:
ports: ports:
- 8080:8080 - 8080:8080
image: openfaas/gateway:0.18.13 image: openfaas/gateway:0.18.17
networks: networks:
- functions - functions
environment: environment:
@ -43,7 +43,7 @@ services:
# auth service provide basic-auth plugin for system APIs # auth service provide basic-auth plugin for system APIs
basic-auth-plugin: basic-auth-plugin:
image: openfaas/basic-auth-plugin:0.18.13 image: openfaas/basic-auth-plugin:0.18.17
networks: networks:
- functions - functions
environment: environment:
@ -102,7 +102,7 @@ services:
- basic-auth-password - basic-auth-password
nats: nats:
image: nats-streaming:0.11.2 image: nats-streaming:0.17.0
# Uncomment the following port mappings if you wish to expose the # Uncomment the following port mappings if you wish to expose the
# NATS client and/or management ports you must also add `-m 8222` to the command # NATS client and/or management ports you must also add `-m 8222` to the command
# ports: # ports:
@ -122,7 +122,7 @@ services:
- "node.platform.os == linux" - "node.platform.os == linux"
queue-worker: queue-worker:
image: openfaas/queue-worker:0.10.0 image: openfaas/queue-worker:0.11.2
networks: networks:
- functions - functions
environment: environment: