chore: update
This commit is contained in:
@@ -2,12 +2,15 @@
|
||||
// dans le cluster (une démo = un namespace isolé, TTL 30 jours).
|
||||
package demos
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Paramètres capacité / durée de vie.
|
||||
// Paramètres durée de vie. Pas de quota sur le nombre de démos : seule
|
||||
// limite réelle, le pool de ressources externes (voir PoolSizePerService).
|
||||
const (
|
||||
TTL = 30 * 24 * time.Hour // durée de vie d'une démo
|
||||
MaxConcurrentDemos = 5 // capacité cible
|
||||
PoolSizePerService = 5 // slots par service externe poolé
|
||||
)
|
||||
|
||||
@@ -21,6 +24,48 @@ const (
|
||||
// PooledServices : services nécessitant un slot de pool par démo.
|
||||
var PooledServices = []string{ServiceTelegram, ServiceNowPayments}
|
||||
|
||||
const (
|
||||
StorageLocal = "local"
|
||||
StorageS3 = "s3"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrInvalidStorageDriver = errors.New("storage_driver doit être 'local' ou 's3'")
|
||||
ErrS3ConfigIncomplete = errors.New("s3_bucket et s3_endpoint sont requis pour le stockage S3")
|
||||
)
|
||||
|
||||
// ProvisionConfig : réglages saisis par l'admin à la création (popup de
|
||||
// déploiement), propagés jusqu'au chart backend. Jamais persisté en base —
|
||||
// notamment les secrets (token Telegram, clés NowPayments), qui ne
|
||||
// transitent que par le fichier de valeurs Helm temporaire puis le Secret
|
||||
// k8s du chart, comme les autres secrets.
|
||||
type ProvisionConfig struct {
|
||||
TelegramBotToken string
|
||||
// NowPaymentsAPIKey écrase NOWPAYMENTS_API_KEY. NowPaymentsIPNSecret,
|
||||
// s'il est fourni, écrase le secret pré-provisionné par le pool
|
||||
// (ServiceNowPayments) — sinon celui du pool reste utilisé.
|
||||
NowPaymentsAPIKey string
|
||||
NowPaymentsIPNSecret string
|
||||
StorageDriver string // "local" | "s3", "" => "local"
|
||||
S3Bucket string
|
||||
S3Endpoint string
|
||||
}
|
||||
|
||||
// Validate vérifie la cohérence du choix de stockage.
|
||||
func (c ProvisionConfig) Validate() error {
|
||||
switch c.StorageDriver {
|
||||
case "", StorageLocal:
|
||||
return nil
|
||||
case StorageS3:
|
||||
if c.S3Bucket == "" || c.S3Endpoint == "" {
|
||||
return ErrS3ConfigIncomplete
|
||||
}
|
||||
return nil
|
||||
default:
|
||||
return ErrInvalidStorageDriver
|
||||
}
|
||||
}
|
||||
|
||||
// Status : état d'une démo.
|
||||
type Status string
|
||||
|
||||
|
||||
Reference in New Issue
Block a user