REST Resource: projects.locations.memberships

Ressource : Membership

La ressource Membership contient des informations sur un cluster membre.

Représentation JSON
{
  "name": string,
  "labels": {
    string: string,
    ...
  },
  "description": string,
  "state": {
    object (MembershipState)
  },
  "authority": {
    object (Authority)
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "externalId": string,
  "lastConnectionTime": string,
  "uniqueId": string,
  "infrastructureType": enum (Membership.InfrastructureType),
  "monitoringConfig": {
    object (MonitoringConfig)
  },

  // Union field type can be only one of the following:
  "endpoint": {
    object (MembershipEndpoint)
  }
  // End of list of possible types for union field type.
}
Champs
name

string

Uniquement en sortie. Nom complet et unique de cette ressource Membership au format projects/*/locations/*/memberships/{membershipId}, défini lors de la création.

membershipId doit être un libellé DNS valide conforme à la norme RFC 1123 :

  1. 63 caractères maximum
  2. Il doit être composé de caractères alphanumériques minuscules ou de -.
  3. Il doit commencer et se terminer par un caractère alphanumérique.

Il peut être exprimé sous la forme de l'expression régulière : [a-z0-9]([-a-z0-9]*[a-z0-9])?, d'une longueur maximale de 63 caractères.

labels

map (key: string, value: string)

Facultatif. Étiquettes GCP pour cette appartenance.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

description

string

Facultatif. Description de cette appartenance, limitée à 63 caractères. Doit correspondre à l'expression régulière : [a-zA-Z0-9][a-zA-Z0-9_\-\.\ ]*

state

object (MembershipState)

Uniquement en sortie. État de la ressource Membership.

authority

object (Authority)

Facultatif. Comment identifier les charges de travail de cette ressource Membership. Pour en savoir plus, consultez la documentation sur Workload Identity : https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity.

createTime

string (Timestamp format)

Uniquement en sortie. Date de création de la ressource Membership.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Uniquement en sortie. Date de la dernière mise à jour de la ressource Membership.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

deleteTime

string (Timestamp format)

Uniquement en sortie. Date de suppression de la ressource Membership.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

externalId

string

Facultatif. ID généré et géré en externe pour cette ressource Membership. Cet ID peut être modifié après sa création, mais cela n'est pas recommandé. Pour les clusters GKE, "externalId" est géré par l'API Hub et les mises à jour sont ignorées.

L'ID doit correspondre à l'expression régulière : [a-zA-Z0-9][a-zA-Z0-9_\-\.]*

Si cette ressource Membership représente un cluster Kubernetes, cette valeur doit être définie sur l'UID de l'objet d'espace de noms kube-system.

lastConnectionTime

string (Timestamp format)

Uniquement en sortie. Pour les clusters utilisant Connect, horodatage de la connexion la plus récente établie avec Google Cloud. Cette heure est mise à jour toutes les quelques minutes, et non pas en continu. Pour les clusters qui n'utilisent pas GKE Connect ou qui ne se sont jamais connectés correctement, ce champ n'est pas défini.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

uniqueId

string

Uniquement en sortie. UUID généré par Google pour cette ressource. Ce nom est unique pour toutes les ressources Membership. Si une ressource Membership est supprimée et qu'une autre ressource portant le même nom est créée, elle obtient un uniqueId différent.

infrastructureType

enum (Membership.InfrastructureType)

Facultatif. Type d'infrastructure sur lequel cette ressource Membership s'exécute.

monitoringConfig

object (MonitoringConfig)

Facultatif. Informations de configuration de la surveillance de cette ressource Membership.

Champ d'union type. Le type de ressource représenté par cette ressource Membership type ne peut être que l'un des suivants :
endpoint

object (MembershipEndpoint)

Facultatif. Informations sur le point de terminaison pour atteindre cette ressource Membership.

MembershipEndpoint

La ressource MembershipEndpoint contient les informations nécessaires pour contacter une API Kubernetes, un point de terminaison et d'autres métadonnées Kubernetes.

Représentation JSON
{
  "kubernetesMetadata": {
    object (KubernetesMetadata)
  },
  "kubernetesResource": {
    object (KubernetesResource)
  },

  // Union field type can be only one of the following:
  "gkeCluster": {
    object (GkeCluster)
  },
  "onPremCluster": {
    object (OnPremCluster)
  },
  "multiCloudCluster": {
    object (MultiCloudCluster)
  },
  "edgeCluster": {
    object (EdgeCluster)
  },
  "applianceCluster": {
    object (ApplianceCluster)
  }
  // End of list of possible types for union field type.
}
Champs
kubernetesMetadata

object (KubernetesMetadata)

Uniquement en sortie. Métadonnées spécifiques à Kubernetes utiles.

kubernetesResource

object (KubernetesResource)

Facultatif. Les ressources Kubernetes dans le cluster à appliquer à un cluster correctement enregistré, à l'état stable. Ces ressources :

  • Assurent que le cluster est exclusivement enregistré auprès d'une seule ressource HubMembership.
  • Propagent les informations de pool de charges de travail disponibles dans le champ Membership Authority.
  • Vérifient la configuration initiale appropriée de la ressource HubFeatures par défaut.
Champ d'union type. Informations sur le cluster enregistré. type ne peut être qu'un des éléments suivants :
gkeCluster

object (GkeCluster)

Facultatif. Informations spécifiques pour un cluster GKE-on-GCP.

onPremCluster

object (OnPremCluster)

Facultatif. Informations spécifiques pour un cluster GKE On-Prem. Un cluster d'utilisateur sur site qui n'a pas de lien de ressource n'est pas autorisé à utiliser ce champ. Il doit avoir un "type" nul à la place.

multiCloudCluster

object (MultiCloudCluster)

Facultatif. Informations spécifiques pour un cluster GKE Multi-Cloud.

edgeCluster

object (EdgeCluster)

Facultatif. Informations spécifiques pour un cluster Google Edge.

applianceCluster

object (ApplianceCluster)

Facultatif. Informations spécifiques pour un cluster GDC Edge Appliance.

GkeCluster

GkeCluster contient des informations spécifiques aux clusters GKE.

Représentation JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Champs
clusterMissing

boolean

Uniquement en sortie. Si clusterMissing est défini, cela signifie que le cluster GKE n'existe plus dans le plan de contrôle GKE.

OnPremCluster

OnPremCluster contient des informations spécifiques aux clusters GKE On-Prem.

Représentation JSON
{
  "resourceLink": string,
  "clusterMissing": boolean,
  "adminCluster": boolean,
  "clusterType": enum (OnPremCluster.ClusterType)
}
Champs
clusterMissing

boolean

Uniquement en sortie. Si clusterMissing est défini, cela signifie que la ressource API(gkeonprem.googleapis.com) de ce cluster GKE On-Prem n'existe plus.

adminCluster

boolean

Immuable. Si le cluster est un cluster d'administrateur.

clusterType

enum (OnPremCluster.ClusterType)

Immuable. Type du cluster sur site.

OnPremCluster.ClusterType

ClusterType décrit le type de cluster sur site.

Enums
CLUSTERTYPE_UNSPECIFIED La ressource ClusterType n'est pas définie.
BOOTSTRAP La ressource ClusterType est un cluster d'amorçage.
HYBRID La ressource ClusterType est un cluster hybride Bare Metal.
STANDALONE La ressource ClusterType est un cluster autonome Bare Metal.
USER La ressource ClusterType est un cluster d'utilisateur.

MultiCloudCluster

La ressource MultiCloudCluster contient des informations spécifiques aux clusters GKE Multi-Cloud.

Représentation JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Champs
clusterMissing

boolean

Uniquement en sortie. Si clusterMissing est défini, la ressource API(gkemulticloud.googleapis.com) n'existe plus pour ce cluster GKE Multi-Cloud.

EdgeCluster

EdgeCluster contient des informations spécifiques aux clusters Google Edge.

Représentation JSON
{
  "resourceLink": string
}
Champs

ApplianceCluster

ApplianceCluster contient des informations spécifiques aux clusters GDC Edge Appliance.

Représentation JSON
{
  "resourceLink": string
}
Champs

KubernetesMetadata

KubernetesMetadata fournit des métadonnées informatives sur les ressources Memberships représentant des clusters Kubernetes.

Représentation JSON
{
  "kubernetesApiServerVersion": string,
  "nodeProviderId": string,
  "nodeCount": integer,
  "vcpuCount": integer,
  "memoryMb": integer,
  "updateTime": string
}
Champs
kubernetesApiServerVersion

string

Uniquement en sortie. Chaîne de version du serveur d'API Kubernetes telle qu'indiquée par "/version".

nodeProviderId

string

Uniquement en sortie. Aucun providerID indiqué par le premier nœud de la liste des nœuds sur le point de terminaison Kubernetes. Sur les plates-formes Kubernetes qui acceptent les clusters sans nœud (comme GKE-on-GCP), nodeCount est égal à zéro et nodeProviderId est vide.

nodeCount

integer

Uniquement en sortie. Nombre de nœuds indiqué par les ressources de nœuds Kubernetes.

vcpuCount

integer

Uniquement en sortie. Nombre de processeurs virtuels indiqué par les ressources des nœuds Kubernetes.

memoryMb

integer

Uniquement en sortie. Capacité totale de la mémoire indiquée par la somme de toutes les ressources de nœuds Kubernetes, définie en Mo.

updateTime

string (Timestamp format)

Uniquement en sortie. Date et heure de la dernière mise à jour de ces informations. Cette valeur updateTime est différente de updateTime au niveau de la ressource Membership, car les EndpointDetails sont mis à jour en interne pour les utilisateurs de l'API.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

KubernetesResource

KubernetesResource contient les fichiers manifestes et la configuration YAML pour les ressources Membership Kubernetes dans le cluster. Après memberships.create ou memberships.patch, ces ressources doivent être réappliquées dans le cluster.

Représentation JSON
{
  "membershipCrManifest": string,
  "membershipResources": [
    {
      object (ResourceManifest)
    }
  ],
  "connectResources": [
    {
      object (ResourceManifest)
    }
  ],
  "resourceOptions": {
    object (ResourceOptions)
  }
}
Champs
membershipCrManifest

string

Uniquement en entrée. Représentation YAML de la RS de la ressource Membership. Ce champ est ignoré pour les clusters GKE sur lesquels la ressource Hub peut lire directement la RS.

Les appelants doivent fournir la RS actuellement présente dans le cluster lors de memberships.create ou memberships.patch, ou laisser ce champ vide s'il n'en existe pas. Le fichier manifeste de RS permet de vérifier que le cluster n'a pas été enregistré auprès d'une autre ressource Membership.

membershipResources[]

object (ResourceManifest)

Uniquement en sortie. Ressources Kubernetes supplémentaires à appliquer au cluster après la création de la ressource Membership et après chaque mise à jour.

Ce champ n'est renseigné que dans la ressource Membership renvoyée par une opération de longue durée réussie par memberships.create ou memberships.patch. Ce champ n'est pas renseigné lors des requêtes memberships.get ou memberships.list standards. Pour obtenir le fichier manifeste de la ressource après l'enregistrement initial, l'appelant doit effectuer un appel memberships.patch avec un masque de champ vide.

connectResources[]

object (ResourceManifest)

Uniquement en sortie. Ressources Kubernetes pour l'installation de l'agent GKE Connect

Ce champ n'est renseigné que dans la ressource Membership renvoyée par une opération de longue durée réussie par memberships.create ou memberships.patch. Ce champ n'est pas renseigné lors des requêtes memberships.get ou memberships.list standards. Pour obtenir le fichier manifeste de la ressource après l'enregistrement initial, l'appelant doit effectuer un appel memberships.patch avec un masque de champ vide.

resourceOptions

object (ResourceOptions)

Facultatif. Options de génération de ressources Kubernetes.

ResourceManifest

La ressource ResourceManifest représente une ressource Kubernetes unique à appliquer au cluster.

Représentation JSON
{
  "manifest": string,
  "clusterScoped": boolean
}
Champs
manifest

string

Fichier manifeste YAML de la ressource.

clusterScoped

boolean

Indique si la ressource fournie dans le fichier manifeste est clusterScoped. Si cette valeur n'est pas définie, le fichier manifeste est supposé être à l'échelle d'un espace de noms.

Ce champ est utilisé pour le mappage REST lors de l'application de la ressource dans un cluster.

ResourceOptions

La ressource ResourceOptions représente les options de génération de ressources Kubernetes.

Représentation JSON
{
  "connectVersion": string,
  "v1beta1Crd": boolean,
  "k8sVersion": string
}
Champs
connectVersion

string

Facultatif. Version de l'agent Connect à utiliser pour connectResources. Correspond par défaut à la dernière version de GKE Connect. La version doit être une version actuellement compatible. Les versions obsolètes seront refusées.

v1beta1Crd

boolean

Facultatif. Utilisez apiextensions/v1beta1 au lieu de apiextensions/v1 pour les ressources CustomResourceDefinition. Cette option doit être définie pour les clusters ayant des versions de serveur d'API Kubernetes <1.16.

k8sVersion

string

Facultatif. Version majeure du cluster Kubernetes. Cela permet uniquement de déterminer la version à utiliser pour les ressources CustomResourceDefinition, apiextensions/v1beta1 ou apiextensions/v1.

MembershipState

État de la ressource Membership.

Représentation JSON
{
  "code": enum (MembershipState.Code),
  "description": string,
  "updateTime": string
}
Champs
code

enum (MembershipState.Code)

Uniquement en sortie. État actuel de la ressource Membership.

description
(deprecated)

string

Ce champ n'est jamais défini par HubService.

updateTime
(deprecated)

string (Timestamp format)

Ce champ n'est jamais défini par HubService.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

MembershipState.Code

Code décrit l'état d'une ressource Membership.

Enums
CODE_UNSPECIFIED Le code n'est pas défini.
CREATING Le cluster est en cours d'enregistrement.
READY Le cluster est enregistré.
DELETING L'enregistrement du cluster est en cours d'annulation.
UPDATING La ressource Membership est en cours de mise à jour.
SERVICE_UPDATING La ressource Membership est en cours de mise à jour par HubService.

Autorité

L'autorité code la manière dont Google reconnaît les identités de ce membre. Pour en savoir plus, consultez la documentation sur Workload Identity : https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity.

Représentation JSON
{
  "issuer": string,
  "workloadIdentityPool": string,
  "identityProvider": string,
  "oidcJwks": string
}
Champs
issuer

string

Facultatif. URI d'émetteur de jetons Web JSON (JWT). issuer doit commencer par https:// et être une URL valide comportant moins de 2 000 caractères.

Si ce champ est défini, Google autorise les jetons OIDC valides de cet émetteur à s'authentifier dans le pool d'identités de charge de travail. La découverte OIDC sera effectuée sur cet URI pour valider les jetons de l'émetteur.

Supprimer issuer désactive Workload Identity. issuer ne peut pas être modifié directement ; vous devez effacer son contenu (et désactiver Workload Identity) avant d'utiliser un nouvel émetteur (et de réactiver Workload Identity).

workloadIdentityPool

string

Uniquement en sortie. Nom du pool d'identités de charge de travail dans lequel issuer sera reconnu.

Un seul pool d'identités de charge de travail est partagé entre toutes les appartenances appartenant à ce Hub. Pour un hub hébergé dans {PROJECT_ID}, le format du pool de charges de travail est {PROJECT_ID}.hub.id.goog, bien que cela soit susceptible d'être modifié dans les versions plus récentes de cette API.

identityProvider

string

Uniquement en sortie. Un fournisseur d'identité qui reflète la valeur issuer dans le pool d'identités de charge de travail.

oidcJwks

string (bytes format)

Facultatif. Clés de validation OIDC de cette appartenance au format JWKS (RFC 7517).

Lorsque ce champ est défini, la découverte OIDC n'est PAS effectuée sur issuer, mais les jetons OIDC sont validés à l'aide de ce champ.

Chaîne encodée en base64.

Membership.InfrastructureType

Spécifie le type d'infrastructure d'une ressource Membership. Le type d'infrastructure est utilisé par Hub pour contrôler le comportement spécifique à l'infrastructure, y compris la tarification.

Chaque distribution GKE (sur GCP, sur site, sur X, etc.) définit ce champ automatiquement, mais les clients des clusters associés doivent spécifier un type lors de l'enregistrement.

Enums
INFRASTRUCTURE_TYPE_UNSPECIFIED Aucun type n'a été spécifié. Certaines fonctionnalités de Hub peuvent nécessiter un type. Elles ne seront pas compatibles avec les abonnements avec cette valeur.
ON_PREM Infrastructure privée détenue ou gérée par le client. Cela inclut les distributions GKE telles que GKE On-Prem et GKE-OnBareMetal.
MULTI_CLOUD Infrastructure cloud publique.

MonitoringConfig

MonitoringConfig indique aux applications, services et interfaces utilisateur basés sur le parc comment les métriques du cluster sous-jacent sont transmises aux services de surveillance cloud. Elle peut être définie sur une valeur vide ou non vide, mais ne peut pas être mutée directement pour éviter de briser accidentellement la continuité des métriques.

Représentation JSON
{
  "projectId": string,
  "location": string,
  "cluster": string,
  "kubernetesMetricsPrefix": string,
  "clusterHash": string
}
Champs
projectId

string

Facultatif. Projet utilisé pour générer des rapports sur les métriques

location

string

Facultatif. Emplacement utilisé pour générer des rapports sur les métriques

cluster

string

Facultatif. Nom du cluster utilisé pour générer des rapports sur les métriques. Pour les clusters Anthos sur VMWare/Baremetal/MultiCloud, il serait au format {clusterType}/{clusterName}, par exemple : "awsClusters/cluster_1".

kubernetesMetricsPrefix

string

Facultatif. Les métriques système Kubernetes, si elles sont disponibles, sont écrites dans ce préfixe. La valeur par défaut est kubernetes.io pour GKE, et kubernetes.io/anthos pour Anthos. Remarque : Anthos MultiCloud utilisera le préfixe kubernetes.io aujourd'hui, mais sera migré sous kubernetes.io/anthos.

clusterHash

string

Facultatif. Pour les clusters GKE et multicloud, il s'agit de l'UUID de la ressource de cluster. Pour les clusters VMWare et Baremetal, il s'agit de l'UID kube-system.

Méthodes

create

Crée une ressource Membership.

delete

Supprime une ressource Membership.

generateConnectManifest

Génère le fichier manifeste pour le déploiement de l'agent GKE Connect.

generateExclusivityManifest

GenerateExclusivityManifest génère les fichiers manifestes pour mettre à jour les artefacts d'exclusivité du cluster si nécessaire.

get

Récupère les détails d'une ressource Membership.

getIamPolicy

Récupère la stratégie de contrôle d'accès d'une ressource.

list

Répertorie les ressources Memberships d'un projet et d'un emplacement donnés.

patch

Met à jour une ressource Membership existante.

setIamPolicy

Définit la stratégie de contrôle d'accès de la ressource spécifiée.

testIamPermissions

Renvoie les autorisations qu'un appelant a sur la ressource spécifiée.

validateExclusivity

ValidateExclusivity valide l'état d'exclusivité du cluster.