REST Resource: projects.locations.memberships

Recurso: Membresía

La membresía contiene información sobre un clúster miembro.

Representación 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.
}
Campos
name

string

Solo salida. El nombre completo y único de este recurso de membresía en el formato projects/*/locations/*/memberships/{membershipId}, establecido durante la creación.

membershipId debe ser una etiqueta de DNS válida que cumpla con RFC 1123:

  1. Longitud máxima de 63 caracteres
  2. Debe contener caracteres alfanuméricos en minúscula o -
  3. Debe empezar y terminar con un carácter alfanumérico

que se puede expresar como la regex: [a-z0-9]([-a-z0-9]*[a-z0-9])?, con una longitud máxima de 63 caracteres.

labels

map (key: string, value: string)

Opcional. Etiquetas de GCP para esta membresía.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

description

string

Opcional. Descripción de esta membresía, con un límite de 63 caracteres. Debe coincidir con la regex: [a-zA-Z0-9][a-zA-Z0-9_\-\.\ ]*

state

object (MembershipState)

Solo salida. Estado del recurso de la membresía.

authority

object (Authority)

Opcional. Cómo identificar las cargas de trabajo de esta membresía. Consulta la documentación sobre Workload Identity para obtener más detalles: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

createTime

string (Timestamp format)

Solo salida. Cuándo se creó la membresía.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Solo salida. Cuándo se actualizó por última vez la membresía.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

deleteTime

string (Timestamp format)

Solo salida. Cuándo se borró la membresía.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

externalId

string

Opcional. Un ID generado y administrado de forma externa para esta membresía. Este ID se puede modificar después de su creación, pero no se recomienda. En el caso de los clústeres de GKE, la API de Hub administra externalId y se ignorarán las actualizaciones.

El ID debe coincidir con la regex: [a-zA-Z0-9][a-zA-Z0-9_\-\.]*

Si esta membresía representa un clúster de Kubernetes, este valor se debe establecer en el UID del objeto de espacio de nombres kube-system.

lastConnectionTime

string (Timestamp format)

Solo salida. Para los clústeres que usan Connect, la marca de tiempo de la conexión más reciente establecida con Google Cloud. Esta hora se actualiza cada varios minutos, no de forma continua. Para los clústeres que no usen GKE Connect o que nunca se hayan conectado de forma correcta, no se configurará este campo.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

uniqueId

string

Solo salida. UUID generado por Google para este recurso. Es único en todos los recursos de la membresía. Si se borra un recurso de la membresía y se crea otro recurso con el mismo nombre, obtiene un uniqueId diferente.

infrastructureType

enum (Membership.InfrastructureType)

Opcional. El tipo de infraestructura en el que se ejecuta esta membresía.

monitoringConfig

object (MonitoringConfig)

Opcional. La información de la configuración de supervisión para esta membresía.

Campo de unión type. El tipo de recurso representado por esta membresía type puede ser solo uno de los siguientes:
endpoint

object (MembershipEndpoint)

Opcional. Información del extremo para llegar a este miembro.

MembershipEndpoint

MembershipEndpoint contiene información necesaria para comunicarse con una API de Kubernetes, un extremo y cualquiera de los metadatos adicionales de Kubernetes.

Representación 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.
}
Campos
kubernetesMetadata

object (KubernetesMetadata)

Solo salida. Metadatos útiles específicos de Kubernetes.

kubernetesResource

object (KubernetesResource)

Opcional. Los recursos de Kubernetes en el clúster que se deben aplicar a un clúster registrado de forma correcta, en estado estable Sobre estos recursos:

  • Asegúrate de que el clúster esté registrado de forma exclusiva en una sola membresía del concentrador.
  • Propaga la información del grupo de cargas de trabajo disponible en el campo de la autoridad de membresía.
  • Garantizan que la configuración inicial de las funciones predeterminadas de Hub sea adecuada.
Campo de unión type. Información del clúster del clúster registrado. type puede ser solo uno de los siguientes:
gkeCluster

object (GkeCluster)

Opcional. Información específica para un clúster de GKE en GCP.

onPremCluster

object (OnPremCluster)

Opcional. Información específica para un clúster de GKE On-Prem. Un clúster de usuario local que no tiene resourceLink no puede usar este campo; en su lugar, debe tener un “tipo” nulo.

multiCloudCluster

object (MultiCloudCluster)

Opcional. Información específica para un clúster de GKE Multi-cloud.

edgeCluster

object (EdgeCluster)

Opcional. Información específica sobre un clúster de Google Edge.

applianceCluster

object (ApplianceCluster)

Opcional. Información específica para un clúster de dispositivos perimetrales de GDC.

GkeCluster

GkeCluster contiene información específica de los clústeres de GKE.

Representación JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Campos
clusterMissing

boolean

Solo salida. Si se configura clusterMissing, significa que el clúster de GKE ya no existe en el plano de control de GKE.

OnPremCluster

On-PremCluster contiene información específica de los clústeres de GKE On-Prem.

Representación JSON
{
  "resourceLink": string,
  "clusterMissing": boolean,
  "adminCluster": boolean,
  "clusterType": enum (OnPremCluster.ClusterType)
}
Campos
clusterMissing

boolean

Solo salida. Si clusterMissing está configurado, indica que el recurso de API(gkeonprem.googleapis.com) para este clúster de GKE On-Prem ya no existe.

adminCluster

boolean

Inmutable. Si el clúster es de administrador.

clusterType

enum (OnPremCluster.ClusterType)

Inmutable. El tipo de clúster local.

OnPremCluster.ClusterType

ClusterType describe el tipo de clúster local.

Enums
CLUSTERTYPE_UNSPECIFIED El ClusterType no está configurado.
BOOTSTRAP El ClusterType es un clúster de arranque.
HYBRID El ClusterType es un clúster híbrido de equipos físicos.
STANDALONE ClusterType es un clúster independiente de equipos físicos.
USER El ClusterType es un clúster de usuario.

MultiCloudCluster

MultiCloudCluster contiene información específica de los clústeres de GKE Multi-cloud.

Representación JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Campos
clusterMissing

boolean

Solo salida. Si clusterMissing está configurado, indica que el recurso de API(gkemulticloud.googleapis.com) para este clúster de GKE Multi-cloud ya no existe.

EdgeCluster

EdgeCluster contiene información específica de los clústeres perimetrales de Google.

Representación JSON
{
  "resourceLink": string
}
Campos

ApplianceCluster

ApplianceCluster contiene información específica de los clústeres de dispositivos perimetrales de GDC.

Representación JSON
{
  "resourceLink": string
}
Campos

KubernetesMetadata

KubernetesMetadata proporciona metadatos informativos para las membresías que representan los clústeres de Kubernetes.

Representación JSON
{
  "kubernetesApiServerVersion": string,
  "nodeProviderId": string,
  "nodeCount": integer,
  "vcpuCount": integer,
  "memoryMb": integer,
  "updateTime": string
}
Campos
kubernetesApiServerVersion

string

Solo salida. Cadena de la versión del servidor de la API de Kubernetes que informa '/version'.

nodeProviderId

string

Solo salida. ProviderID del nodo informado por el primer nodo de la lista de nodos en el extremo de Kubernetes. En las plataformas de Kubernetes que admiten clústeres de cero nodos (como GKE en GCP), el nodeCount será cero y el nodeProviderId estará vacío.

nodeCount

integer

Solo salida. Recuento de nodos que informan los recursos de nodos de Kubernetes.

vcpuCount

integer

Solo salida. Recuento de CPU virtuales que informan los recursos de nodos de Kubernetes.

memoryMb

integer

Solo salida. La capacidad de memoria total informada por la suma de todos los recursos de nodos de Kubernetes, definida en MB.

updateTime

string (Timestamp format)

Solo salida. La hora a la que se actualizaron estos detalles por última vez. Este updateTime es diferente del updateTime a nivel de la membresía, ya que los EndpointDetails se actualizan de forma interna para los consumidores de API.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

KubernetesResource

KubernetesResource contiene los manifiestos YAML y la configuración de los recursos de Kubernetes de membresía en el clúster. Después de memberships.create o membership.patch, estos recursos se deben volver a aplicar en el clúster.

Representación JSON
{
  "membershipCrManifest": string,
  "membershipResources": [
    {
      object (ResourceManifest)
    }
  ],
  "connectResources": [
    {
      object (ResourceManifest)
    }
  ],
  "resourceOptions": {
    object (ResourceOptions)
  }
}
Campos
membershipCrManifest

string

Solo entrada. La representación YAML de la CR de membresía. Este campo se ignora para los clústeres de GKE en los que Hub puede leer el CR directamente.

Los emisores deben proporcionar el CR que está presente actualmente en el clúster durante membership.create o membership.patch, o dejar este campo vacío si no existe ninguno. El manifiesto de CR se usa para validar que el clúster no se haya registrado con otra membresía.

membershipResources[]

object (ResourceManifest)

Solo salida. Recursos adicionales de Kubernetes que se deben aplicar al clúster después de la creación de la membresía y después de cada actualización.

Este campo solo se propaga en la membresía que se muestra desde una operación de larga duración exitosa de membership.create o membership.patch. No se propaga durante las solicitudes normales de memberships.get o memberships.list. Para obtener el manifiesto de recursos después del registro inicial, el emisor debe hacer una llamada de memberships.patch con una máscara de campo vacía.

connectResources[]

object (ResourceManifest)

Solo salida. Los recursos de Kubernetes para instalar el agente de GKE Connect

Este campo solo se propaga en la membresía que se muestra desde una operación de larga duración exitosa de membership.create o membership.patch. No se propaga durante las solicitudes normales de memberships.get o memberships.list. Para obtener el manifiesto de recursos después del registro inicial, el emisor debe hacer una llamada de memberships.patch con una máscara de campo vacía.

resourceOptions

object (ResourceOptions)

Opcional. Opciones para la generación de recursos de Kubernetes.

ResourceManifest

ResourceManifest representa un solo recurso de Kubernetes que se aplicará al clúster.

Representación JSON
{
  "manifest": string,
  "clusterScoped": boolean
}
Campos
manifest

string

Manifiesto YAML del recurso.

clusterScoped

boolean

Indica si el recurso proporcionado en el manifiesto es clusterScoped. Si no se configura, se supone que el manifiesto tiene permiso de espacio de nombres.

Este campo se usa para la asignación de REST cuando se aplica el recurso en un clúster.

ResourceOptions

Las ResourceOptions representan opciones para la generación de recursos de Kubernetes.

Representación JSON
{
  "connectVersion": string,
  "v1beta1Crd": boolean,
  "k8sVersion": string
}
Campos
connectVersion

string

Opcional. La versión del agente de Connect que se usará para connectResources. El valor predeterminado es la última versión de GKE Connect. La versión debe ser una versión compatible actualmente; se rechazarán las versiones obsoletas.

v1beta1Crd

boolean

Opcional. Usa apiextensions/v1beta1 en lugar de apiextensions/v1 para los recursos CustomResourceDefinition. Esta opción se debe configurar para clústeres con versiones de apiserver de Kubernetes <1.16.

k8sVersion

string

Opcional. Versión principal del clúster de Kubernetes. Esto solo se usa a fin de determinar qué versión usar para los recursos CustomResourceDefinition, apiextensions/v1beta1 o apiextensions/v1.

MembershipState

Estado del recurso de la membresía.

Representación JSON
{
  "code": enum (MembershipState.Code),
  "description": string,
  "updateTime": string
}
Campos
code

enum (MembershipState.Code)

Solo salida. El estado actual del recurso de la membresía.

description
(deprecated)

string

Hub Service nunca configura este campo.

updateTime
(deprecated)

string (Timestamp format)

El servicio de Hub nunca configura este campo.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

MembershipState.Code

El código describe el estado de un recurso de la membresía.

Enums
CODE_UNSPECIFIED No se estableció el código.
CREATING El clúster se está registrando.
READY El clúster está registrado.
DELETING Se anuló el registro del clúster.
UPDATING La membresía se está actualizando.
SERVICE_UPDATING El servicio Hub está actualizando la membresía.

Autoridad

La autoridad codifica la forma en la que Google reconocerá las identidades de este recurso Membership. Consulta la documentación de Workload Identity para obtener más detalles: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

Representación JSON
{
  "issuer": string,
  "workloadIdentityPool": string,
  "identityProvider": string,
  "oidcJwks": string
}
Campos
issuer

string

Opcional. Un URI de la entidad emisora de un token web JSON (JWT). issuer debe comenzar con https:// y ser una URL válida con una longitud inferior a 2,000 caracteres.

Si se configura, Google permitirá que los tokens de OIDC válidos de esta entidad emisora se autentiquen dentro del workloadIdentityPool. Se realizará la detección de OIDC en este URI para validar los tokens de la entidad emisora.

Si se borra issuer, se inhabilita Workload Identity. issuer no se puede modificar directamente; se debe borrar (y Workload Identity inhabilitado) antes de usar una entidad emisora nueva (y volver a habilitar Workload Identity).

workloadIdentityPool

string

Solo salida. El nombre del grupo de identidades para cargas de trabajo en el que se reconocerá issuer.

Hay un solo grupo de identidades para cargas de trabajo por Hub que se comparte entre todos los recursos Membership que pertenecen a ese concentrador. Para un concentrador alojado en {PROJECT_ID}, el formato del grupo de cargas de trabajo es {PROJECT_ID}.hub.id.goog, aunque esto está sujeto a cambios en las versiones más recientes de esta API.

identityProvider

string

Solo salida. Un proveedor de identidad que refleja el issuer en el grupo de identidades para cargas de trabajo.

oidcJwks

string (bytes format)

Opcional. Claves de verificación de OIDC para este recurso Membership en formato JWKS (RFC 7517).

Cuando se configura este campo, el descubrimiento de OIDC NO se realizará en issuer y, en su lugar, los tokens de OIDC se validarán mediante este campo.

String codificada en base64.

Membership.InfrastructureType

Especifica el tipo de infraestructura de una membresía. Hub usa el tipo de infraestructura para controlar el comportamiento específico de la infraestructura, incluidos los precios.

Cada distribución de GKE (GCP, local, en X, etc.) configurará este campo automáticamente, pero los clientes de clústeres adjuntos deben especificar un tipo durante el registro.

Enums
INFRASTRUCTURE_TYPE_UNSPECIFIED No se especificó ningún tipo. Es posible que algunas funciones de Hub requieran que se especifique un tipo y no admitirán membresías con este valor.
ON_PREM Infraestructura privada administrada por el cliente o propiedad de él. Esto incluye las distribuciones de GKE, como GKE OnPrem y GKE-OnBareMetal.
MULTI_CLOUD Infraestructura de nube pública.

MonitoringConfig

MonitoringConfig informa a las IU, los servicios y las aplicaciones basados en la flota cómo se informan las métricas del clúster subyacente a los servicios de supervisión en la nube. Se puede configurar de vacía a no vacía, pero no se puede mutar directamente para evitar romper la contención de las métricas por accidente.

Representación JSON
{
  "projectId": string,
  "location": string,
  "cluster": string,
  "kubernetesMetricsPrefix": string,
  "clusterHash": string
}
Campos
projectId

string

Opcional. Proyecto usado para informar las métricas

location

string

Opcional. Ubicación que se usa para informar las métricas

cluster

string

Opcional. Nombre del clúster usado para informar las métricas. Para los clústeres de Anthos en VMWare/Baremetal/MultiCloud, tendría el formato {clusterType}/{clusterName}, p.ej., “awsClusters/cluster_1”.

kubernetesMetricsPrefix

string

Opcional. Las métricas del sistema de Kubernetes, si están disponibles, se escriben en este prefijo. La configuración predeterminada es kubernetes.io para GKE y, finalmente, kubernetes.io/anthos para Anthos. Nota: Anthos MultiCloud tendrá el prefijo kubernetes.io hoy, pero la migración estará en kubernetes.io/anthos.

clusterHash

string

Opcional. En el caso de los clústeres de GKE y de múltiples nubes, este es el UUID del recurso del clúster. Para los clústeres de VMWare y Baremetal, este es el UID del sistema de Kubernetes.

Métodos

create

Crea una membresía nueva.

delete

Quita una membresía.

generateConnectManifest

Genera el manifiesto para la implementación del agente de conexión de GKE.

generateExclusivityManifest

GenerateExclusivityManifest genera los manifiestos para actualizar los artefactos de exclusividad en el clúster, si es necesario.

get

Obtiene los detalles de una membresía.

getIamPolicy

Permite obtener la política de control de acceso de un recurso.

list

Enumera membresías en una ubicación y un proyecto determinados.

patch

Actualiza una membresía existente.

setIamPolicy

Permite configurar la política de control de acceso en el recurso especificado.

testIamPermissions

Permite mostrar los permisos que tiene un emisor para un recurso específico.

validateExclusivity

ValidExclusivity valida el estado de exclusividad en el clúster.