BigtableAppProfile


Property Value
Google Cloud Service Name Cloud Bigtable
Google Cloud Service Documentation /bigtable/docs/
Google Cloud REST Resource Name bigtableadmin/v2/projects.instances.appProfiles
Google Cloud REST Resource Documentation /bigtable/docs/reference/admin/rest/v2/projects.instances.appProfiles
Config Connector Resource Short Names gcpbigtableappprofile
gcpbigtableappprofiles
bigtableappprofile
Config Connector Service Name bigtableadmin.googleapis.com
Config Connector Resource Fully Qualified Name bigtableappprofiles.bigtable.cnrm.cloud.google.com
Can Be Referenced by IAMPolicy/IAMPolicyMember No
Config Connector Default Average Reconcile Interval In Seconds 600

Custom Resource Definition Properties

Annotations

Fields
cnrm.cloud.google.com/ignore-warnings
cnrm.cloud.google.com/project-id
cnrm.cloud.google.com/state-into-spec

Spec

Schema

description: string
instanceRef:
  external: string
  name: string
  namespace: string
multiClusterRoutingClusterIds:
- string
multiClusterRoutingUseAny: boolean
resourceID: string
singleClusterRouting:
  allowTransactionalWrites: boolean
  clusterId: string
standardIsolation:
  priority: string
Fields

description

Optional

string

Long form description of the use case for this app profile.

instanceRef

Optional

object

The instance to create the app profile within.

instanceRef.external

Optional

string

Allowed value: The `name` field of a `BigtableInstance` resource.

instanceRef.name

Optional

string

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

instanceRef.namespace

Optional

string

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

multiClusterRoutingClusterIds

Optional

list (string)

The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all clusters are eligible.

multiClusterRoutingClusterIds[]

Optional

string

multiClusterRoutingUseAny

Optional

boolean

If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes consistency to improve availability.

resourceID

Optional

string

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

singleClusterRouting

Optional

object

Use a single-cluster routing policy.

singleClusterRouting.allowTransactionalWrites

Optional

boolean

If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile. It is unsafe to send these requests to the same table/row/column in multiple clusters.

singleClusterRouting.clusterId

Required*

string

The cluster to which read/write requests should be routed.

standardIsolation

Optional

object

The standard options used for isolating this app profile's traffic from other use cases.

standardIsolation.priority

Required*

string

The priority of requests sent using this app profile. Possible values: ["PRIORITY_LOW", "PRIORITY_MEDIUM", "PRIORITY_HIGH"].

* Field is required when parent field is specified

Status

Schema

conditions:
- lastTransitionTime: string
  message: string
  reason: string
  status: string
  type: string
name: string
observedGeneration: integer
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.

name

string

The unique name of the requested app profile. Values are of the form 'projects//instances//appProfiles/'.

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.

Sample YAML(s)

Multicluster Bigtable App Profile

# Copyright 2020 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: bigtable.cnrm.cloud.google.com/v1beta1
kind: BigtableAppProfile
metadata:
  name: bigtableappprofile-sample-multicluster
  annotations:
    cnrm.cloud.google.com/ignore-warnings: "true"
spec:
  description: Automatically routes requests to the nearest available cluster in an instance.
  instanceRef:
    name: bigtableappprofile-dep-multi
  multiClusterRoutingUseAny: true
  multiClusterRoutingClusterIds:
    - bigtableappprofile-dep1-multi
    - bigtableappprofile-dep2-multi
---
apiVersion: bigtable.cnrm.cloud.google.com/v1beta1
kind: BigtableInstance
metadata:
  name: bigtableappprofile-dep-multi
spec:
  displayName: BigtableSample
  cluster:
  - clusterId: bigtableappprofile-dep1-multi
    zone: us-central1-a
    numNodes: 3
  - clusterId: bigtableappprofile-dep2-multi
    zone: us-west1-a
    numNodes: 3

Priority Bigtable App Profile

# Copyright 2023 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: bigtable.cnrm.cloud.google.com/v1beta1
kind: BigtableAppProfile
metadata:
  name: bigtableappprofile-sample-priority
spec:
  description: Sends all requests with LOW priority.
  instanceRef:
    name: bigtableappprofile-dep-priority
  singleClusterRouting:
    allowTransactionalWrites: true
    clusterId: bigtableappprofile-dep1-pty
  standardIsolation:
    priority: PRIORITY_LOW
---
apiVersion: bigtable.cnrm.cloud.google.com/v1beta1
kind: BigtableInstance
metadata:
  name: bigtableappprofile-dep-priority
spec:
  displayName: BigtableSample
  cluster:
  - clusterId: bigtableappprofile-dep1-pty
    zone: us-central1-a
    numNodes: 3
  - clusterId: bigtableappprofile-dep2-pty
    zone: us-west1-a
    numNodes: 3

Single Cluster Bigtable App Profile

# Copyright 2020 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: bigtable.cnrm.cloud.google.com/v1beta1
kind: BigtableAppProfile
metadata:
  name: bigtableappprofile-sample-singlecluster
spec:
  description: Routes all requests to a single cluster. If that cluster becomes unavailable, you must manually fail over to another cluster.
  instanceRef:
    name: bigtableappprofile-dep-single
  singleClusterRouting:
    allowTransactionalWrites: true
    clusterId: bigtableappprofile-dep1-single
---
apiVersion: bigtable.cnrm.cloud.google.com/v1beta1
kind: BigtableInstance
metadata:
  name: bigtableappprofile-dep-single
spec:
  displayName: BigtableSample
  instanceType: PRODUCTION
  cluster:
  - clusterId: bigtableappprofile-dep1-single
    zone: us-central1-a
    numNodes: 3
  - clusterId: bigtableappprofile-dep2-single
    zone: us-west1-a
    numNodes: 3