Aller au contenu principal

Provider

À venir

Fonctionnalité en préparation. Cette page décrit l'interface cible pour recueillir vos retours ; rien n'est encore utilisable.

apiVersiontofu.stackngo.io/v1alpha1
kindProvider
Appliqué parsng apply (à venir)
Utilisé parWorkspace.spec.providers[].name

À quoi ça sert​

Déclarer une fois la configuration d'un provider OpenTofu (endpoint, région, credentials) et la réutiliser dans tous les Workspace du tenant. Les attributs secrets ne quittent jamais les secrets du tenant. Guide : Providers.

Exemple minimal​

apiVersion: tofu.stackngo.io/v1alpha1
kind: Provider
metadata:
name: aws-eu
spec:
type: aws
config: {region: eu-west-3}
envFrom:
- secretRef: {name: aws-credentials}

Exemple complet commenté​

apiVersion: tofu.stackngo.io/v1alpha1
kind: Provider
metadata:
name: ovh-gra
spec:
type: ovh # ^[a-z][a-z0-9_-]*$
source: ovh/ovh # comparé aux required_providers du module
version: "~> 1.6" # informatif
alias: gra # pour plusieurs configurations du même type
config: # attributs non secrets, écrits tels quels
endpoint: ovh-eu
configFrom: # attributs secrets : une variable sensible par attribut
- attribute: application_key
secretRef: {name: ovh-credentials, key: application_key}
- attribute: application_secret
secretRef: {name: ovh-credentials, key: application_secret}
envFrom: # variables d'environnement du run
- secretRef: {name: ovh-extra-env}

Champs​

Règles de validation : type suit ^[a-z][a-z0-9_-]*$, alias suit ^[a-z_][a-z0-9_]*$, source a la forme espace/nom ; les entrées de configFrom sont indexées par attribute (pas de doublon).

Provider​

Provider : configuration d'un provider OpenTofu, citée par nom dans les Workspace.

ChampDescriptionDéfautValidation
apiVersion stringtofu.stackngo.io/v1alpha1
kind stringProvider
metadata ObjectMetaSeul metadata.name est à renseigner (nom de la ressource dans votre tenant).
spec ProviderSpec
status ProviderStatus

ProviderSpec​

ProviderSpec : configuration d'un provider OpenTofu pour les Workspace de votre tenant.

ChampDescriptionDéfautValidation
type stringType : nom local du provider, celui du bloc provider "<type>" (ex. ovh, aws).Pattern: ^[a-z][a-z0-9_-]*$
source stringSource : adresse du provider (ex. ovh/ovh, hashicorp/aws), contrôlée contre les
required_providers du module. Absent = aucun contrôle.
Pattern: ^([a-z0-9.-]+/)?[a-z0-9_-]+/[a-z0-9_-]+$
Optional: {}
version stringVersion : contrainte attendue, informative (avertissement si le module diffère).Optional: {}
alias stringAlias : bloc provider aliasé (provider = <type>.<alias> dans le module).Pattern: ^[a-z_][a-z0-9_]*$
Optional: {}
config JSONConfig : attributs non secrets du bloc provider (objet JSON).Type: object
Optional: {}
configFrom ProviderSecretAttr arrayConfigFrom : attributs secrets, injectés par variable sensible.Optional: {}
envFrom ProviderEnvFrom arrayEnvFrom : variables d'environnement de l'exécution, lues dans des secrets.Optional: {}

ProviderStatus​

ProviderStatus : état observé.

ChampDescriptionDéfautValidation
observedGeneration integerDernière version du manifeste prise en compte par la plateforme.Optional: {}
conditions Condition arrayConditions : Ready (tous les secrets et clés référencés existent).Optional: {}
inputsHash stringInputsHash : empreinte de la spec et des secrets référencés ; un changement relance les
Workspace qui utilisent ce Provider.
Optional: {}

ProviderSecretAttr​

ProviderSecretAttr : attribut du bloc provider lu dans un secret de votre tenant.

ChampDescriptionDéfautValidation
attribute stringAttribute : nom de l'attribut HCL (ex. application_secret).Pattern: ^[a-z_][a-z0-9_]*$
secretRef SecretKeyRefSecretRef : secret et clé de la valeur.

ProviderEnvFrom​

ProviderEnvFrom : secret dont chaque clé devient une variable d'environnement de l'exécution (identifiants lus nativement par le provider, ex. AWS_ACCESS_KEY_ID).

ChampDescriptionDéfautValidation
secretRef LocalObjectReferenceSecret de votre tenant dont toutes les clés sont fournies au Provider comme variables d'environnement.

SecretKeyRef​

SecretKeyRef : une clé d'un secret de votre tenant.

ChampDescriptionDéfautValidation
name stringNom du Secret de votre tenant.MinLength: 1
key stringClé du Secret qui contient la valeur.MinLength: 1

Statut et conditions​

ConditionSens
ReadyTous les secrets référencés existent et portent les clés attendues

status.inputsHash change quand un secret référencé change : les Workspaces qui citent le Provider rejouent alors un run.

Ce qui se passe quand vous supprimez​

Un Provider n'exécute rien par lui-même. Le supprimer alors qu'un Workspace le cite laisse ce Workspace en erreur au prochain run (ProviderMismatch ou secret manquant).

Erreurs fréquentes​

  • ProviderMismatch sur le Workspace : type ou source ne correspond pas au module.
  • Credentials ignorés : le provider lit ses credentials dans l'environnement (cas aws) : utiliser envFrom, pas configFrom.

Voir aussi​