Créer des références de ressources

Une ressource Google Cloud créée avec Config Connector peut référencer d'autres ressources. Config Connector définit ces relations à l'aide des références de ressources. Cet article explique comment créer des ressources avec des références.

Types de références

Dans Config Connector, les références peuvent être des dépendances ou des liens.

Dépendances
Une référence de dépendance fait référence à une ressource Google Cloud existante nécessaire à la ressource Config Connector. Par exemple, une règle de pare-feu ne peut pas exister sans réseau.
Links
Une référence de lien regroupe des ressources indépendantes. Par exemple, un projet peut être associé à un compte de facturation.

Spécifier des références de ressources

Vous devez spécifier des références de ressources dans le spec de la ressource. Le nom du champ est le nom abrégé de la ressource suivi de Ref. Exemple :

  • La référence à un PubSubTopic nommé topic est topicRef.
  • La référence à un StorageBucket nommé bucket est bucketRef.

La référence est un objet avec un seul champ (name). La ressource dans resourceRef est remplacée par le nom de la référence.

Le manifest YAML ci-dessous décrit un abonnement Pub/Sub PubSubSubscription qui référence un sujet PubSubTopic nommé myTopic.

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: myTopic

Exemple Pub/Sub

Créer un sujet Pub/Sub

Dans cet exemple, vous créez un PubSubSubscription qui dépend d'un PubSubTopic.

  1. Copiez ce qui suit dans un fichier nommé pubsub-topic.yaml, en remplaçant [TOPIC_NAME] par le nom que vous souhaitez pour le sujet PubSubTopic :
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: [TOPIC_NAME]

Par exemple, le code YAML pour créer un sujet nommé myTopic est :

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: myTopic
  1. Créez PubSubTopic avec kubectl apply.
kubectl --namespace [CC_NAMESPACE] apply -f pubsub-topic.yaml

Remplacez [CC_NAMESPACE] par l'espace de noms à partir duquel Config Connector gère les ressources.

Créer un abonnement Pub/Sub

  1. Copiez ce qui suit dans un fichier nommé pubsub-subscription.yaml, en remplaçant [TOPIC_NAME] par le nom du sujet PubSubTopic que vous avez utilisé à l'étape précédente :
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: [TOPIC_NAME]

Par exemple, le manifeste YAML faisant référence au sujet myTopic que vous avez créé précédemment est :

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: myTopic
  1. Créez PubSubSubscription avec kubectl apply.
kubectl --namespace [CC_NAMESPACE] apply -f pubsub-subscription.yaml 

Remplacez [CC_NAMESPACE] par l'espace de noms à partir duquel Config Connector gère les ressources.

Références externes

Config Connector peut référencer des ressources qu'il ne gère pas. Celles-ci sont appelées références externes. Par exemple, le ComputeURLMap ci-dessous fait référence à un BackendService nommé test-backendservice.

apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeURLMap
metadata:
  name: test-urlmap
spec:
  location: global
  defaultService:
    backendServiceRef:
      external: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/test-backendservice

Le format des valeurs acceptées par external dépend de la ressource. Consultez les informations sur des ressources spécifiques dans la documentation de référence de la ressource. Vous pouvez savoir quelles valeurs external sont acceptées en lisant les descriptions des champs external de la ressource.

Références externes pour IAMPolicy et IAMPolicyMember

IAMPolicy et IAMPolicyMember sont également compatibles avec les références externes. Par exemple, le IAMPolicyMember ci-dessous fait référence à un Project avec l'ID de projet test-project.

apiVersion: iam.cnrm.cloud.google.com/v1beta1
kind: IAMPolicyMember
metadata:
  name: test-iampolicymember
spec:
  member: serviceAccount:test-serviceaccount@test-project.iam.gserviceaccount.com
  role: roles/storage.admin
  resourceRef:
    apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
    kind: Project
    external: projects/test-project

Consultez les informations sur la ressource que vous souhaitez référencer dans la documentation de référence de la ressource. Vous pouvez savoir quel format external est accepté en recherchant la propriété "Format de la référence externe IAM" de cette ressource.

Et ensuite ?

Consultez la documentation de référence de la ressource pour en savoir plus sur les ressources compatibles avec Config Connector.

Apprenez à utiliser une référence de ressource à un secret dans votre cluster Config Connector.