GKEHubFeature

Property Value
Google Cloud Service Name GKE Hub
Google Cloud Service Documentation /anthos/multicluster-management/connect/overview
Google Cloud REST Resource Name v1beta1.projects.locations.features
Google Cloud REST Resource Documentation https://gkehub.googleapis.com/$discovery/rest?version=v1beta
Config Connector Resource Short Names gcpgkehubfeature
gcpgkehubfeatures
gkehubfeature
Config Connector Service Name gkehub.googleapis.com
Config Connector Resource Fully Qualified Name gkehubfeatures.gkehub.cnrm.cloud.google.com
Can Be Referenced by IAMPolicy/IAMPolicyMember No

Custom Resource Definition Properties

Spec

Schema

  location: string
  projectRef:
    external: string
    name: string
    namespace: string
  resourceID: string
  spec:
    multiclusteringress:
      configMembershipRef:
        external: string
        name: string
        namespace: string
Fields

location

Required

string

The location for the resource

projectRef

Required

object

The Project that this resource belongs to.

projectRef.external

Optional

string

The project for the resource

projectRef.name

Optional

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

projectRef.namespace

Optional

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceID

Optional

string

Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.

spec

Optional

object

Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.

spec.multiclusteringress

Optional

object

Multicluster Ingress-specific spec.

spec.multiclusteringress.configMembershipRef

Required*

object

spec.multiclusteringress.configMembershipRef.external

Optional

string

Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`

spec.multiclusteringress.configMembershipRef.name

Optional

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

spec.multiclusteringress.configMembershipRef.namespace

Optional

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

* Field is required when parent field is specified

Status

Schema

  conditions:
  - lastTransitionTime: string
    message: string
    reason: string
    status: string
    type: string
  createTime: string
  deleteTime: string
  observedGeneration: integer
  resourceState:
    hasResources: boolean
    state: string
  state:
    state:
      code: string
      description: string
      updateTime: string
  updateTime: string
Fields
conditions

list (object)

Conditions represent the latest available observation of the resource's current state.

conditions.[]

object

conditions.[].lastTransitionTime

string

Last time the condition transitioned from one status to another.

conditions.[].message

string

Human-readable message indicating details about last transition.

conditions.[].reason

string

Unique, one-word, CamelCase reason for the condition's last transition.

conditions.[].status

string

Status is the status of the condition. Can be True, False, Unknown.

conditions.[].type

string

Type is the type of the condition.

createTime

string

Output only. When the Feature resource was created.

deleteTime

string

Output only. When the Feature resource was deleted.

observedGeneration

integer

ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.

resourceState

object

State of the Feature resource itself.

resourceState.hasResources

boolean

Whether this Feature has outstanding resources that need to be cleaned up before it can be disabled.

resourceState.state

string

The current state of the Feature resource in the Hub API. Possible values: STATE_UNSPECIFIED, ENABLING, ACTIVE, DISABLING, UPDATING, SERVICE_UPDATING

state

object

Output only. The Hub-wide Feature state

state.state

object

Output only. The "running state" of the Feature in this Hub.

state.state.code

string

The high-level, machine-readable status of this Feature. Possible values: CODE_UNSPECIFIED, OK, WARNING, ERROR

state.state.description

string

A human-readable description of the current status.

state.state.updateTime

string

The time this status and any related Feature-specific details were updated. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"

updateTime

string

Output only. When the Feature resource was last updated.

Sample YAML(s)

Anthos Config Management Feature

  # Copyright 2021 Google LLC
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
  kind: GKEHubFeature
  metadata:
    name: gkehubfeature-sample-acmfeature
    labels:
      label-one: value-one
  spec:
    projectRef:
      name: gkehubfeature-dep-acmfeature
    location: global
    # The resourceID must be "configmanagement" if you want to use Anthos config
    # management feature.
    resourceID: configmanagement
  ---
  apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
  kind: Project
  metadata:
    annotations:
      cnrm.cloud.google.com/auto-create-network: "false"
    name: gkehubfeature-dep-acmfeature
  spec:
    name: Config Connector Sample
    organizationRef:
      # Replace "${ORG_ID?}" with the numeric ID for your organization
      external: "${ORG_ID?}"
    billingAccountRef:
      # Replace "${BILLING_ACCOUNT_ID?}" with the numeric ID for your billing account
      external: "${BILLING_ACCOUNT_ID?}"
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/disable-dependent-services: "false"
    name: gkehubfeature-dep-acmfeature-1
  spec:
    resourceID: gkehub.googleapis.com
    projectRef:
      name: gkehubfeature-dep-acmfeature
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/disable-dependent-services: "false"
    name: gkehubfeature-dep-acmfeature-2
  spec:
    resourceID: anthosconfigmanagement.googleapis.com
    projectRef:
      name: gkehubfeature-dep-acmfeature

Multi Cluster Ingress Feature

  # Copyright 2021 Google LLC
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
  kind: GKEHubFeature
  metadata:
    name: gkehubfeature-sample-mcifeature
    labels:
      label-one: value-one
  spec:
    projectRef:
      name: gkehubfeature-dep-mcifeature
    location: global
    # The resourceID must be "multiclusteringress" if you want to use multi-cluster
    # ingress feature.
    resourceID: multiclusteringress
    spec:
      multiclusteringress:
        configMembershipRef:
          name: gkehubfeature-dep-mcifeature
  ---
  apiVersion: container.cnrm.cloud.google.com/v1beta1
  kind: ContainerCluster
  metadata:
    annotations:
      cnrm.cloud.google.com/project-id: gkehubfeature-dep-mcifeature
    name: gkehubfeature-dep-mcifeature
  spec:
    location: us-central1-a
    initialNodeCount: 1
    workloadIdentityConfig:
      # Workload Identity supports only a single namespace based on your project name.
      identityNamespace: gkehubfeature-dep-mcifeature.svc.id.goog
  ---
  apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
  kind: GKEHubMembership
  metadata:
    annotations:
      cnrm.cloud.google.com/project-id: gkehubfeature-dep-mcifeature
    name: gkehubfeature-dep-mcifeature
  spec:
    location: global
    authority:
      # Issuer must contain a link to a valid JWT issuer. Your ContainerCluster is one.
      issuer: https://container.googleapis.com/v1/projects/gkehubfeature-dep-mcifeature/locations/us-central1-a/clusters/gkehubfeature-dep-mcifeature
    description: A sample GKE Hub membership
    endpoint:
      gkeCluster:
        resourceRef:
          name: gkehubfeature-dep-mcifeature
  ---
  apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
  kind: Project
  metadata:
    name: gkehubfeature-dep-mcifeature
  spec:
    name: Config Connector Sample
    organizationRef:
      # Replace "${ORG_ID?}" with the numeric ID for your organization
      external: "${ORG_ID?}"
    billingAccountRef:
      # Replace "${BILLING_ACCOUNT_ID?}" with the numeric ID for your billing account
      external: "${BILLING_ACCOUNT_ID?}"
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/deletion-policy: abandon
    name: gkehubfeature-dep-mcifeature-1
  spec:
    resourceID: container.googleapis.com
    projectRef:
      name: gkehubfeature-dep-mcifeature
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/disable-dependent-services: "false"
    name: gkehubfeature-dep-mcifeature-2
  spec:
    resourceID: gkehub.googleapis.com
    projectRef:
      name: gkehubfeature-dep-mcifeature
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/disable-dependent-services: "false"
    name: gkehubfeature-dep-mcifeature-3
  spec:
    resourceID: multiclusteringress.googleapis.com
    projectRef:
      name: gkehubfeature-dep-mcifeature
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/disable-dependent-services: "false"
    name: gkehubfeature-dep-mcifeature-4
  spec:
    resourceID: multiclusterservicediscovery.googleapis.com
    projectRef:
      name: gkehubfeature-dep-mcifeature

Multi Cluster Service Discovery Feature

  # Copyright 2021 Google LLC
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
  kind: GKEHubFeature
  metadata:
    name: gkehubfeature-sample-mcsdfeature
  spec:
    projectRef:
      name: gkehubfeature-dep-mcsdfeature
    location: global
    # The resourceID must be "multiclusterservicediscovery" if you want to use
    # multi-cluster service discovery feature.
    resourceID: multiclusterservicediscovery
  ---
  apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
  kind: Project
  metadata:
    annotations:
      cnrm.cloud.google.com/auto-create-network: "false"
    name: gkehubfeature-dep-mcsdfeature
  spec:
    name: Config Connector Sample
    organizationRef:
      # Replace "${ORG_ID?}" with the numeric ID for your organization
      external: "${ORG_ID?}"
    billingAccountRef:
      # Replace "${BILLING_ACCOUNT_ID?}" with the numeric ID for your billing account
      external: "${BILLING_ACCOUNT_ID?}"
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/disable-dependent-services: "false"
    name: gkehubfeature-dep-mcsdfeature-1
  spec:
    resourceID: gkehub.googleapis.com
    projectRef:
      name: gkehubfeature-dep-mcsdfeature
  ---
  apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
  kind: Service
  metadata:
    annotations:
      cnrm.cloud.google.com/disable-dependent-services: "false"
    name: gkehubfeature-dep-mcsdfeature-2
  spec:
    resourceID: multiclusterservicediscovery.googleapis.com
    projectRef:
      name: gkehubfeature-dep-mcsdfeature