...

Text file src/github.com/GoogleCloudPlatform/k8s-config-connector/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_computerouternats.compute.cnrm.cloud.google.com.yaml

Documentation: github.com/GoogleCloudPlatform/k8s-config-connector/config/crds/resources

     1apiVersion: apiextensions.k8s.io/v1
     2kind: CustomResourceDefinition
     3metadata:
     4  annotations:
     5    cnrm.cloud.google.com/version: 0.0.0-dev
     6  creationTimestamp: null
     7  labels:
     8    cnrm.cloud.google.com/managed-by-kcc: "true"
     9    cnrm.cloud.google.com/stability-level: stable
    10    cnrm.cloud.google.com/system: "true"
    11    cnrm.cloud.google.com/tf2crd: "true"
    12  name: computerouternats.compute.cnrm.cloud.google.com
    13spec:
    14  group: compute.cnrm.cloud.google.com
    15  names:
    16    categories:
    17    - gcp
    18    kind: ComputeRouterNAT
    19    plural: computerouternats
    20    shortNames:
    21    - gcpcomputerouternat
    22    - gcpcomputerouternats
    23    singular: computerouternat
    24  preserveUnknownFields: false
    25  scope: Namespaced
    26  versions:
    27  - additionalPrinterColumns:
    28    - jsonPath: .metadata.creationTimestamp
    29      name: Age
    30      type: date
    31    - description: When 'True', the most recent reconcile of the resource succeeded
    32      jsonPath: .status.conditions[?(@.type=='Ready')].status
    33      name: Ready
    34      type: string
    35    - description: The reason for the value in 'Ready'
    36      jsonPath: .status.conditions[?(@.type=='Ready')].reason
    37      name: Status
    38      type: string
    39    - description: The last transition time for the value in 'Status'
    40      jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
    41      name: Status Age
    42      type: date
    43    name: v1beta1
    44    schema:
    45      openAPIV3Schema:
    46        properties:
    47          apiVersion:
    48            description: 'apiVersion defines the versioned schema of this representation
    49              of an object. Servers should convert recognized schemas to the latest
    50              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
    51            type: string
    52          kind:
    53            description: 'kind is a string value representing the REST resource this
    54              object represents. Servers may infer this from the endpoint the client
    55              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
    56            type: string
    57          metadata:
    58            type: object
    59          spec:
    60            properties:
    61              drainNatIps:
    62                items:
    63                  description: |-
    64                    A list of IP resources to be drained. These IPs must be valid
    65                    static external IPs that have been assigned to the NAT.
    66                  oneOf:
    67                  - not:
    68                      required:
    69                      - external
    70                    required:
    71                    - name
    72                  - not:
    73                      anyOf:
    74                      - required:
    75                        - name
    76                      - required:
    77                        - namespace
    78                    required:
    79                    - external
    80                  properties:
    81                    external:
    82                      description: 'Allowed value: The `selfLink` field of a `ComputeAddress`
    83                        resource.'
    84                      type: string
    85                    name:
    86                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
    87                      type: string
    88                    namespace:
    89                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
    90                      type: string
    91                  type: object
    92                type: array
    93              enableDynamicPortAllocation:
    94                description: |-
    95                  Enable Dynamic Port Allocation.
    96                  If minPortsPerVm is set, minPortsPerVm must be set to a power of two greater than or equal to 32.
    97                  If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config.
    98                  If maxPortsPerVm is set, maxPortsPerVm must be set to a power of two greater than minPortsPerVm.
    99                  If maxPortsPerVm is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config.
   100
   101                  Mutually exclusive with enableEndpointIndependentMapping.
   102                type: boolean
   103              enableEndpointIndependentMapping:
   104                description: |-
   105                  Specifies if endpoint independent mapping is enabled. This is enabled by default. For more information
   106                  see the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).
   107                type: boolean
   108              icmpIdleTimeoutSec:
   109                description: Timeout (in seconds) for ICMP connections. Defaults to
   110                  30s if not set.
   111                type: integer
   112              logConfig:
   113                description: Configuration for logging on NAT.
   114                properties:
   115                  enable:
   116                    description: Indicates whether or not to export logs.
   117                    type: boolean
   118                  filter:
   119                    description: 'Specifies the desired filtering of logs on this
   120                      NAT. Possible values: ["ERRORS_ONLY", "TRANSLATIONS_ONLY", "ALL"].'
   121                    type: string
   122                required:
   123                - enable
   124                - filter
   125                type: object
   126              maxPortsPerVm:
   127                description: |-
   128                  Maximum number of ports allocated to a VM from this NAT.
   129                  This field can only be set when enableDynamicPortAllocation is enabled.
   130                type: integer
   131              minPortsPerVm:
   132                description: Minimum number of ports allocated to a VM from this NAT.
   133                type: integer
   134              natIpAllocateOption:
   135                description: |-
   136                  How external IPs should be allocated for this NAT. Valid values are
   137                  'AUTO_ONLY' for only allowing NAT IPs allocated by Google Cloud
   138                  Platform, or 'MANUAL_ONLY' for only user-allocated NAT IP addresses. Possible values: ["MANUAL_ONLY", "AUTO_ONLY"].
   139                type: string
   140              natIps:
   141                items:
   142                  description: NAT IPs. Only valid if natIpAllocateOption is set to
   143                    MANUAL_ONLY.
   144                  oneOf:
   145                  - not:
   146                      required:
   147                      - external
   148                    required:
   149                    - name
   150                  - not:
   151                      anyOf:
   152                      - required:
   153                        - name
   154                      - required:
   155                        - namespace
   156                    required:
   157                    - external
   158                  properties:
   159                    external:
   160                      description: 'Allowed value: The `selfLink` field of a `ComputeAddress`
   161                        resource.'
   162                      type: string
   163                    name:
   164                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   165                      type: string
   166                    namespace:
   167                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   168                      type: string
   169                  type: object
   170                type: array
   171              region:
   172                description: Immutable. Region where the router and NAT reside.
   173                type: string
   174              resourceID:
   175                description: Immutable. Optional. The name of the resource. Used for
   176                  creation and acquisition. When unset, the value of `metadata.name`
   177                  is used as the default.
   178                type: string
   179              routerRef:
   180                description: The Cloud Router in which this NAT will be configured.
   181                oneOf:
   182                - not:
   183                    required:
   184                    - external
   185                  required:
   186                  - name
   187                - not:
   188                    anyOf:
   189                    - required:
   190                      - name
   191                    - required:
   192                      - namespace
   193                  required:
   194                  - external
   195                properties:
   196                  external:
   197                    description: 'Allowed value: The `name` field of a `ComputeRouter`
   198                      resource.'
   199                    type: string
   200                  name:
   201                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   202                    type: string
   203                  namespace:
   204                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   205                    type: string
   206                type: object
   207              rules:
   208                description: A list of rules associated with this NAT.
   209                items:
   210                  properties:
   211                    action:
   212                      description: The action to be enforced for traffic that matches
   213                        this rule.
   214                      properties:
   215                        sourceNatActiveIpsRefs:
   216                          items:
   217                            description: |-
   218                              A list of URLs of the IP resources used for this NAT rule. These IP
   219                              addresses must be valid static external IP addresses assigned to the
   220                              project. This field is used for public NAT.
   221                            oneOf:
   222                            - not:
   223                                required:
   224                                - external
   225                              required:
   226                              - name
   227                            - not:
   228                                anyOf:
   229                                - required:
   230                                  - name
   231                                - required:
   232                                  - namespace
   233                              required:
   234                              - external
   235                            properties:
   236                              external:
   237                                description: 'Allowed value: The `selfLink` field
   238                                  of a `ComputeAddress` resource.'
   239                                type: string
   240                              name:
   241                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   242                                type: string
   243                              namespace:
   244                                description: 'Namespace of the referent. More info:
   245                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   246                                type: string
   247                            type: object
   248                          type: array
   249                        sourceNatDrainIpsRefs:
   250                          items:
   251                            description: |-
   252                              A list of URLs of the IP resources to be drained. These IPs must be
   253                              valid static external IPs that have been assigned to the NAT. These
   254                              IPs should be used for updating/patching a NAT rule only. This field
   255                              is used for public NAT.
   256                            oneOf:
   257                            - not:
   258                                required:
   259                                - external
   260                              required:
   261                              - name
   262                            - not:
   263                                anyOf:
   264                                - required:
   265                                  - name
   266                                - required:
   267                                  - namespace
   268                              required:
   269                              - external
   270                            properties:
   271                              external:
   272                                description: 'Allowed value: The `selfLink` field
   273                                  of a `ComputeAddress` resource.'
   274                                type: string
   275                              name:
   276                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   277                                type: string
   278                              namespace:
   279                                description: 'Namespace of the referent. More info:
   280                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   281                                type: string
   282                            type: object
   283                          type: array
   284                      type: object
   285                    description:
   286                      description: An optional description of this rule.
   287                      type: string
   288                    match:
   289                      description: |-
   290                        CEL expression that specifies the match condition that egress traffic from a VM is evaluated against.
   291                        If it evaluates to true, the corresponding action is enforced.
   292
   293                        The following examples are valid match expressions for public NAT:
   294
   295                        "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')"
   296
   297                        "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'"
   298
   299                        The following example is a valid match expression for private NAT:
   300
   301                        "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'".
   302                      type: string
   303                    ruleNumber:
   304                      description: |-
   305                        An integer uniquely identifying a rule in the list.
   306                        The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT.
   307                      type: integer
   308                  required:
   309                  - match
   310                  - ruleNumber
   311                  type: object
   312                type: array
   313              sourceSubnetworkIpRangesToNat:
   314                description: |-
   315                  How NAT should be configured per Subnetwork.
   316                  If 'ALL_SUBNETWORKS_ALL_IP_RANGES', all of the
   317                  IP ranges in every Subnetwork are allowed to Nat.
   318                  If 'ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES', all of the primary IP
   319                  ranges in every Subnetwork are allowed to Nat.
   320                  'LIST_OF_SUBNETWORKS': A list of Subnetworks are allowed to Nat
   321                  (specified in the field subnetwork below). Note that if this field
   322                  contains ALL_SUBNETWORKS_ALL_IP_RANGES or
   323                  ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
   324                  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"].
   325                type: string
   326              subnetwork:
   327                description: |-
   328                  One or more subnetwork NAT configurations. Only used if
   329                  'source_subnetwork_ip_ranges_to_nat' is set to 'LIST_OF_SUBNETWORKS'.
   330                items:
   331                  properties:
   332                    secondaryIpRangeNames:
   333                      description: |-
   334                        List of the secondary ranges of the subnetwork that are allowed
   335                        to use NAT. This can be populated only if
   336                        'LIST_OF_SECONDARY_IP_RANGES' is one of the values in
   337                        sourceIpRangesToNat.
   338                      items:
   339                        type: string
   340                      type: array
   341                    sourceIpRangesToNat:
   342                      description: |-
   343                        List of options for which source IPs in the subnetwork
   344                        should have NAT enabled. Supported values include:
   345                        'ALL_IP_RANGES', 'LIST_OF_SECONDARY_IP_RANGES',
   346                        'PRIMARY_IP_RANGE'.
   347                      items:
   348                        type: string
   349                      type: array
   350                    subnetworkRef:
   351                      description: The subnetwork to NAT.
   352                      oneOf:
   353                      - not:
   354                          required:
   355                          - external
   356                        required:
   357                        - name
   358                      - not:
   359                          anyOf:
   360                          - required:
   361                            - name
   362                          - required:
   363                            - namespace
   364                        required:
   365                        - external
   366                      properties:
   367                        external:
   368                          description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork`
   369                            resource.'
   370                          type: string
   371                        name:
   372                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   373                          type: string
   374                        namespace:
   375                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   376                          type: string
   377                      type: object
   378                  required:
   379                  - sourceIpRangesToNat
   380                  - subnetworkRef
   381                  type: object
   382                type: array
   383              tcpEstablishedIdleTimeoutSec:
   384                description: |-
   385                  Timeout (in seconds) for TCP established connections.
   386                  Defaults to 1200s if not set.
   387                type: integer
   388              tcpTimeWaitTimeoutSec:
   389                description: |-
   390                  Timeout (in seconds) for TCP connections that are in TIME_WAIT state.
   391                  Defaults to 120s if not set.
   392                type: integer
   393              tcpTransitoryIdleTimeoutSec:
   394                description: |-
   395                  Timeout (in seconds) for TCP transitory connections.
   396                  Defaults to 30s if not set.
   397                type: integer
   398              udpIdleTimeoutSec:
   399                description: Timeout (in seconds) for UDP connections. Defaults to
   400                  30s if not set.
   401                type: integer
   402            required:
   403            - natIpAllocateOption
   404            - region
   405            - routerRef
   406            - sourceSubnetworkIpRangesToNat
   407            type: object
   408          status:
   409            properties:
   410              conditions:
   411                description: Conditions represent the latest available observation
   412                  of the resource's current state.
   413                items:
   414                  properties:
   415                    lastTransitionTime:
   416                      description: Last time the condition transitioned from one status
   417                        to another.
   418                      type: string
   419                    message:
   420                      description: Human-readable message indicating details about
   421                        last transition.
   422                      type: string
   423                    reason:
   424                      description: Unique, one-word, CamelCase reason for the condition's
   425                        last transition.
   426                      type: string
   427                    status:
   428                      description: Status is the status of the condition. Can be True,
   429                        False, Unknown.
   430                      type: string
   431                    type:
   432                      description: Type is the type of the condition.
   433                      type: string
   434                  type: object
   435                type: array
   436              observedGeneration:
   437                description: ObservedGeneration is the generation of the resource
   438                  that was most recently observed by the Config Connector controller.
   439                  If this is equal to metadata.generation, then that means that the
   440                  current reported status reflects the most recent desired state of
   441                  the resource.
   442                type: integer
   443            type: object
   444        required:
   445        - spec
   446        type: object
   447    served: true
   448    storage: true
   449    subresources:
   450      status: {}
   451status:
   452  acceptedNames:
   453    kind: ""
   454    plural: ""
   455  conditions: []
   456  storedVersions: []

View as plain text