diff --git a/moldes/consolidado/70-runtime-core.yaml b/moldes/consolidado/70-runtime-core.yaml index dbeb506..59f4004 100644 --- a/moldes/consolidado/70-runtime-core.yaml +++ b/moldes/consolidado/70-runtime-core.yaml @@ -19,6 +19,32 @@ spec: app: runtime-core athleticmap.io/contexto: runtime-core spec: + # Espera o LOGIN no banco do tenant funcionar antes de subir o runtime. + # O Argo aplica este Deployment ANTES de a etapa BANCO_CRIADO criar o papel + # e a linha no PgBouncer. Sem esta espera o runtime cai na subida, e o + # Kubernetes o religa com espera crescente (10 s, 20 s, 40 s, 80 s...): + # era isso que levava a etapa MIGRACOES_CONCLUIDAS a 4-5 min (P4.9). + # Aqui o laco e de 2 s e nao ha queda — o runtime sobe logo que o banco existe. + initContainers: + - name: espera-banco + image: docker.io/library/postgres:16 + imagePullPolicy: Never + command: ["sh", "-c"] + args: + - | + n=0 + until psql "host=pgbouncer.plataforma-prod.svc port=6432 dbname=athleticmap_{{TENANT}} user=r_{{TENANT}} connect_timeout=3" -Atc 'select 1' >/dev/null 2>&1; do + n=$((n+1)); [ $((n % 15)) -eq 0 ] && echo "ainda sem o banco do tenant ($((n*2)) s)" + sleep 2 + done + echo "banco pronto" + env: + - name: PGPASSWORD + valueFrom: + secretKeyRef: { name: db-credentials, key: password } + resources: + requests: { cpu: 10m, memory: 16Mi } + limits: { cpu: 100m, memory: 64Mi } containers: - name: runtime-core image: docker.io/library/runtime-core:1.3-vinculo-keycloak diff --git a/moldes/consolidado/71-runtime-operacao.yaml b/moldes/consolidado/71-runtime-operacao.yaml index cf6bbc6..0c224c0 100644 --- a/moldes/consolidado/71-runtime-operacao.yaml +++ b/moldes/consolidado/71-runtime-operacao.yaml @@ -19,6 +19,32 @@ spec: app: runtime-operacao athleticmap.io/contexto: runtime-operacao spec: + # Espera o LOGIN no banco do tenant funcionar antes de subir o runtime. + # O Argo aplica este Deployment ANTES de a etapa BANCO_CRIADO criar o papel + # e a linha no PgBouncer. Sem esta espera o runtime cai na subida, e o + # Kubernetes o religa com espera crescente (10 s, 20 s, 40 s, 80 s...): + # era isso que levava a etapa MIGRACOES_CONCLUIDAS a 4-5 min (P4.9). + # Aqui o laco e de 2 s e nao ha queda — o runtime sobe logo que o banco existe. + initContainers: + - name: espera-banco + image: docker.io/library/postgres:16 + imagePullPolicy: Never + command: ["sh", "-c"] + args: + - | + n=0 + until psql "host=pgbouncer.plataforma-prod.svc port=6432 dbname=athleticmap_{{TENANT}} user=r_{{TENANT}} connect_timeout=3" -Atc 'select 1' >/dev/null 2>&1; do + n=$((n+1)); [ $((n % 15)) -eq 0 ] && echo "ainda sem o banco do tenant ($((n*2)) s)" + sleep 2 + done + echo "banco pronto" + env: + - name: PGPASSWORD + valueFrom: + secretKeyRef: { name: db-credentials, key: password } + resources: + requests: { cpu: 10m, memory: 16Mi } + limits: { cpu: 100m, memory: 64Mi } containers: - name: runtime-operacao image: docker.io/library/runtime-operacao:1.3-split-1.20 diff --git a/moldes/consolidado/72-runtime-saude.yaml b/moldes/consolidado/72-runtime-saude.yaml index 51acc25..0f3cbbd 100644 --- a/moldes/consolidado/72-runtime-saude.yaml +++ b/moldes/consolidado/72-runtime-saude.yaml @@ -19,6 +19,32 @@ spec: app: runtime-saude athleticmap.io/contexto: runtime-saude spec: + # Espera o LOGIN no banco do tenant funcionar antes de subir o runtime. + # O Argo aplica este Deployment ANTES de a etapa BANCO_CRIADO criar o papel + # e a linha no PgBouncer. Sem esta espera o runtime cai na subida, e o + # Kubernetes o religa com espera crescente (10 s, 20 s, 40 s, 80 s...): + # era isso que levava a etapa MIGRACOES_CONCLUIDAS a 4-5 min (P4.9). + # Aqui o laco e de 2 s e nao ha queda — o runtime sobe logo que o banco existe. + initContainers: + - name: espera-banco + image: docker.io/library/postgres:16 + imagePullPolicy: Never + command: ["sh", "-c"] + args: + - | + n=0 + until psql "host=pgbouncer.plataforma-prod.svc port=6432 dbname=athleticmap_{{TENANT}} user=r_{{TENANT}} connect_timeout=3" -Atc 'select 1' >/dev/null 2>&1; do + n=$((n+1)); [ $((n % 15)) -eq 0 ] && echo "ainda sem o banco do tenant ($((n*2)) s)" + sleep 2 + done + echo "banco pronto" + env: + - name: PGPASSWORD + valueFrom: + secretKeyRef: { name: db-credentials, key: password } + resources: + requests: { cpu: 10m, memory: 16Mi } + limits: { cpu: 100m, memory: 64Mi } containers: - name: runtime-saude image: docker.io/library/runtime-saude:1.2-demo diff --git a/tenants/teste5/70-runtime-core.yaml b/tenants/teste5/70-runtime-core.yaml index 9db49f7..5f725fd 100644 --- a/tenants/teste5/70-runtime-core.yaml +++ b/tenants/teste5/70-runtime-core.yaml @@ -19,6 +19,32 @@ spec: app: runtime-core athleticmap.io/contexto: runtime-core spec: + # Espera o LOGIN no banco do tenant funcionar antes de subir o runtime. + # O Argo aplica este Deployment ANTES de a etapa BANCO_CRIADO criar o papel + # e a linha no PgBouncer. Sem esta espera o runtime cai na subida, e o + # Kubernetes o religa com espera crescente (10 s, 20 s, 40 s, 80 s...): + # era isso que levava a etapa MIGRACOES_CONCLUIDAS a 4-5 min (P4.9). + # Aqui o laco e de 2 s e nao ha queda — o runtime sobe logo que o banco existe. + initContainers: + - name: espera-banco + image: docker.io/library/postgres:16 + imagePullPolicy: Never + command: ["sh", "-c"] + args: + - | + n=0 + until psql "host=pgbouncer.plataforma-prod.svc port=6432 dbname=athleticmap_teste5 user=r_teste5 connect_timeout=3" -Atc 'select 1' >/dev/null 2>&1; do + n=$((n+1)); [ $((n % 15)) -eq 0 ] && echo "ainda sem o banco do tenant ($((n*2)) s)" + sleep 2 + done + echo "banco pronto" + env: + - name: PGPASSWORD + valueFrom: + secretKeyRef: { name: db-credentials, key: password } + resources: + requests: { cpu: 10m, memory: 16Mi } + limits: { cpu: 100m, memory: 64Mi } containers: - name: runtime-core image: docker.io/library/runtime-core:1.3-vinculo-keycloak diff --git a/tenants/teste5/71-runtime-operacao.yaml b/tenants/teste5/71-runtime-operacao.yaml index b7fd5e1..eb92639 100644 --- a/tenants/teste5/71-runtime-operacao.yaml +++ b/tenants/teste5/71-runtime-operacao.yaml @@ -19,6 +19,32 @@ spec: app: runtime-operacao athleticmap.io/contexto: runtime-operacao spec: + # Espera o LOGIN no banco do tenant funcionar antes de subir o runtime. + # O Argo aplica este Deployment ANTES de a etapa BANCO_CRIADO criar o papel + # e a linha no PgBouncer. Sem esta espera o runtime cai na subida, e o + # Kubernetes o religa com espera crescente (10 s, 20 s, 40 s, 80 s...): + # era isso que levava a etapa MIGRACOES_CONCLUIDAS a 4-5 min (P4.9). + # Aqui o laco e de 2 s e nao ha queda — o runtime sobe logo que o banco existe. + initContainers: + - name: espera-banco + image: docker.io/library/postgres:16 + imagePullPolicy: Never + command: ["sh", "-c"] + args: + - | + n=0 + until psql "host=pgbouncer.plataforma-prod.svc port=6432 dbname=athleticmap_teste5 user=r_teste5 connect_timeout=3" -Atc 'select 1' >/dev/null 2>&1; do + n=$((n+1)); [ $((n % 15)) -eq 0 ] && echo "ainda sem o banco do tenant ($((n*2)) s)" + sleep 2 + done + echo "banco pronto" + env: + - name: PGPASSWORD + valueFrom: + secretKeyRef: { name: db-credentials, key: password } + resources: + requests: { cpu: 10m, memory: 16Mi } + limits: { cpu: 100m, memory: 64Mi } containers: - name: runtime-operacao image: docker.io/library/runtime-operacao:1.5-filas-do-asaas diff --git a/tenants/teste5/72-runtime-saude.yaml b/tenants/teste5/72-runtime-saude.yaml index 95068e2..aff3318 100644 --- a/tenants/teste5/72-runtime-saude.yaml +++ b/tenants/teste5/72-runtime-saude.yaml @@ -19,6 +19,32 @@ spec: app: runtime-saude athleticmap.io/contexto: runtime-saude spec: + # Espera o LOGIN no banco do tenant funcionar antes de subir o runtime. + # O Argo aplica este Deployment ANTES de a etapa BANCO_CRIADO criar o papel + # e a linha no PgBouncer. Sem esta espera o runtime cai na subida, e o + # Kubernetes o religa com espera crescente (10 s, 20 s, 40 s, 80 s...): + # era isso que levava a etapa MIGRACOES_CONCLUIDAS a 4-5 min (P4.9). + # Aqui o laco e de 2 s e nao ha queda — o runtime sobe logo que o banco existe. + initContainers: + - name: espera-banco + image: docker.io/library/postgres:16 + imagePullPolicy: Never + command: ["sh", "-c"] + args: + - | + n=0 + until psql "host=pgbouncer.plataforma-prod.svc port=6432 dbname=athleticmap_teste5 user=r_teste5 connect_timeout=3" -Atc 'select 1' >/dev/null 2>&1; do + n=$((n+1)); [ $((n % 15)) -eq 0 ] && echo "ainda sem o banco do tenant ($((n*2)) s)" + sleep 2 + done + echo "banco pronto" + env: + - name: PGPASSWORD + valueFrom: + secretKeyRef: { name: db-credentials, key: password } + resources: + requests: { cpu: 10m, memory: 16Mi } + limits: { cpu: 100m, memory: 64Mi } containers: - name: runtime-saude image: docker.io/library/runtime-saude:1.2-demo