Move kamal deploy config to the gem

This commit is contained in:
Jorge Manrubia
2025-11-23 05:45:58 +01:00
committed by Jorge Manrubia
parent 35b49a417d
commit 2c7079393a
6 changed files with 28 additions and 0 deletions
-53
View File
@@ -1,53 +0,0 @@
servers:
web:
hosts:
- fizzy-beta-app-01.sc-chi-int.37signals.com: sc_chi
- fizzy-beta-app-101.df-iad-int.37signals.com: df_iad
labels:
otel_scrape_enabled: true
# we don't run the jobs role in beta
allow_empty_roles: true
proxy:
ssl: false
ssh:
user: app
env:
clear:
RAILS_ENV: beta
MYSQL_DATABASE_HOST: fizzy-mysql-primary
MYSQL_DATABASE_REPLICA_HOST: fizzy-mysql-replica
MYSQL_SOLID_CABLE_HOST: fizzy-mysql-primary
MYSQL_SOLID_QUEUE_HOST: fizzy-mysql-primary
MYSQL_SOLID_CACHE_HOST: fizzy-beta-solidcache-db-101
secret:
- RAILS_MASTER_KEY
- MYSQL_ALTER_PASSWORD
- MYSQL_ALTER_USER
- MYSQL_APP_PASSWORD
- MYSQL_APP_USER
- MYSQL_READONLY_PASSWORD
- MYSQL_READONLY_USER
tags:
sc_chi: {}
df_iad:
PRIMARY_DATACENTER: true
df_ams: {}
accessories:
load-balancer:
image: basecamp/kamal-proxy:lb
host: fizzy-beta-lb-01.sc-chi-int.37signals.com
labels:
otel_role: load-balancer
otel_service: fizzy-load-balancer
otel_scrape_enabled: true
options:
publish:
- 80:80
- 443:443
volumes:
- load-balancer:/home/kamal-proxy/.config/kamal-proxy
-72
View File
@@ -1,72 +0,0 @@
servers:
web:
hosts:
- fizzy-app-01.sc-chi-int.37signals.com: sc_chi
- fizzy-app-02.sc-chi-int.37signals.com: sc_chi
- fizzy-app-101.df-iad-int.37signals.com: df_iad
- fizzy-app-102.df-iad-int.37signals.com: df_iad
- fizzy-app-401.df-ams-int.37signals.com: df_ams
- fizzy-app-402.df-ams-int.37signals.com: df_ams
labels:
otel_scrape_enabled: true
jobs:
hosts:
- fizzy-jobs-101.df-iad-int.37signals.com: df_iad
- fizzy-jobs-102.df-iad-int.37signals.com: df_iad
labels:
otel_scrape_enabled: true
proxy:
ssl: false
ssh:
user: app
env:
clear:
RAILS_ENV: production
MYSQL_DATABASE_HOST: fizzy-mysql-primary
MYSQL_DATABASE_REPLICA_HOST: fizzy-mysql-replica
MYSQL_SOLID_CABLE_HOST: fizzy-mysql-primary
MYSQL_SOLID_QUEUE_HOST: fizzy-mysql-primary
secret:
- RAILS_MASTER_KEY
- MYSQL_ALTER_PASSWORD
- MYSQL_ALTER_USER
- MYSQL_APP_PASSWORD
- MYSQL_APP_USER
- MYSQL_READONLY_PASSWORD
- MYSQL_READONLY_USER
tags:
sc_chi:
MYSQL_SOLID_CACHE_HOST: fizzy-solidcache-db-01.sc-chi-int.37signals.com
df_iad:
MYSQL_SOLID_CACHE_HOST: fizzy-solidcache-db-101.df-iad-int.37signals.com
PRIMARY_DATACENTER: true
df_ams:
MYSQL_SOLID_CACHE_HOST: fizzy-solidcache-db-401.df-ams-int.37signals.com
accessories:
load-balancer:
image: basecamp/kamal-proxy:lb
hosts:
- fizzy-lb-101.df-iad-int.37signals.com
- fizzy-lb-102.df-iad-int.37signals.com
- fizzy-lb-01.sc-chi-int.37signals.com
- fizzy-lb-02.sc-chi-int.37signals.com
- fizzy-lb-401.df-ams-int.37signals.com
- fizzy-lb-402.df-ams-int.37signals.com
labels:
otel_role: load-balancer
otel_service: fizzy-load-balancer
otel_scrape_enabled: true
options:
publish:
- 80:80
- 443:443
# NFS mount for certificates
# See https://3.basecamp.com/2914079/buckets/37331921/todos/9180260061
mount: type=volume,src=certificates,dst=/certificates,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/fizzy-production-certificates,"volume-opt=o=addr=purestorage.sc-chi-int.37signals.com,nfsvers=3,rw,noatime,nconnect=8,soft,timeo=30,retrans=2"
volumes:
- load-balancer:/home/kamal-proxy/.config/kamal-proxy
-69
View File
@@ -1,69 +0,0 @@
servers:
web:
hosts:
- fizzy-staging-app-101.df-iad-int.37signals.com: df_iad
- fizzy-staging-app-102.df-iad-int.37signals.com: df_iad
- fizzy-staging-app-01.sc-chi-int.37signals.com: sc_chi
- fizzy-staging-app-02.sc-chi-int.37signals.com: sc_chi
- fizzy-staging-app-401.df-ams-int.37signals.com: df_ams
- fizzy-staging-app-402.df-ams-int.37signals.com: df_ams
labels:
otel_scrape_enabled: true
jobs:
hosts:
- fizzy-staging-jobs-101.df-iad-int.37signals.com: df_iad
- fizzy-staging-jobs-102.df-iad-int.37signals.com: df_iad
labels:
otel_scrape_enabled: true
proxy:
ssl: false
ssh:
user: app
env:
clear:
RAILS_ENV: staging
MYSQL_DATABASE_HOST: fizzy-staging-mysql-primary
MYSQL_DATABASE_REPLICA_HOST: fizzy-staging-mysql-replica
MYSQL_SOLID_CABLE_HOST: fizzy-staging-mysql-primary
MYSQL_SOLID_QUEUE_HOST: fizzy-staging-mysql-primary
secret:
- RAILS_MASTER_KEY
- MYSQL_ALTER_PASSWORD
- MYSQL_ALTER_USER
- MYSQL_APP_PASSWORD
- MYSQL_APP_USER
- MYSQL_READONLY_PASSWORD
- MYSQL_READONLY_USER
tags:
sc_chi:
MYSQL_SOLID_CACHE_HOST: fizzy-staging-solidcache-db-01.sc-chi-int.37signals.com
df_iad:
MYSQL_SOLID_CACHE_HOST: fizzy-staging-solidcache-db-101.df-iad-int.37signals.com
PRIMARY_DATACENTER: true
df_ams:
MYSQL_SOLID_CACHE_HOST: fizzy-staging-solidcache-db-401.df-ams-int.37signals.com
accessories:
load-balancer:
image: basecamp/kamal-proxy:lb
hosts:
- fizzy-staging-lb-01.sc-chi-int.37signals.com
- fizzy-staging-lb-101.df-iad-int.37signals.com
- fizzy-staging-lb-401.df-ams-int.37signals.com
labels:
otel_role: load-balancer
otel_service: fizzy-load-balancer
otel_scrape_enabled: true
options:
publish:
- 80:80
- 443:443
# NFS mount for certificates
# See https://3.basecamp.com/2914079/buckets/37331921/todos/9180260061
mount: type=volume,src=certificates,dst=/certificates,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/fizzy-staging-certificates,"volume-opt=o=addr=purestorage.sc-chi-int.37signals.com,nfsvers=3,rw,noatime,nconnect=8,soft,timeo=30,retrans=2"
volumes:
- load-balancer:/home/kamal-proxy/.config/kamal-proxy
-34
View File
@@ -1,34 +0,0 @@
service: fizzy
image: basecamp/fizzy
asset_path: /rails/public/assets
servers:
jobs:
cmd: bin/jobs
volumes:
- fizzy:/rails/storage
proxy:
ssl: true
registry:
server: registry.37signals.com
username: robot$harbor-bot
password:
- BASECAMP_REGISTRY_PASSWORD
builder:
arch: amd64
secrets:
- GITHUB_TOKEN
remote: ssh://app@docker-builder-102
local: <%= ENV.fetch("KAMAL_BUILDER_LOCAL", "true") %>
env:
secret:
- RAILS_MASTER_KEY
aliases:
console: app exec -i --reuse "bin/rails console"
ssh: app exec -i --reuse /bin/bash