ajoute la liaison Laravel-OpenStack et le modèle Heat du lab 08
Un gabarit Heat généré depuis chaque lab.yaml, une stack par session de lab (création à l'admission, suppression à l'expiration via des jobs Redis et un worker systemd dédié). Passage du compte de service à une authentification par mot de passe : Heat refuse de créer un trust à partir d'un jeton d'application credential (voir ADR 0002). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
8742bde807
commit
67a754f733
34 changed files with 1095 additions and 91 deletions
8
portail/config/labs.php
Normal file
8
portail/config/labs.php
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
// En local (dev, tests Pest) : labs/ est un dossier voisin de portail/
|
||||
// dans le dépôt. En production, synchronisé à part par Ansible — voir
|
||||
// ansible/roles/portail/tasks/05-labs.yml.
|
||||
'dossier' => env('LABS_DOSSIER', dirname(base_path()).'/labs'),
|
||||
];
|
||||
|
|
@ -1,13 +1,23 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
// Utilisé par App\Services\OpenStack\NovaClient pour demander à Nova
|
||||
// l'adresse de la console série d'une VM (étape 9). Les identifiants
|
||||
// sont l'application credential « portail-syllabus » créée à l'étape 6,
|
||||
// lus depuis /etc/kolla/clouds-paillasse.yaml et injectés une seule fois
|
||||
// dans .env par le rôle Ansible `portail` — jamais dans Git.
|
||||
// Utilisé par NovaClient (étape 9) et HeatClient (étape 10) pour parler
|
||||
// à OpenStack au nom du compte de service `paillasse-service` (étape 6).
|
||||
//
|
||||
// Authentification par mot de passe, pas par application credential :
|
||||
// Heat a besoin de créer un "trust" Keystone pour gérer le cycle de vie
|
||||
// d'une stack, et Keystone refuse explicitement ("Delegated tokens
|
||||
// cannot manage trusts") qu'un jeton issu d'une application credential
|
||||
// en crée un — ce n'est pas un bug, l'application credential elle-même
|
||||
// est déjà une délégation, et Keystone empêche d'en déléguer une autre
|
||||
// à partir de là. Constaté le 2026-10-08, voir docs/journal.md.
|
||||
//
|
||||
// Identifiants lus depuis /etc/kolla/clouds-paillasse.yaml et injectés
|
||||
// une seule fois dans .env par le rôle Ansible `portail` — jamais dans Git.
|
||||
'auth_url' => env('OS_AUTH_URL', 'http://10.10.0.1:5000'),
|
||||
'application_credential_id' => env('OS_APPLICATION_CREDENTIAL_ID'),
|
||||
'application_credential_secret' => env('OS_APPLICATION_CREDENTIAL_SECRET'),
|
||||
'username' => env('OS_USERNAME', 'paillasse-service'),
|
||||
'password' => env('OS_PASSWORD'),
|
||||
'project_name' => env('OS_PROJECT_NAME', 'paillasse'),
|
||||
'nova_url' => env('OS_NOVA_URL', 'http://10.10.0.1:8774/v2.1'),
|
||||
'heat_url' => env('OS_HEAT_URL', 'http://10.10.0.1:8004/v1'),
|
||||
];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue