...

Text file src/github.com/GoogleCloudPlatform/k8s-config-connector/crds/iam_v1beta1_iamworkloadidentitypoolprovider.yaml

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

     1# Copyright 2020 Google LLC
     2#
     3# Licensed under the Apache License, Version 2.0 (the "License");
     4# you may not use this file except in compliance with the License.
     5# You may obtain a copy of the License at
     6#
     7#     http://www.apache.org/licenses/LICENSE-2.0
     8#
     9# Unless required by applicable law or agreed to in writing, software
    10# distributed under the License is distributed on an "AS IS" BASIS,
    11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12# See the License for the specific language governing permissions and
    13# limitations under the License.
    14
    15apiVersion: apiextensions.k8s.io/v1
    16kind: CustomResourceDefinition
    17metadata:
    18  annotations:
    19    cnrm.cloud.google.com/version: 1.106.0
    20  creationTimestamp: null
    21  labels:
    22    cnrm.cloud.google.com/dcl2crd: "true"
    23    cnrm.cloud.google.com/managed-by-kcc: "true"
    24    cnrm.cloud.google.com/stability-level: stable
    25    cnrm.cloud.google.com/system: "true"
    26  name: iamworkloadidentitypoolproviders.iam.cnrm.cloud.google.com
    27spec:
    28  group: iam.cnrm.cloud.google.com
    29  names:
    30    categories:
    31    - gcp
    32    kind: IAMWorkloadIdentityPoolProvider
    33    plural: iamworkloadidentitypoolproviders
    34    shortNames:
    35    - gcpiamworkloadidentitypoolprovider
    36    - gcpiamworkloadidentitypoolproviders
    37    singular: iamworkloadidentitypoolprovider
    38  scope: Namespaced
    39  versions:
    40  - additionalPrinterColumns:
    41    - jsonPath: .metadata.creationTimestamp
    42      name: Age
    43      type: date
    44    - description: When 'True', the most recent reconcile of the resource succeeded
    45      jsonPath: .status.conditions[?(@.type=='Ready')].status
    46      name: Ready
    47      type: string
    48    - description: The reason for the value in 'Ready'
    49      jsonPath: .status.conditions[?(@.type=='Ready')].reason
    50      name: Status
    51      type: string
    52    - description: The last transition time for the value in 'Status'
    53      jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
    54      name: Status Age
    55      type: date
    56    name: v1beta1
    57    schema:
    58      openAPIV3Schema:
    59        properties:
    60          apiVersion:
    61            description: 'apiVersion defines the versioned schema of this representation
    62              of an object. Servers should convert recognized schemas to the latest
    63              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
    64            type: string
    65          kind:
    66            description: 'kind is a string value representing the REST resource this
    67              object represents. Servers may infer this from the endpoint the client
    68              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
    69            type: string
    70          metadata:
    71            type: object
    72          spec:
    73            properties:
    74              attributeCondition:
    75                description: '[A Common Expression Language](https://opensource.google/projects/cel)
    76                  expression, in plain text, to restrict what otherwise valid authentication
    77                  credentials issued by the provider should not be accepted. The expression
    78                  must output a boolean representing whether to allow the federation.
    79                  The following keywords may be referenced in the expressions: * `assertion`:
    80                  JSON representing the authentication credential issued by the provider.
    81                  * `google`: The Google attributes mapped from the assertion in the
    82                  `attribute_mappings`. * `attribute`: The custom attributes mapped
    83                  from the assertion in the `attribute_mappings`. The maximum length
    84                  of the attribute condition expression is 4096 characters. If unspecified,
    85                  all valid authentication credential are accepted. The following
    86                  example shows how to only allow credentials with a mapped `google.groups`
    87                  value of `admins`: ``` "''admins'' in google.groups" ```'
    88                type: string
    89              attributeMapping:
    90                additionalProperties:
    91                  type: string
    92                description: 'Maps attributes from authentication credentials issued
    93                  by an external identity provider to Google Cloud attributes, such
    94                  as `subject` and `segment`. Each key must be a string specifying
    95                  the Google Cloud IAM attribute to map to. The following keys are
    96                  supported: * `google.subject`: The principal IAM is authenticating.
    97                  You can reference this value in IAM bindings. This is also the subject
    98                  that appears in Cloud Logging logs. Cannot exceed 127 characters.
    99                  * `google.groups`: Groups the external identity belongs to. You
   100                  can grant groups access to resources using an IAM `principalSet`
   101                  binding; access applies to all members of the group. You can also
   102                  provide custom attributes by specifying `attribute.{custom_attribute}`,
   103                  where `{custom_attribute}` is the name of the custom attribute to
   104                  be mapped. You can define a maximum of 50 custom attributes. The
   105                  maximum length of a mapped attribute key is 100 characters, and
   106                  the key may only contain the characters [a-z0-9_]. You can reference
   107                  these attributes in IAM policies to define fine-grained access for
   108                  a workload to Google Cloud resources. For example: * `google.subject`:
   109                  `principal://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/subject/{value}`
   110                  * `google.groups`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/group/{value}`
   111                  * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/attribute.{custom_attribute}/{value}`
   112                  Each value must be a [Common Expression Language] (https://opensource.google/projects/cel)
   113                  function that maps an identity provider credential to the normalized
   114                  attribute specified by the corresponding map key. You can use the
   115                  `assertion` keyword in the expression to access a JSON representation
   116                  of the authentication credential issued by the provider. The maximum
   117                  length of an attribute mapping expression is 2048 characters. When
   118                  evaluated, the total size of all mapped attributes must not exceed
   119                  8KB. For AWS providers, if no attribute mapping is defined, the
   120                  following default mapping applies: ``` { "google.subject":"assertion.arn",
   121                  "attribute.aws_role": "assertion.arn.contains(''assumed-role'')"
   122                  " ? assertion.arn.extract(''{account_arn}assumed-role/'')" " + ''assumed-role/''"
   123                  " + assertion.arn.extract(''assumed-role/{role_name}/'')" " : assertion.arn",
   124                  } ``` If any custom attribute mappings are defined, they must include
   125                  a mapping to the `google.subject` attribute. For OIDC providers,
   126                  you must supply a custom mapping, which must include the `google.subject`
   127                  attribute. For example, the following maps the `sub` claim of the
   128                  incoming credential to the `subject` attribute on a Google token:
   129                  ``` {"google.subject": "assertion.sub"} ```'
   130                type: object
   131              aws:
   132                description: An Amazon Web Services identity provider.
   133                properties:
   134                  accountId:
   135                    description: Required. The AWS account ID.
   136                    type: string
   137                  stsUri:
   138                    description: A list of AWS STS URIs that can be used when exchanging
   139                      credentials. If not provided, any valid AWS STS URI is allowed.
   140                      URIs must use the form `https://sts.amazonaws.com` or `https://sts.{region}.amazonaws.com`,
   141                      where {region} is a valid AWS region. You can specify a maximum
   142                      of 25 URIs.
   143                    items:
   144                      type: string
   145                    type: array
   146                required:
   147                - accountId
   148                type: object
   149              description:
   150                description: A description for the provider. Cannot exceed 256 characters.
   151                type: string
   152              disabled:
   153                description: Whether the provider is disabled. You cannot use a disabled
   154                  provider to exchange tokens. However, existing tokens still grant
   155                  access.
   156                type: boolean
   157              displayName:
   158                description: A display name for the provider. Cannot exceed 32 characters.
   159                type: string
   160              location:
   161                description: Immutable. The location for the resource
   162                type: string
   163              oidc:
   164                description: An OpenId Connect 1.0 identity provider.
   165                properties:
   166                  allowedAudiences:
   167                    description: 'Acceptable values for the `aud` field (audience)
   168                      in the OIDC token. Token exchange requests are rejected if the
   169                      token audience does not match one of the configured values.
   170                      Each audience may be at most 256 characters. A maximum of 10
   171                      audiences may be configured. If this list is empty, the OIDC
   172                      token audience must be equal to the full canonical resource
   173                      name of the WorkloadIdentityPoolProvider, with or without the
   174                      HTTPS prefix. For example: ``` //iam.googleapis.com/projects//locations//workloadIdentityPools//providers/
   175                      https://iam.googleapis.com/projects//locations//workloadIdentityPools//providers/
   176                      ```'
   177                    items:
   178                      type: string
   179                    type: array
   180                  issuerUri:
   181                    description: Required. The OIDC issuer URL. Must be an HTTPS endpoint.
   182                    type: string
   183                required:
   184                - issuerUri
   185                type: object
   186              projectRef:
   187                description: Immutable. The Project that this resource belongs to.
   188                oneOf:
   189                - not:
   190                    required:
   191                    - external
   192                  required:
   193                  - name
   194                - not:
   195                    anyOf:
   196                    - required:
   197                      - name
   198                    - required:
   199                      - namespace
   200                  required:
   201                  - external
   202                properties:
   203                  external:
   204                    description: |-
   205                      The project for the resource
   206
   207                      Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).
   208                    type: string
   209                  name:
   210                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   211                    type: string
   212                  namespace:
   213                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   214                    type: string
   215                type: object
   216              resourceID:
   217                description: Immutable. Optional. The name of the resource. Used for
   218                  creation and acquisition. When unset, the value of `metadata.name`
   219                  is used as the default.
   220                type: string
   221              workloadIdentityPoolRef:
   222                description: Immutable.
   223                oneOf:
   224                - not:
   225                    required:
   226                    - external
   227                  required:
   228                  - name
   229                - not:
   230                    anyOf:
   231                    - required:
   232                      - name
   233                    - required:
   234                      - namespace
   235                  required:
   236                  - external
   237                properties:
   238                  external:
   239                    description: |-
   240                      The workloadIdentityPool for the resource
   241
   242                      Allowed value: The Google Cloud resource name of an `IAMWorkloadIdentityPool` resource (format: `projects/{{project}}/locations/{{location}}/workloadIdentityPools/{{name}}`).
   243                    type: string
   244                  name:
   245                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   246                    type: string
   247                  namespace:
   248                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   249                    type: string
   250                type: object
   251            required:
   252            - location
   253            - projectRef
   254            - workloadIdentityPoolRef
   255            type: object
   256          status:
   257            properties:
   258              conditions:
   259                description: Conditions represent the latest available observation
   260                  of the resource's current state.
   261                items:
   262                  properties:
   263                    lastTransitionTime:
   264                      description: Last time the condition transitioned from one status
   265                        to another.
   266                      type: string
   267                    message:
   268                      description: Human-readable message indicating details about
   269                        last transition.
   270                      type: string
   271                    reason:
   272                      description: Unique, one-word, CamelCase reason for the condition's
   273                        last transition.
   274                      type: string
   275                    status:
   276                      description: Status is the status of the condition. Can be True,
   277                        False, Unknown.
   278                      type: string
   279                    type:
   280                      description: Type is the type of the condition.
   281                      type: string
   282                  type: object
   283                type: array
   284              observedGeneration:
   285                description: ObservedGeneration is the generation of the resource
   286                  that was most recently observed by the Config Connector controller.
   287                  If this is equal to metadata.generation, then that means that the
   288                  current reported status reflects the most recent desired state of
   289                  the resource.
   290                type: integer
   291              state:
   292                description: 'Output only. The state of the provider. Possible values:
   293                  STATE_UNSPECIFIED, ACTIVE, DELETED'
   294                type: string
   295            type: object
   296        required:
   297        - spec
   298        type: object
   299    served: true
   300    storage: true
   301    subresources:
   302      status: {}
   303status:
   304  acceptedNames:
   305    kind: ""
   306    plural: ""
   307  conditions: []
   308  storedVersions: []

View as plain text