fix
build / Garde-fou (pull_request) Successful in 11s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (pull_request) Skipped
build / Images Harbor (web, Dockerfile) (pull_request) Skipped
build / Garde-fou (push) Successful in 12s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (push) Successful in 9m43s
build / Images Harbor (web, Dockerfile) (push) Successful in 11m28s
build / Garde-fou (pull_request) Successful in 11s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (pull_request) Skipped
build / Images Harbor (web, Dockerfile) (pull_request) Skipped
build / Garde-fou (push) Successful in 12s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (push) Successful in 9m43s
build / Images Harbor (web, Dockerfile) (push) Successful in 11m28s
This commit is contained in:
1 parent
add741df81
commit
c51a6379bd
5 files changed
+113
-78
No files matched your search
@@ -89,3 +89,20 @@ docker compose ps # état des healthcheck
|
||||
Utilisateur non root (uid 10001), racine en lecture seule, `/tmp` en tmpfs, toutes les
|
||||
capacités retirées, `no-new-privileges`, corps de requête plafonné à 2 Mo, en-têtes CSP,
|
||||
`nosniff` et `no-referrer` posés par l'application, limitation de débit au niveau de Traefik.
|
||||
|
||||
## Le registre et le tunnel
|
||||
|
||||
Le runner Gitea et Harbor sont sur le meme reseau. Faire sortir les couches d'images par le
|
||||
tunnel Cloudflare pour revenir chez soi n'a pas d'interet, et le plan gratuit plafonne les
|
||||
corps de requete a 100 Mo : une couche plus grosse est coupee net, avec un `413 Payload Too
|
||||
Large` en pleine publication.
|
||||
|
||||
La resolution interne evite le probleme. Sur l'hote du runner, dans le compose du runner :
|
||||
|
||||
```yaml
|
||||
extra_hosts:
|
||||
- "registry.tips-of-mine.com:<ip-locale-de-harbor>"
|
||||
```
|
||||
|
||||
Le nom reste identique, donc les tags des images ne changent pas et le certificat reste
|
||||
valide. Seul le chemin reseau change.
|
||||
@@ -20,7 +20,12 @@ Sur `enclume` :
|
||||
|
||||
- branche par défaut `main`, protégée : pas de push direct, fusion par pull request
|
||||
- Actions activées, avec un runner ayant accès au démon Docker
|
||||
- secrets du dépôt : `HARBOR_USER` et `HARBOR_TOKEN` (le compte robot créé plus bas)
|
||||
- **variables** du dépôt (ou de l'organisation, pour les partager entre projets) :
|
||||
`HARBOR_HOST` = `registry.tips-of-mine.com`, `HARBOR_PROJECT` = `enclume`
|
||||
- **secrets** : `HARBOR_USERNAME` et `HARBOR_PASSWORD` (le compte robot créé plus bas)
|
||||
|
||||
Ces noms sont ceux déjà utilisés par tes autres projets : définis-les au niveau de
|
||||
l'organisation et tout nouveau dépôt en hérite.
|
||||
- licence MIT à la racine
|
||||
|
||||
Sur `enclume-catalogue` : même protection de branche. C'est là qu'arriveront les soumissions
|
||||
@@ -31,13 +36,17 @@ modérées du chantier 5.
|
||||
Projet **`enclume`**, en accès **public** : n'importe qui peut alors tirer les images pour
|
||||
s'auto-héberger, sans compte chez toi. Seule la publication demande une authentification.
|
||||
|
||||
Dépôts créés automatiquement au premier push : `enclume/web` et `enclume/catalog-sync`.
|
||||
Dépôts créés automatiquement au premier push : `enclume/web` et `enclume/catalog-sync`, en
|
||||
linux/amd64 et linux/arm64 — de quoi s'auto-héberger sur un NAS ou un Raspberry Pi.
|
||||
|
||||
### Compte robot
|
||||
|
||||
Créer un robot au niveau du projet, nommé `robot$enclume-ci`, avec les droits
|
||||
**push** et **pull** sur les dépôts — rien d'autre, pas de suppression. Le secret généré
|
||||
va dans `HARBOR_TOKEN` côté Gitea, le nom complet du robot dans `HARBOR_USER`.
|
||||
va dans `HARBOR_PASSWORD` côté Gitea, le nom complet du robot dans `HARBOR_USERNAME`.
|
||||
|
||||
Le robot doit aussi avoir le droit **scan** sur les artefacts : la CI déclenche l'analyse
|
||||
par l'API Harbor juste après la publication, et sans ce droit l'étape échoue en 403.
|
||||
|
||||
### Immuabilité des versions
|
||||
|
||||
|
||||
Reference in new issue
Block a user