REST Resource: projects.locations.memberships

Recurso: Membership

A assinatura contém informações sobre um cluster de membro.

Representação JSON
{
  "name": string,
  "labels": {
    string: string,
    ...
  },
  "description": string,
  "state": {
    object (MembershipState)
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "externalId": string,
  "authority": {
    object (Authority)
  },
  "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

Apenas saída. O nome completo e exclusivo desse recurso Membership no formato projects/*/locations/*/memberships/{membershipId}, definido durante a criação.

membershipId precisa ser um rótulo DNS válido e compatível com RFC 1123:

  1. No máximo 63 caracteres
  2. Precisa conter caracteres alfanuméricos minúsculos ou -
  3. Ele precisa começar e terminar com um caractere alfanumérico

Que pode ser expresso como o regex: [a-z0-9]([-a-z0-9]*[a-z0-9])?, com tamanho máximo de 63 caracteres.

labels

map (key: string, value: string)

Opcional. Rótulos para esta assinatura.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

description

string

Apenas saída. Descrição da assinatura, limitada a 63 caracteres. Precisa corresponder ao regex: [a-zA-Z0-9][a-zA-Z0-9_\-\.\ ]*

Esse campo está presente para fins legados.

state

object (MembershipState)

Apenas saída. Estado do recurso Membership.

createTime

string (Timestamp format)

Apenas saída. Quando a assinatura foi criada.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Apenas saída. Quando a assinatura foi atualizada pela última vez.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

deleteTime

string (Timestamp format)

Apenas saída. Quando a assinatura foi excluída.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

externalId

string

Opcional. Um ID gerado externamente e gerenciado para esta assinatura. Esse ID pode ser modificado após a criação, mas isso não é recomendado. Para clusters do GKE, o externalId é gerenciado pela API Hub, e as atualizações serão ignoradas.

O ID precisa corresponder ao regex: [a-zA-Z0-9][a-zA-Z0-9_\-\.]*

Se essa assinatura representar um cluster do Kubernetes, esse valor precisará ser definido como o UID do objeto de namespace kube-system.

authority

object (Authority)

Opcional. Como identificar cargas de trabalho nesta assinatura. Consulte a documentação sobre a Identidade da carga de trabalho para mais detalhes: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

lastConnectionTime

string (Timestamp format)

Apenas saída. Para clusters que usam o Connect, o carimbo de data/hora da conexão mais recente estabelecida com o Google Cloud. Esse horário é atualizado em intervalos de vários minutos, não continuamente. Para clusters que não usam o GKE Connect ou que nunca se conectaram, o campo não será definido.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

uniqueId

string

Apenas saída. UUID gerado pelo Google para este recurso. Ele é exclusivo em todos os recursos Membership. Se um recurso Membership for excluído e outro recurso com o mesmo nome for criado, ele vai receber um UID diferente.

infrastructureType

enum (Membership.InfrastructureType)

Opcional. O tipo de infraestrutura em que a assinatura está sendo executada.

monitoringConfig

object (MonitoringConfig)

Opcional. As informações de configuração de monitoramento para esta assinatura.

Campo de união type. O tipo de recurso representado por esta assinatura type só pode ser um dos seguintes:
endpoint

object (MembershipEndpoint)

Opcional. Informações do endpoint para acessar o membro.

MembershipEndpoint

MembershipEndpoint contém as informações necessárias para entrar em contato com uma API, um endpoint e quaisquer metadados adicionais do Kubernetes.

Representação 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)

Apenas saída. Metadados úteis específicos do Kubernetes.

kubernetesResource

object (KubernetesResource)

Opcional. Os recursos do Kubernetes no cluster que precisam ser aplicados a um cluster registrado corretamente, no estado estável. Estes recursos:

  • Verifique se o cluster está registrado exclusivamente para uma e apenas uma assinatura do hub.
  • Propagar informações do pool de carga de trabalho disponíveis no campo de autoridade de assinatura.
  • Garanta a configuração inicial adequada dos recursos padrão do Hub.
Campo de união type. Informações do cluster registrado. type só pode ser de um dos seguintes tipos:
gkeCluster

object (GkeCluster)

Opcional. Informações específicas de um cluster do GKE no GCP.

onPremCluster

object (OnPremCluster)

Opcional. Informações específicas de um cluster do GKE On-Prem. Um cluster de usuário local que não tem resourceLink não tem permissão para usar este campo. Em vez disso, ele deve ter um "type" nulo.

multiCloudCluster

object (MultiCloudCluster)

Opcional. Informações específicas de um cluster do GKE Multi-cloud.

edgeCluster

object (EdgeCluster)

Opcional. Informações específicas de um cluster do Google Edge.

applianceCluster

object (ApplianceCluster)

Opcional. Informações específicas de um cluster do GDC Edge Appliance.

GkeCluster

GkeCluster contém informações específicas para os clusters do GKE.

Representação JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Campos
clusterMissing

boolean

Apenas saída. Se clusterMissing estiver definido, ele indicará que o cluster do GKE não existe mais no plano de controle do GKE.

OnPremCluster

OnPremCluster contém informações específicas dos clusters do GKE On-Prem.

Representação JSON
{
  "resourceLink": string,
  "clusterMissing": boolean,
  "adminCluster": boolean,
  "clusterType": enum (OnPremCluster.ClusterType)
}
Campos
clusterMissing

boolean

Apenas saída. Se clusterMissing estiver definido, ele indicará que o recurso API(gkeonprem.googleapis.com) para este cluster do GKE On-Prem não existe mais.

adminCluster

boolean

Imutável. Se o cluster é de administrador.

clusterType

enum (OnPremCluster.ClusterType)

Imutável. O tipo do cluster local.

OnPremCluster.ClusterType

ClusterType descreve o tipo do cluster no local.

Tipos enumerados
CLUSTERTYPE_UNSPECIFIED O ClusterType não está definido.
BOOTSTRAP O ClusterType é um cluster de inicialização.
HYBRID O ClusterType é um aglomerado híbrido bare metal.
STANDALONE O ClusterType é um cluster autônomo bare metal.
USER O ClusterType é um cluster de usuário.

MultiCloudCluster

MultiCloudCluster contém informações específicas dos clusters do GKE Multi-cloud.

Representação JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Campos
clusterMissing

boolean

Apenas saída. Se clusterMissing estiver definido, ele indicará que o recurso API(gkemulticloud.googleapis.com) para este cluster do GKE Multi-cloud não existe mais.

EdgeCluster

EdgeCluster contém informações específicas dos clusters de borda do Google.

Representação JSON
{
  "resourceLink": string
}
Campos

ApplianceCluster

ApplianceCluster contém informações específicas para clusters do GDC Edge Appliance.

Representação JSON
{
  "resourceLink": string
}
Campos

KubernetesMetadata

O KubernetesMetadata fornece metadados informativos para Assinaturas criadas com endpoints do Kubernetes (atualmente, eles são equivalentes aos clusters do Kubernetes).

Representação JSON
{
  "kubernetesApiServerVersion": string,
  "nodeProviderId": string,
  "nodeCount": integer,
  "vcpuCount": integer,
  "memoryMb": integer,
  "updateTime": string
}
Campos
kubernetesApiServerVersion

string

Apenas saída. String da versão do servidor da API Kubernetes, conforme informado por "/version".

nodeProviderId

string

Apenas saída. O providerID do nó, conforme informado pelo primeiro nó na lista de nós no endpoint do Kubernetes. Nas plataformas do Kubernetes que dão suporte a clusters sem nó (como GKE-on-GCP), o nodeCount será zero e o nodeProviderId estará vazio.

nodeCount

integer

Apenas saída. Contagem de nós, conforme relatado pelos recursos de nós do Kubernetes.

vcpuCount

integer

Apenas saída. Contagem de vCPUs, conforme relatado pelos recursos de nós do Kubernetes.

memoryMb

integer

Apenas saída. A capacidade total de memória, conforme relatado pela soma de todos os recursos dos nós do Kubernetes, definida em MB.

updateTime

string (Timestamp format)

Apenas saída. A hora em que esses detalhes foram atualizados pela última vez. Esse updateTime é diferente do updateTime no nível da assinatura, já que os EndpointDetails são atualizados internamente para consumidores da API.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

KubernetesResource

KubernetesResource contém os manifestos YAML e a configuração dos recursos Membership do Kubernetes no cluster. Depois de memberships.create ou memberships.patch, esses recursos precisam ser reaplicados no cluster.

Representação JSON
{
  "membershipCrManifest": string,
  "membershipResources": [
    {
      object (ResourceManifest)
    }
  ],
  "connectResources": [
    {
      object (ResourceManifest)
    }
  ],
  "resourceOptions": {
    object (ResourceOptions)
  }
}
Campos
membershipCrManifest

string

Apenas entrada. A representação YAML da resposta automática de assinatura. Esse campo é ignorado para clusters do GKE em que o Hub pode ler a resposta automática diretamente.

Os autores da chamada precisam fornecer a resposta automática que está presente no cluster durante a criação ou atualização ou deixar este campo em branco se não houver nenhum. O manifesto da resposta automática é usado para validar se o cluster não foi registrado em outra assinatura.

membershipResources[]

object (ResourceManifest)

Apenas saída. Outros recursos do Kubernetes que precisam ser aplicados ao cluster após a criação da assinatura e depois de cada atualização.

Esse campo só é preenchido na assinatura retornada de uma operação de longa duração bem-sucedida de memberships.create ou memberships.patch. Ele não é preenchido durante as solicitações normais de memberships.get ou memberships.list. Para receber o manifesto do recurso após o registro inicial, o autor da chamada precisa fazer uma chamada memberships.patch com uma máscara de campo vazia.

connectResources[]

object (ResourceManifest)

Apenas saída. Os recursos do Kubernetes para instalar o agente do GKE Connect.

Esse campo só é preenchido na Assinatura retornada de uma operação de longa duração bem-sucedida de memberships.create ou memberships.patch. Ele não é preenchido durante as solicitações normais de memberships.get ou memberships.list. Para receber o manifesto do recurso após o registro inicial, o autor da chamada precisa fazer uma chamada memberships.patch com uma máscara de campo vazia.

resourceOptions

object (ResourceOptions)

Opcional. Opções para geração de recursos do Kubernetes.

ResourceManifest

ResourceManifest representa um único recurso do Kubernetes a ser aplicado ao cluster.

Representação JSON
{
  "manifest": string,
  "clusterScoped": boolean
}
Campos
manifest

string

Manifesto YAML do recurso.

clusterScoped

boolean

Indica se o recurso fornecido no manifesto é clusterScoped. Se não definido, será considerado que o manifesto tem o escopo para o namespace.

Esse campo é usado para o mapeamento REST ao aplicar o recurso em um cluster.

ResourceOptions

ResourceOptions representa opções para geração de recursos do Kubernetes.

Representação JSON
{
  "connectVersion": string,
  "v1beta1Crd": boolean,
  "k8sVersion": string
}
Campos
connectVersion

string

Opcional. A versão do agente do Connect a ser usada para connectResources. O padrão é a versão mais recente do GKE Connect. A versão precisa ter suporte atualmente. As versões obsoletas serão rejeitadas.

v1beta1Crd

boolean

Opcional. Uso de apiextensions/v1beta1 em vez de apiextensions/v1 para recursos CustomResourceDefinition. Esta opção deve ser definida para clusters com versões do APIserver do Kubernetes anteriores à 1.16.

k8sVersion

string

Opcional. Versão principal do cluster do Kubernetes. Usado apenas para determinar qual versão usar para os recursos CustomResourceDefinition, apiextensions/v1beta1 ou apiextensions/v1.

MembershipState

MembershipState descreve o estado de um recurso Membership.

Representação JSON
{
  "code": enum (MembershipState.Code)
}
Campos
code

enum (MembershipState.Code)

Apenas saída. O estado atual do recurso Membership.

MembershipState.Code

O código descreve o estado de um recurso Membership.

Tipos enumerados
CODE_UNSPECIFIED O código não foi definido.
CREATING O cluster está sendo registrado.
READY O cluster está registrado.
DELETING O registro do cluster está sendo cancelado.
UPDATING A assinatura está sendo atualizada.
SERVICE_UPDATING A assinatura está sendo atualizada pelo serviço de hub.

Autoridade

A autoridade codifica como o Google reconhecerá as identidades desta assinatura. Consulte a documentação de identidade da carga de trabalho para mais detalhes: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

Representação JSON
{
  "issuer": string,
  "oidcJwks": string,
  "identityProvider": string,
  "workloadIdentityPool": string
}
Campos
issuer

string

Opcional. Um URI do emissor do JSON Web Token (JWT). issuer precisa começar com https:// e ser um URL válido com menos de 2.000 caracteres.

Se definido, o Google vai permitir que tokens OIDC válidos deste emissor sejam autenticados no workloadIdentityPool. A descoberta do OIDC será executada neste URI para validar os tokens do emissor, a menos que oidcJwks esteja definido.

Limpar issuer desativa a Identidade da carga de trabalho. Não é possível modificar issuer diretamente. Ela precisa ser removida (e a Identidade da carga de trabalho desativada) antes de usar um novo emissor (e reativar a Identidade da carga de trabalho).

oidcJwks

string (bytes format)

Opcional. Chaves de verificação do OIDC para essa assinatura no formato JWKS (RFC 7517).

Quando este campo for definido, a descoberta do OIDC NÃO será realizada no issuer. Em vez disso, os tokens OIDC serão validados usando este campo.

Uma string codificada em base64.

identityProvider

string

Apenas saída. Um provedor de identidade que reflete o issuer no pool de Identidade da carga de trabalho.

workloadIdentityPool

string

Apenas saída. O nome do pool de Identidade da carga de trabalho em que issuer será reconhecido.

Há um único pool de Identidade da carga de trabalho por hub compartilhado entre todas as assinaturas que pertencem a esse hub. Para um Hub hospedado em {PROJECT_ID}, o formato do pool de cargas de trabalho é {PROJECT_ID}.hub.id.goog, mas isso está sujeito a mudanças em versões mais recentes dessa API.

Membership.InfrastructureType

Especifica o tipo de infraestrutura de uma assinatura. O tipo de infraestrutura é usado pelo Hub para controlar o comportamento específico da infraestrutura, incluindo preços.

Cada distribuição do GKE (on-GCP, no local, on-X etc.) definirá esse campo automaticamente, mas os clientes de clusters anexados precisam especificar um tipo durante o registro.

Enums
INFRASTRUCTURE_TYPE_UNSPECIFIED Nenhum tipo foi especificado. Algumas funcionalidades do Hub podem exigir a especificação de um tipo e não são compatíveis com assinaturas com esse valor.
ON_PREM Infraestrutura privada que pertence ou é operada pelo cliente. Isso inclui distribuições do GKE como GKE-OnPrem e GKE-OnBareMetal.
MULTI_CLOUD Infraestrutura em nuvem pública.

MonitoringConfig

MonitoringConfig informa aos aplicativos/serviços/interfaces baseados em frota como as métricas do cluster subjacente são informadas aos serviços do Cloud Monitoring. Ele pode ser definido de vazio para não vazio, mas não pode ser mudado diretamente para evitar a quebra acidental da consistência das métricas.

Representação JSON
{
  "projectId": string,
  "location": string,
  "cluster": string,
  "kubernetesMetricsPrefix": string,
  "clusterHash": string
}
Campos
projectId

string

Opcional. Projeto usado para informar métricas

location

string

Opcional. Local usado para informar métricas

cluster

string

Opcional. Nome do cluster usado para informar métricas. Para clusters do Anthos VMWare/Baremetal/MultiCloud, ele estaria no formato {clusterType}/{clusterName}, por exemplo, "awsClusters/cluster_1".

kubernetesMetricsPrefix

string

Opcional. As métricas do sistema do Kubernetes, se disponíveis, são gravadas nesse prefixo. O padrão é kubernetes.io para GKE e kubernetes.io/anthos para Anthos em algum momento. Observação: o Anthos MultiCloud terá o prefixo kubernetes.io hoje, mas a migração vai ficar em kubernetes.io/anthos.

clusterHash

string

Opcional. Para clusters do GKE e do Multicloud, esse é o UUID do recurso do cluster. Para clusters do VMWare e do Baremetal, esse é o UID do kube-system.

Métodos

create

Cria uma nova assinatura.

delete

Remove uma assinatura.

generateConnectManifest

Gera o manifesto para implantação do agente do GKE Connect.

get

Recebe os detalhes de uma assinatura.

getIamPolicy

Busca a política de controle de acesso de um recurso.

list

Lista assinaturas em um determinado projeto e local.

patch

Atualiza uma assinatura atual.

setIamPolicy

Define a política de controle de acesso no recurso especificado.

testIamPermissions

Retorna permissões do autor da chamada no recurso especificado.