omni/hack/compose/docker-compose.yml
Edward Sammut Alessi 9521b30294
Some checks are pending
default / default (push) Waiting to run
default / e2e-backups (push) Blocked by required conditions
default / e2e-cluster-import (push) Blocked by required conditions
default / e2e-forced-removal (push) Blocked by required conditions
default / e2e-omni-upgrade (push) Blocked by required conditions
default / e2e-scaling (push) Blocked by required conditions
default / e2e-short (push) Blocked by required conditions
default / e2e-short-secureboot (push) Blocked by required conditions
default / e2e-templates (push) Blocked by required conditions
default / e2e-upgrades (push) Blocked by required conditions
default / e2e-workload-proxy (push) Blocked by required conditions
chore: switch from bun to node
Switch from bun to node. Also replaces bun test with vitest. Updated apexcharts to satisfy peerDependencies and removed unused dependencies. Fixed type issues that were being silently missed in the previous setup.

Fixes #1398

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2025-08-07 19:50:03 +02:00

144 lines
3.9 KiB
YAML

# Copyright (c) 2025 Sidero Labs, Inc.
#
# Use of this software is governed by the Business Source License
# included in the LICENSE file.
services:
omni:
network_mode: host
devices:
- /dev/net/tun
depends_on:
- vault-dev
- node-dev
- minio-mc
volumes:
- etcd:/_out/etcd
- logs:/_out/logs
- secondary-storage:/_out/secondary-storage
- etcd-backup:/tmp/omni-data/etcd-backup
- audit-logs:/tmp/omni-data/audit-logs
- ../generate-certs/certs:/etc/ssl/omni-certs:ro
container_name: local-omni
restart: on-failure
cap_add:
- NET_ADMIN
build:
context: ../../
dockerfile: Dockerfile
args:
- ARTIFACTS=${ARTIFACTS:?error}
- SHA=${SHA:?error}
- TAG=${TAG:?error}
- USERNAME=${USERNAME:?error}
- REGISTRY=${REGISTRY:?error}
- JS_TOOLCHAIN=${JS_TOOLCHAIN:?error}
- PROTOBUF_GRPC_GATEWAY_TS_VERSION=${PROTOBUF_GRPC_GATEWAY_TS_VERSION:?error}
- NODE_BUILD_ARGS=${NODE_BUILD_ARGS}
- TOOLCHAIN=${TOOLCHAIN:?error}
- CGO_ENABLED=${CGO_ENABLED:?error}
- GO_BUILDFLAGS=${GO_BUILDFLAGS}
- GOLANGCILINT_VERSION=${GOLANGCILINT_VERSION:?error}
- GOFUMPT_VERSION=${GOFUMPT_VERSION:?error}
- GOIMPORTS_VERSION=${GOIMPORTS_VERSION:?error}
- GOMOCK_VERSION=${GOMOCK_VERSION:?error}
- PROTOBUF_GO_VERSION=${PROTOBUF_GO_VERSION:?error}
- GRPC_GO_VERSION=${GRPC_GO_VERSION:?error}
- GRPC_GATEWAY_VERSION=${GRPC_GATEWAY_VERSION:?error}
- VTPROTOBUF_VERSION=${VTPROTOBUF_VERSION:?error}
- DEEPCOPY_VERSION=${DEEPCOPY_VERSION:?error}
- TESTPKGS=${TESTPKGS:?error}
- GO_LDFLAGS=${GO_LDFLAGS}
- GOEXPERIMENT=${GOEXPERIMENT}
- GOTOOLCHAIN=${GOTOOLCHAIN}
environment:
- VAULT_ADDR=http://127.0.0.1:8200
- VAULT_TOKEN=dev-o-token
- SIDEROLINK_DEV_JOIN_TOKEN=w7uVuW3zbVKIYQuzEcyetAHeYMeo5q2L9RvkAVfCfSCD
vault-dev:
container_name: local-vault
image: hashicorp/vault:1.18
environment:
- VAULT_DEV_ROOT_TOKEN_ID=dev-o-token
cap_add:
- IPC_LOCK
ports:
- "127.0.0.1:8200:8200"
vault-startup:
depends_on:
- vault-dev
restart: on-failure
container_name: local-vault-init
image: hashicorp/vault:1.18
volumes:
- ../../internal/backend/runtime/omni/testdata/pgp/new_key.private:/tmp/key.private:ro
environment:
- VAULT_ADDR=http://vault-dev:8200
- VAULT_TOKEN=dev-o-token
entrypoint: >-
vault kv put
-mount=secret
omni-private-key
private-key=@/tmp/key.private
|| sleep 15 && exit 1
node-dev:
network_mode: host
container_name: local-node
image: node:22-alpine
volumes:
- ../../frontend:/app:rw
working_dir: /app
command: sh -c 'npm i && npm run serve'
stop_signal: SIGKILL
minio-server:
image: minio/minio:latest
volumes:
- minio:/minio-server
ports:
- "127.0.0.1:9000:9000"
environment:
MINIO_ACCESS_KEY: access
MINIO_SECRET_KEY: secret123
command: server /minio-server/export
prometheus:
network_mode: host
image: prom/prometheus
depends_on:
- omni
ports:
- "9090:9090"
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
minio-mc:
image: minio/mc:latest
container_name: minio-mc
depends_on:
- minio-server
entrypoint: /bin/sh
restart: on-failure
command: -c "mc alias set myminio http://minio-server:9000 access secret123 && mc mb --ignore-existing myminio/mybucket"
omni-inspector:
image: ghcr.io/siderolabs/omni-inspector:latest
container_name: omni-inspector
depends_on:
- omni
network_mode: host
restart: on-failure
command: >-
--omni-debug=${WITH_DEBUG:-false}
volumes:
etcd:
logs:
minio:
secondary-storage:
etcd-backup:
audit-logs: