mirror of
https://github.com/Infisical/infisical.git
synced 2026-01-06 22:23:53 -05:00
262 lines
6.4 KiB
YAML
262 lines
6.4 KiB
YAML
version: "3"
|
|
|
|
services:
|
|
haproxy:
|
|
image: haproxy:latest
|
|
ports:
|
|
- '7001:7000'
|
|
- '5002:5433' # Postgres master
|
|
- '5003:5434' # Postgres read
|
|
- '6379:6379'
|
|
- '8080:8080'
|
|
networks:
|
|
- infisical
|
|
configs:
|
|
- source: haproxy-config
|
|
target: /usr/local/etc/haproxy/haproxy.cfg
|
|
deploy:
|
|
mode: global
|
|
|
|
infisical:
|
|
container_name: infisical-backend
|
|
image: infisical/infisical:v0.60.1-postgres
|
|
env_file: .env
|
|
networks:
|
|
- infisical
|
|
secrets:
|
|
- env_file
|
|
deploy:
|
|
replicas: 5
|
|
|
|
etcd1:
|
|
image: ghcr.io/zalando/spilo-16:3.2-p2
|
|
networks:
|
|
- infisical
|
|
environment:
|
|
ETCD_UNSUPPORTED_ARCH: arm64
|
|
container_name: demo-etcd1
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node1
|
|
hostname: etcd1
|
|
command: |
|
|
etcd --name etcd1
|
|
--listen-client-urls http://0.0.0.0:2379
|
|
--listen-peer-urls=http://0.0.0.0:2380
|
|
--advertise-client-urls http://etcd1:2379
|
|
--initial-cluster=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380
|
|
--initial-advertise-peer-urls=http://etcd1:2380
|
|
--initial-cluster-state=new
|
|
|
|
etcd2:
|
|
image: ghcr.io/zalando/spilo-16:3.2-p2
|
|
networks:
|
|
- infisical
|
|
environment:
|
|
ETCD_UNSUPPORTED_ARCH: arm64
|
|
container_name: demo-etcd2
|
|
hostname: etcd2
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node2
|
|
command: |
|
|
etcd --name etcd2
|
|
--listen-client-urls http://0.0.0.0:2379
|
|
--listen-peer-urls=http://0.0.0.0:2380
|
|
--advertise-client-urls http://etcd2:2379
|
|
--initial-cluster=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380
|
|
--initial-advertise-peer-urls=http://etcd2:2380
|
|
--initial-cluster-state=new
|
|
|
|
etcd3:
|
|
image: ghcr.io/zalando/spilo-16:3.2-p2
|
|
networks:
|
|
- infisical
|
|
environment:
|
|
ETCD_UNSUPPORTED_ARCH: arm64
|
|
container_name: demo-etcd3
|
|
hostname: etcd3
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node3
|
|
command: |
|
|
etcd --name etcd3
|
|
--listen-client-urls http://0.0.0.0:2379
|
|
--listen-peer-urls=http://0.0.0.0:2380
|
|
--advertise-client-urls http://etcd3:2379
|
|
--initial-cluster=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380
|
|
--initial-advertise-peer-urls=http://etcd3:2380
|
|
--initial-cluster-state=new
|
|
|
|
spolo1:
|
|
image: ghcr.io/zalando/spilo-16:3.2-p2
|
|
container_name: postgres-1
|
|
networks:
|
|
- infisical
|
|
hostname: postgres-1
|
|
environment:
|
|
ETCD_HOSTS: etcd1:2379,etcd2:2379,etcd3:2379
|
|
PGPASSWORD_SUPERUSER: "postgres"
|
|
PGUSER_SUPERUSER: "postgres"
|
|
SCOPE: infisical
|
|
volumes:
|
|
- postgres_data1:/home/postgres/pgdata
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node1
|
|
|
|
spolo2:
|
|
image: ghcr.io/zalando/spilo-16:3.2-p2
|
|
container_name: postgres-2
|
|
networks:
|
|
- infisical
|
|
hostname: postgres-2
|
|
environment:
|
|
ETCD_HOSTS: etcd1:2379,etcd2:2379,etcd3:2379
|
|
PGPASSWORD_SUPERUSER: "postgres"
|
|
PGUSER_SUPERUSER: "postgres"
|
|
SCOPE: infisical
|
|
volumes:
|
|
- postgres_data2:/home/postgres/pgdata
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node2
|
|
|
|
spolo3:
|
|
image: ghcr.io/zalando/spilo-16:3.2-p2
|
|
container_name: postgres-3
|
|
networks:
|
|
- infisical
|
|
hostname: postgres-3
|
|
environment:
|
|
ETCD_HOSTS: etcd1:2379,etcd2:2379,etcd3:2379
|
|
PGPASSWORD_SUPERUSER: "postgres"
|
|
PGUSER_SUPERUSER: "postgres"
|
|
SCOPE: infisical
|
|
volumes:
|
|
- postgres_data3:/home/postgres/pgdata
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node3
|
|
|
|
|
|
redis_replica0:
|
|
image: bitnami/redis:6.2.10
|
|
environment:
|
|
- REDIS_REPLICATION_MODE=master
|
|
- REDIS_PASSWORD=123456
|
|
networks:
|
|
- infisical
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node1
|
|
|
|
redis_replica1:
|
|
image: bitnami/redis:6.2.10
|
|
environment:
|
|
- REDIS_REPLICATION_MODE=slave
|
|
- REDIS_MASTER_HOST=redis_replica0
|
|
- REDIS_MASTER_PORT_NUMBER=6379
|
|
- REDIS_MASTER_PASSWORD=123456
|
|
- REDIS_PASSWORD=123456
|
|
networks:
|
|
- infisical
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node2
|
|
|
|
redis_replica2:
|
|
image: bitnami/redis:6.2.10
|
|
environment:
|
|
- REDIS_REPLICATION_MODE=slave
|
|
- REDIS_MASTER_HOST=redis_replica0
|
|
- REDIS_MASTER_PORT_NUMBER=6379
|
|
- REDIS_MASTER_PASSWORD=123456
|
|
- REDIS_PASSWORD=123456
|
|
networks:
|
|
- infisical
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node3
|
|
|
|
redis_sentinel1:
|
|
image: bitnami/redis-sentinel:6.2.10
|
|
environment:
|
|
- REDIS_SENTINEL_QUORUM=2
|
|
- REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=5000
|
|
- REDIS_SENTINEL_FAILOVER_TIMEOUT=60000
|
|
- REDIS_SENTINEL_PORT_NUMBER=26379
|
|
- REDIS_MASTER_HOST=redis_replica1
|
|
- REDIS_MASTER_PORT_NUMBER=6379
|
|
- REDIS_MASTER_PASSWORD=123456
|
|
networks:
|
|
- infisical
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node1
|
|
|
|
redis_sentinel2:
|
|
image: bitnami/redis-sentinel:6.2.10
|
|
environment:
|
|
- REDIS_SENTINEL_QUORUM=2
|
|
- REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=5000
|
|
- REDIS_SENTINEL_FAILOVER_TIMEOUT=60000
|
|
- REDIS_SENTINEL_PORT_NUMBER=26379
|
|
- REDIS_MASTER_HOST=redis_replica1
|
|
- REDIS_MASTER_PORT_NUMBER=6379
|
|
- REDIS_MASTER_PASSWORD=123456
|
|
networks:
|
|
- infisical
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node2
|
|
|
|
redis_sentinel3:
|
|
image: bitnami/redis-sentinel:6.2.10
|
|
environment:
|
|
- REDIS_SENTINEL_QUORUM=2
|
|
- REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=5000
|
|
- REDIS_SENTINEL_FAILOVER_TIMEOUT=60000
|
|
- REDIS_SENTINEL_PORT_NUMBER=26379
|
|
- REDIS_MASTER_HOST=redis_replica1
|
|
- REDIS_MASTER_PORT_NUMBER=6379
|
|
- REDIS_MASTER_PASSWORD=123456
|
|
networks:
|
|
- infisical
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.labels.name == node3
|
|
|
|
networks:
|
|
infisical:
|
|
|
|
|
|
volumes:
|
|
postgres_data1:
|
|
postgres_data2:
|
|
postgres_data3:
|
|
postgres_data4:
|
|
redis0:
|
|
redis1:
|
|
redis2:
|
|
|
|
configs:
|
|
haproxy-config:
|
|
file: ./haproxy.cfg
|
|
|
|
secrets:
|
|
env_file:
|
|
file: .env
|