feat: Add Quadlet definitions for core modules and Zot registry

- Added dev container definitions for billing, crm, repo, observability, projects, security, baas, and jobs modules
- Added Zot Registry container definition and configuration
This commit is contained in:
Tiago Yamamoto 2025-12-31 18:04:50 -03:00
parent ebb405c4e4
commit 176809f519
10 changed files with 223 additions and 0 deletions

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core Automation Jobs (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/automation-jobs-core:latest
ContainerName=core-automation-jobs-core-dev
Pull=always
EnvironmentFile=/mnt/data/core/automation-jobs-core/.env
PublishPort=12005:8080
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-automation-jobs-core-dev.rule=Host(`jobs-dev.rede5.com.br`)
Label=traefik.http.routers.core-automation-jobs-core-dev.entrypoints=websecure
Label=traefik.http.routers.core-automation-jobs-core-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-automation-jobs-core-dev.loadbalancer.server.port=8080
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core BaaS Control Plane (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/baas-control-plane:latest
ContainerName=core-baas-control-plane-dev
Pull=always
EnvironmentFile=/mnt/data/core/baas-control-plane/.env
PublishPort=11005:4000
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-baas-control-plane-dev.rule=Host(`baas-dev.rede5.com.br`)
Label=traefik.http.routers.core-baas-control-plane-dev.entrypoints=websecure
Label=traefik.http.routers.core-baas-control-plane-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-baas-control-plane-dev.loadbalancer.server.port=4000
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core Billing Finance Core (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/billing-finance-core:latest
ContainerName=core-billing-finance-core-dev
Pull=always
EnvironmentFile=/mnt/data/core/billing-finance-core/.env
PublishPort=5005:3000
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-billing-finance-core-dev.rule=Host(`billing-dev.rede5.com.br`)
Label=traefik.http.routers.core-billing-finance-core-dev.entrypoints=websecure
Label=traefik.http.routers.core-billing-finance-core-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-billing-finance-core-dev.loadbalancer.server.port=3000
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core CRM Core (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/crm-core:latest
ContainerName=core-crm-core-dev
Pull=always
EnvironmentFile=/mnt/data/core/crm-core/.env
PublishPort=6005:8080
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-crm-core-dev.rule=Host(`crm-dev.rede5.com.br`)
Label=traefik.http.routers.core-crm-core-dev.entrypoints=websecure
Label=traefik.http.routers.core-crm-core-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-crm-core-dev.loadbalancer.server.port=8080
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core Observability (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/observability-core:latest
ContainerName=core-observability-core-dev
Pull=always
EnvironmentFile=/mnt/data/core/observability-core/.env
PublishPort=8005:8080
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-observability-core-dev.rule=Host(`obs-dev.rede5.com.br`)
Label=traefik.http.routers.core-observability-core-dev.entrypoints=websecure
Label=traefik.http.routers.core-observability-core-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-observability-core-dev.loadbalancer.server.port=8080
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core Platform Projects (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/platform-projects-core:latest
ContainerName=core-platform-projects-core-dev
Pull=always
EnvironmentFile=/mnt/data/core/platform-projects-core/.env
PublishPort=9005:8080
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-platform-projects-core-dev.rule=Host(`projects-dev.rede5.com.br`)
Label=traefik.http.routers.core-platform-projects-core-dev.entrypoints=websecure
Label=traefik.http.routers.core-platform-projects-core-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-platform-projects-core-dev.loadbalancer.server.port=8080
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core Repo Integrations (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/repo-integrations-core:latest
ContainerName=core-repo-integrations-core-dev
Pull=always
EnvironmentFile=/mnt/data/core/repo-integrations-core/.env
PublishPort=7005:8080
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-repo-integrations-core-dev.rule=Host(`repo-dev.rede5.com.br`)
Label=traefik.http.routers.core-repo-integrations-core-dev.entrypoints=websecure
Label=traefik.http.routers.core-repo-integrations-core-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-repo-integrations-core-dev.loadbalancer.server.port=8080
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Core Security Governance (Ambiente Dev)
After=network-online.target postgres.service
[Service]
Restart=always
Environment=REGISTRY_AUTH_FILE=/run/user/0/containers/auth.json
[Container]
Image=rg.fr-par.scw.cloud/yumi/security-governance-core:latest
ContainerName=core-security-governance-core-dev
Pull=always
EnvironmentFile=/mnt/data/core/security-governance-core/.env
PublishPort=10005:8080
Network=web_proxy
Label=traefik.enable=true
Label=traefik.http.routers.core-security-governance-core-dev.rule=Host(`sec-dev.rede5.com.br`)
Label=traefik.http.routers.core-security-governance-core-dev.entrypoints=websecure
Label=traefik.http.routers.core-security-governance-core-dev.tls.certresolver=myresolver
Label=traefik.http.services.core-security-governance-core-dev.loadbalancer.server.port=8080
[Install]
WantedBy=multi-user.target

26
zot.container Normal file
View file

@ -0,0 +1,26 @@
[Unit]
Description=Zot Registry Container
After=network-online.target
[Service]
Restart=always
[Container]
Image=ghcr.io/project-zot/zot-linux-amd64:latest
ContainerName=zot
Pull=always
# Mount configuration
Volume=/mnt/data/core/zot/config.json:/etc/zot/config.json:Z
# Mount storage
Volume=/mnt/data/registry:/var/lib/registry:Z
# Network
Network=web_proxy
# Traefik Labels
Label=traefik.enable=true
Label=traefik.http.routers.zot.rule=Host(`zot-gru.rede5.com.br`)
Label=traefik.http.routers.zot.entrypoints=websecure
Label=traefik.http.routers.zot.tls.certresolver=myresolver
Label=traefik.http.services.zot.loadbalancer.server.port=5000
[Install]
WantedBy=multi-user.target

13
zot/config.json Normal file
View file

@ -0,0 +1,13 @@
{
"distSpecVersion": "1.1.0-dev",
"storage": {
"rootDirectory": "/var/lib/registry"
},
"http": {
"address": "0.0.0.0",
"port": "5000"
},
"log": {
"level": "debug"
}
}