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

Immutable. The location for the resource

projectRef

Required

object

Immutable. The Project that this resource belongs to.

projectRef.external

Optional

string

The project for the resource Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).

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` Allowed value: The Google Cloud resource name of a `GKEHubMembership` resource (format: `projects/{{project}}/locations/{{location}}/memberships/{{name}}`).

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.
    workloadPool: 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