25 lines
1.0 KiB
Go
25 lines
1.0 KiB
Go
package demos
|
|
|
|
import "context"
|
|
|
|
// Provisioner : abstraction du worker qui déploie/détruit la stack dans le cluster.
|
|
// L'implémentation réelle (Helm + client-go) sera branchée plus tard ; l'API se
|
|
// contente d'enfiler les intentions.
|
|
type Provisioner interface {
|
|
// Provision demande le déploiement d'une démo (asynchrone).
|
|
Provision(d Demo, resources []ExternalResource, cfg ProvisionConfig) error
|
|
// Teardown demande la destruction d'une démo.
|
|
Teardown(d Demo) error
|
|
GetResourceState(ctx context.Context, namespace string) (ResourceState, error)
|
|
}
|
|
|
|
// NoopProvisioner : implémentation neutre (aucun déploiement réel).
|
|
// Sert au scaffolding et aux tests tant que le worker n'existe pas.
|
|
type NoopProvisioner struct{}
|
|
|
|
func (NoopProvisioner) Provision(Demo, []ExternalResource, ProvisionConfig) error { return nil }
|
|
func (NoopProvisioner) Teardown(Demo) error { return nil }
|
|
func (NoopProvisioner) GetResourceState(ctx context.Context, namespace string) (ResourceState, error) {
|
|
return ResourceState{}, nil
|
|
}
|