fix: déclarer un routeur Traefik par portail
All checks were successful
Validation applicative / Tests de contrat (push) Successful in 15s
All checks were successful
Validation applicative / Tests de contrat (push) Successful in 15s
This commit is contained in:
@@ -9,10 +9,27 @@ services:
|
||||
- web
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.portail-recette.rule=Host(`portail.recette.santinova-soft.org`,`portail-itinova.recette.santinova-soft.org`,`portail-soins-et-sante.recette.santinova-soft.org`,`portail-santinova.recette.santinova-soft.org`,`portail-santelis.recette.santinova-soft.org`)"
|
||||
- "traefik.http.routers.portail-recette.entrypoints=websecure"
|
||||
- "traefik.http.routers.portail-recette.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.portail-recette.loadbalancer.server.port=3000"
|
||||
- "traefik.http.routers.portail-legacy-recette.rule=Host(`portail.recette.santinova-soft.org`)"
|
||||
- "traefik.http.routers.portail-legacy-recette.entrypoints=websecure"
|
||||
- "traefik.http.routers.portail-legacy-recette.tls=true"
|
||||
- "traefik.http.routers.portail-legacy-recette.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.portail-itinova-recette.rule=Host(`portail-itinova.recette.santinova-soft.org`)"
|
||||
- "traefik.http.routers.portail-itinova-recette.entrypoints=websecure"
|
||||
- "traefik.http.routers.portail-itinova-recette.tls=true"
|
||||
- "traefik.http.routers.portail-itinova-recette.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.portail-soins-recette.rule=Host(`portail-soins-et-sante.recette.santinova-soft.org`)"
|
||||
- "traefik.http.routers.portail-soins-recette.entrypoints=websecure"
|
||||
- "traefik.http.routers.portail-soins-recette.tls=true"
|
||||
- "traefik.http.routers.portail-soins-recette.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.portail-santinova-recette.rule=Host(`portail-santinova.recette.santinova-soft.org`)"
|
||||
- "traefik.http.routers.portail-santinova-recette.entrypoints=websecure"
|
||||
- "traefik.http.routers.portail-santinova-recette.tls=true"
|
||||
- "traefik.http.routers.portail-santinova-recette.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.portail-santelis-recette.rule=Host(`portail-santelis.recette.santinova-soft.org`)"
|
||||
- "traefik.http.routers.portail-santelis-recette.entrypoints=websecure"
|
||||
- "traefik.http.routers.portail-santelis-recette.tls=true"
|
||||
- "traefik.http.routers.portail-santelis-recette.tls.certresolver=letsencrypt"
|
||||
networks:
|
||||
web:
|
||||
external: true
|
||||
|
||||
@@ -10,6 +10,7 @@ const vm = require('node:vm');
|
||||
|
||||
const root = path.join(__dirname, '..');
|
||||
const html = fs.readFileSync(path.join(root, 'index.html'), 'utf8');
|
||||
const compose = fs.readFileSync(path.join(root, 'docker-compose.yml'), 'utf8');
|
||||
const script = html.match(/<script>([\s\S]*?)<\/script>/)?.[1];
|
||||
|
||||
assert.ok(script, 'le script de configuration des portails doit être présent');
|
||||
@@ -91,6 +92,20 @@ for (const [host, env, group, appsUrl] of expected) {
|
||||
assert.equal(sandbox.PORTAL.dashboardStatusUrl, appsUrl.replace('/apps', '/status'), `${host} doit appeler le bon endpoint statut`);
|
||||
}
|
||||
|
||||
for (const host of [hosts.itinovaRecette, hosts.soinsRecette, hosts.santinovaRecette, hosts.santelisRecette]) {
|
||||
assert.match(
|
||||
compose,
|
||||
new RegExp(`traefik\\.http\\.routers\\.portail-[a-z-]+\\.rule=Host\\(\\\`${host.replace(/\./g, '\\.') }\\\`\\)`),
|
||||
`${host} doit avoir un routeur Traefik dédié`
|
||||
);
|
||||
}
|
||||
assert.match(
|
||||
compose,
|
||||
/traefik\.http\.routers\.portail-legacy-recette\.rule=Host\(`portail\.recette\.santinova-soft\.org`\)/,
|
||||
'l’ancienne URL recette doit garder un routeur de redirection'
|
||||
);
|
||||
assert.equal((compose.match(/tls\.certresolver=letsencrypt/g) || []).length, 5, 'chaque routeur recette doit demander un certificat TLS');
|
||||
|
||||
const recetteApps = [
|
||||
{ id: 'itinova-contacts', category: 'ITINOVA', urls: { recette: 'https://contacts.recette.santinova-soft.org' } },
|
||||
{ id: 'gestion-astreintes-had', category: 'SOINS_ET_SANTE', urls: { recette: 'https://astreintes-had.recette.santinova-soft.org' } },
|
||||
|
||||
Reference in New Issue
Block a user