ComputeRouterNAT

Property Value
Google Cloud Service Name Compute Engine
Google Cloud Service Documentation /compute/docs/
Google Cloud REST Resource Name v1.routers
Google Cloud REST Resource Documentation /compute/docs/reference/rest/v1/routers
Config Connector Resource Short Names gcpcomputerouternat
gcpcomputerouternats
computerouternat
Config Connector Service Name compute.googleapis.com
Config Connector Resource Fully Qualified Name computerouternats.compute.cnrm.cloud.google.com
Can Be Referenced by IAMPolicy/IAMPolicyMember No

Custom Resource Definition Properties

Annotations

Fields
cnrm.cloud.google.com/project-id

Spec

Schema

drainNatIps:
- external: string
  name: string
  namespace: string
icmpIdleTimeoutSec: integer
logConfig:
  enable: boolean
  filter: string
minPortsPerVm: integer
natIpAllocateOption: string
natIps:
- external: string
  name: string
  namespace: string
region: string
routerRef:
  external: string
  name: string
  namespace: string
sourceSubnetworkIpRangesToNat: string
subnetwork:
- secondaryIpRangeNames:
  - string
  sourceIpRangesToNat:
  - string
  subnetworkRef:
    external: string
    name: string
    namespace: string
tcpEstablishedIdleTimeoutSec: integer
tcpTransitoryIdleTimeoutSec: integer
udpIdleTimeoutSec: integer
Fields

drainNatIps

Optional

list (object)

A list of IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT.

drainNatIps.[]

Optional

object

A list of IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT.

drainNatIps.[].external

Optional

string

The selfLink of a ComputeAddress.

drainNatIps.[].name

Optional

string

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

drainNatIps.[].namespace

Optional

string

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

icmpIdleTimeoutSec

Optional

integer

Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.

logConfig

Optional

object

Configuration for logging on NAT

logConfig.enable

Required*

boolean

Indicates whether or not to export logs.

logConfig.filter

Required*

string

Specifies the desired filtering of logs on this NAT. Possible values: ["ERRORS_ONLY", "TRANSLATIONS_ONLY", "ALL"]

minPortsPerVm

Optional

integer

Minimum number of ports allocated to a VM from this NAT.

natIpAllocateOption

Required

string

How external IPs should be allocated for this NAT. Valid values are 'AUTO_ONLY' for only allowing NAT IPs allocated by Google Cloud Platform, or 'MANUAL_ONLY' for only user-allocated NAT IP addresses. Possible values: ["MANUAL_ONLY", "AUTO_ONLY"]

natIps

Optional

list (object)

NAT IPs. Only valid if natIpAllocateOption is set to MANUAL_ONLY.

natIps.[]

Optional

object

NAT IPs. Only valid if natIpAllocateOption is set to MANUAL_ONLY.

natIps.[].external

Optional

string

The selfLink of a ComputeAddress.

natIps.[].name

Optional

string

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

natIps.[].namespace

Optional

string

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

region

Required

string

Region where the router and NAT reside.

routerRef

Required

object

The Cloud Router in which this NAT will be configured.

routerRef.external

Optional

string

The name of a ComputeRouter.

routerRef.name

Optional

string

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

routerRef.namespace

Optional

string

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

sourceSubnetworkIpRangesToNat

Required

string

How NAT should be configured per Subnetwork. If 'ALL_SUBNETWORKS_ALL_IP_RANGES', all of the IP ranges in every Subnetwork are allowed to Nat. If 'ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES', all of the primary IP ranges in every Subnetwork are allowed to Nat. 'LIST_OF_SUBNETWORKS': A list of Subnetworks are allowed to Nat (specified in the field subnetwork below). Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other RouterNat section in any Router for this network in this region. Possible values: ["ALL_SUBNETWORKS_ALL_IP_RANGES", "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", "LIST_OF_SUBNETWORKS"]

subnetwork

Optional

list (object)

subnetwork.[]

Optional

object

subnetwork.[].secondaryIpRangeNames

Optional

list (string)

subnetwork.[].secondaryIpRangeNames.[]

Optional

string

subnetwork.[].sourceIpRangesToNat

Required*

list (string)

subnetwork.[].sourceIpRangesToNat.[]

Required*

string

subnetwork.[].subnetworkRef

Required*

object

The subnetwork to NAT.

subnetwork.[].subnetworkRef.external

Optional

string

The selfLink of a ComputeSubnetwork.

subnetwork.[].subnetworkRef.name

Optional

string

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

subnetwork.[].subnetworkRef.namespace

Optional

string

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

tcpEstablishedIdleTimeoutSec

Optional

integer

Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set.

tcpTransitoryIdleTimeoutSec

Optional

integer

Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.

udpIdleTimeoutSec

Optional

integer

Timeout (in seconds) for UDP connections. Defaults to 30s if not set.

* Field is required when parent field is specified

Status

Schema

conditions:
- lastTransitionTime: string
  message: string
  reason: string
  status: string
  type: string
Fields
conditions

list (object)

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.

Sample YAML(s)

Router Nat For All Subnets

# 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: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeRouterNAT
metadata:
  name: computerouternat-sample-forallsubnets
spec:
  region: us-west1
  routerRef:
    name: computerouternat-dep-forallsubnets
  natIpAllocateOption: AUTO_ONLY
  sourceSubnetworkIpRangesToNat: ALL_SUBNETWORKS_ALL_IP_RANGES
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeNetwork
metadata:
  labels:
    label-one: "value-one"
  name: computerouternat-dep-forallsubnets
spec:
  routingMode: REGIONAL
  autoCreateSubnetworks: false
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeRouter
metadata:
  name: computerouternat-dep-forallsubnets
spec:
  description: example router description
  region: us-west1
  networkRef:
    name: computerouternat-dep-forallsubnets

Router Nat For List Of Subnets

# 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: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeRouterNAT
metadata:
  name: computerouternat-sample-forlistofsubnets
spec:
  region: us-west1
  natIpAllocateOption: AUTO_ONLY
  routerRef:
    name: computerouternat-dep-forlistofsubnets
  sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
  subnetwork:
  - subnetworkRef:
      name: computerouternat-dep-forlistofsubnets
    sourceIpRangesToNat:
    - ALL_IP_RANGES
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeNetwork
metadata:
  labels:
    label-one: "value-one"
  name: computerouternat-dep-forlistofsubnets
spec:
  routingMode: REGIONAL
  autoCreateSubnetworks: false
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeRouter
metadata:
  name: computerouternat-dep-forlistofsubnets
spec:
  description: example router description
  region: us-west1
  networkRef:
    name: computerouternat-dep-forlistofsubnets
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeSubnetwork
metadata:
  labels:
    label-one: "value-one"
  name: computerouternat-dep-forlistofsubnets
spec:
  description: My subnet
  ipCidrRange: 10.1.0.0/16
  region: us-west1
  networkRef:
    name: computerouternat-dep-forlistofsubnets

Router Nat With Manual Nat Ips

# 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: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeRouterNAT
metadata:
  name: computerouternat-sample-withmanualnatips
spec:
  region: us-west1
  routerRef:
    name: computerouternat-dep-withmanualnatips
  natIpAllocateOption: MANUAL_ONLY
  natIps:
  - name: computerouternat-dep-withmanualnatips
  sourceSubnetworkIpRangesToNat: ALL_SUBNETWORKS_ALL_IP_RANGES
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeAddress
metadata:
  name: computerouternat-dep-withmanualnatips
spec:
  location: us-west1
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeNetwork
metadata:
  labels:
    label-one: "value-one"
  name: computerouternat-dep-withmanualnatips
spec:
  routingMode: REGIONAL
  autoCreateSubnetworks: false
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeRouter
metadata:
  name: computerouternat-dep-withmanualnatips
spec:
  description: example router description
  region: us-west1
  networkRef:
    name: computerouternat-dep-withmanualnatips