Skip to content

Commit 441db22

Browse files
Add: Chatbox vendor service (ITISFoundation#1143)
* wip * Add csi-s3 and have portainer use it * Change request @Hrytsuk 1GB max portainer volume size * Arch Linux Certificates Customization * Fix pgsql exporter failure * [Kubernetes] Introduce on-prem persistent Storage (Longhorn) 🎉 (ITISFoundation#979) * Introduce longhorn chart * Further longhorn configuration * Longhorn: further settings configuration * Fix longhorn configuration bugs Extra: introduce longhorn pv vales for portainer * Add comment for deletion longhorn * Further longhorn configuration * Add README.md for Longhorn wit FAQ * Update Longhorn readme * Update readme * Futher LH configuration * Update LH's Readme * Update Longhorn Readme * Improve LH's Readme * LH: Reduce reserved default disk space to 5% Since we use a dedicated disk for LH, we can go ahead with 5% * Use values to set Longhorn storage class * Update LH's Readme * LH Readme: add requirements reference * PR Review: bring back portainer s3 pv * LH: decrease portinaer volume size * Experimental: Try to add tracing to simcore-traefik on master * Fixes ITISFoundation/osparc-simcore#7363 * Add chatbox vendor service * necessary reverts * Add resources, change names * wip * Add chat vendor service maintenanec mode --------- Co-authored-by: Dustin Kaiser <[email protected]> Co-authored-by: YH <[email protected]>
1 parent 67d6a91 commit 441db22

File tree

5 files changed

+51
-7
lines changed

5 files changed

+51
-7
lines changed

scripts/deployments/deploy_everything_locally.bash

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,4 +258,9 @@ if [ "$start_simcore" -eq 0 ]; then
258258
pushd "${service_dir}"
259259
call_make "." up-"$stack_target"
260260
popd
261+
log_info "starting vendor services..."
262+
service_dir="${repo_basedir}"/services/vendors
263+
pushd "${service_dir}"
264+
call_make "." up-"$stack_target"
265+
popd
261266
fi

services/maintenance-page/docker-compose.yml.j2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ services:
2828
- traefik.enable=true
2929
- traefik.swarm.network=${PUBLIC_NETWORK}
3030
- traefik.http.routers.{{"maintenance_" + j2item.replace('@','').replace(' ','').replace('.','').replace('-','').replace('\'','') + "_html"}}.priority={{MAINTENANCE_PAGES_TRAEFIK_PRIORITY}}
31+
- traefik.http.routers.{{"maintenance_" + j2item.replace('@','').replace(' ','').replace('.','').replace('-','').replace('\'','') + "_html"}}.rule=Host(`{{VENDOR_CHATBOT_SUBDOMAIN_PREFIX}}.{{j2item}}`) || (Host(`{{j2item}}`) && PathPrefix(`/`)) || (HostRegexp(`services.{{j2item}}`) && PathPrefix(`/`))
3132
- traefik.http.routers.{{"maintenance_" + j2item.replace('@','').replace(' ','').replace('.','').replace('-','').replace('\'','') + "_html"}}.rule=Host(`{{VENDOR_MANUAL_SUBDOMAIN_PREFIX}}.{{j2item}}`) || (Host(`{{j2item}}`) && PathPrefix(`/`)) || (HostRegexp(`services.{{j2item}}`) && PathPrefix(`/`))
3233
- traefik.http.routers.{{"maintenance_" + j2item.replace('@','').replace(' ','').replace('.','').replace('-','').replace('\'','') + "_html"}}.tls=true
3334
- traefik.http.services.{{"maintenance_" + j2item.replace('@','').replace(' ','').replace('.','').replace('-','').replace('\'','') + "_html"}}.loadbalancer.server.port=80

services/vendors/docker-compose.yml.j2

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services:
55
image: ${VENDOR_MANUAL_IMAGE}
66
init: true
77
{%- raw %}
8-
hostname: "{{.Node.Hostname}}-{{.Task.Slot}}"
8+
hostname: "v-manual-{{.Node.Hostname}}-{{.Task.Slot}}"
99
{%- endraw %}
1010
deploy:
1111
replicas: ${VENDOR_MANUAL_REPLICAS}
@@ -30,11 +30,45 @@ services:
3030
- traefik.http.services.vendor_manual.loadbalancer.server.port=${VENDOR_MANUAL_PORT}
3131
- traefik.http.routers.vendor_manual.entrypoints=https
3232
- traefik.http.routers.vendor_manual.tls=true
33-
- traefik.http.routers.vendor_manual.rule={{ generate_vendors_manual_traefik_rule(VENDOR_MANUAL_PRODUCTS, VENDOR_MANUAL_SUBDOMAIN_PREFIX) }}
33+
- traefik.http.routers.vendor_manual.rule={{ generate_vendors_traefik_rule(VENDOR_MANUAL_PRODUCTS, VENDOR_MANUAL_SUBDOMAIN_PREFIX) }}
3434
- traefik.http.routers.vendor_manual.middlewares=ops_gzip@swarm, authenticated_platform_user@swarm
3535
networks:
3636
- public
37-
37+
chat:
38+
image: ${VENDOR_CHATBOT_IMAGE}
39+
init: true
40+
{%- raw %}
41+
hostname: "v-chat-{{.Node.Hostname}}-{{.Task.Slot}}"
42+
{%- endraw %}
43+
deploy:
44+
replicas: ${VENDOR_CHATBOT_REPLICAS}
45+
placement:
46+
constraints:
47+
- node.labels.simcore==true
48+
resources:
49+
limits:
50+
cpus: "1.0"
51+
memory: 2.5G
52+
reservations:
53+
cpus: "0.1"
54+
memory: 512M
55+
update_config:
56+
parallelism: 1
57+
order: start-first
58+
failure_action: continue
59+
delay: 10s
60+
labels:
61+
- traefik.enable=true
62+
- traefik.swarm.network=${PUBLIC_NETWORK}
63+
- traefik.http.services.vendor_chat.loadbalancer.server.port=${VENDOR_CHATBOT_PORT}
64+
- traefik.http.routers.vendor_chat.entrypoints=https
65+
- traefik.http.routers.vendor_chat.tls=true
66+
- traefik.http.routers.vendor_chat.rule={{ generate_vendors_traefik_rule(VENDOR_CHATBOT_PRODUCTS, VENDOR_CHATBOT_SUBDOMAIN_PREFIX) }}
67+
- traefik.http.routers.vendor_chat.middlewares=authenticated_platform_user@swarm
68+
- prometheus-job=vendor-chat
69+
- prometheus-port=8000
70+
networks:
71+
- public
3872
networks:
3973
public:
4074
external: true
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
def _generate_vendors_manual_traefik_rule(domains: str, subdomain_prefix: str) -> str:
1+
def _generate_vendors_traefik_rule(domains: str, subdomain_prefix: str) -> str:
22
domain_list = domains.strip().strip(",").split(",")
33
domains = [f"{subdomain_prefix}.{domain}" for domain in domain_list]
44
return " || ".join(f"Host(`{d}`)" for d in domains)
55

66

77
def j2_environment(env):
8-
env.globals.update(
9-
generate_vendors_manual_traefik_rule=_generate_vendors_manual_traefik_rule
10-
)
8+
env.globals.update(generate_vendors_traefik_rule=_generate_vendors_traefik_rule)
119
return env

services/vendors/template.env

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,10 @@ VENDOR_MANUAL_REPLICAS=${VENDOR_MANUAL_REPLICAS}
33
VENDOR_MANUAL_SUBDOMAIN_PREFIX=${VENDOR_MANUAL_SUBDOMAIN_PREFIX}
44
VENDOR_MANUAL_PRODUCTS=${VENDOR_MANUAL_PRODUCTS}
55
VENDOR_MANUAL_PORT=${VENDOR_MANUAL_PORT}
6+
VENDOR_CHATBOT_IMAGE=${VENDOR_CHATBOT_IMAGE}
7+
VENDOR_CHATBOT_REPLICAS=${VENDOR_CHATBOT_REPLICAS}
8+
VENDOR_CHATBOT_SUBDOMAIN_PREFIX=${VENDOR_CHATBOT_SUBDOMAIN_PREFIX}
9+
VENDOR_CHATBOT_PRODUCTS=${VENDOR_CHATBOT_PRODUCTS}
10+
VENDOR_CHATBOT_PORT=${VENDOR_CHATBOT_PORT}
611
PUBLIC_NETWORK=${PUBLIC_NETWORK}
12+
OTEL_EXPORTER_OTLP_ENDPOINT=${TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT}:${TRACING_OPENTELEMETRY_COLLECTOR_PORT}

0 commit comments

Comments
 (0)