github.com/oam-dev/cluster-gateway@v1.9.0/hack/crd/addon/managedclusteraddon.yaml (about)

     1  apiVersion: apiextensions.k8s.io/v1
     2  kind: CustomResourceDefinition
     3  metadata:
     4    name: managedclusteraddons.addon.open-cluster-management.io
     5  spec:
     6    group: addon.open-cluster-management.io
     7    names:
     8      kind: ManagedClusterAddOn
     9      listKind: ManagedClusterAddOnList
    10      plural: managedclusteraddons
    11      singular: managedclusteraddon
    12    scope: Namespaced
    13    preserveUnknownFields: false
    14    versions:
    15      - additionalPrinterColumns:
    16          - jsonPath: .status.conditions[?(@.type=="Available")].status
    17            name: Available
    18            type: string
    19          - jsonPath: .status.conditions[?(@.type=="Degraded")].status
    20            name: Degraded
    21            type: string
    22          - jsonPath: .status.conditions[?(@.type=="Progressing")].status
    23            name: Progressing
    24            type: string
    25        name: v1alpha1
    26        schema:
    27          openAPIV3Schema:
    28            description: ManagedClusterAddOn is the Custom Resource object which holds
    29              the current state of an add-on. This object is used by add-on operators
    30              to convey their state. This resource should be created in the ManagedCluster
    31              namespace.
    32            type: object
    33            required:
    34              - spec
    35            properties:
    36              apiVersion:
    37                description: 'APIVersion defines the versioned schema of this representation
    38                of an object. Servers should convert recognized schemas to the latest
    39                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    40                type: string
    41              kind:
    42                description: 'Kind is a string value representing the REST resource this
    43                object represents. Servers may infer this from the endpoint the client
    44                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    45                type: string
    46              metadata:
    47                type: object
    48              spec:
    49                description: spec holds configuration that could apply to any operator.
    50                type: object
    51                properties:
    52                  installNamespace:
    53                    description: installNamespace is the namespace on the managed cluster
    54                      to install the addon agent. If it is not set, open-cluster-management-agent-addon
    55                      namespace is used to install the addon agent.
    56                    type: string
    57                    maxLength: 63
    58                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
    59              status:
    60                description: status holds the information about the state of an operator.  It
    61                  is consistent with status information across the Kubernetes ecosystem.
    62                type: object
    63                properties:
    64                  addOnConfiguration:
    65                    description: addOnConfiguration is a reference to configuration information
    66                      for the add-on. This resource is use to locate the configuration
    67                      resource for the add-on.
    68                    type: object
    69                    properties:
    70                      crName:
    71                        description: crName is the name of the CR used to configure instances
    72                          of the managed add-on. This field should be configured if add-on
    73                          CR have a consistent name across the all of the ManagedCluster
    74                          instaces.
    75                        type: string
    76                      crdName:
    77                        description: crdName is the name of the CRD used to configure
    78                          instances of the managed add-on. This field should be configured
    79                          if the add-on have a CRD that controls the configuration of
    80                          the add-on.
    81                        type: string
    82                  addOnMeta:
    83                    description: addOnMeta is a reference to the metadata information
    84                      for the add-on. This should be same as the addOnMeta for the corresponding
    85                      ClusterManagementAddOn resource.
    86                    type: object
    87                    properties:
    88                      description:
    89                        description: description represents the detailed description of
    90                          the add-on.
    91                        type: string
    92                      displayName:
    93                        description: displayName represents the name of add-on that will
    94                          be displayed.
    95                        type: string
    96                  conditions:
    97                    description: conditions describe the state of the managed and monitored
    98                      components for the operator.
    99                    type: array
   100                    items:
   101                      description: "Condition contains details for one aspect of the current
   102                      state of this API Resource. --- This struct is intended for direct
   103                      use as an array at the field path .status.conditions.  For example,
   104                      type FooStatus struct{     // Represents the observations of a
   105                      foo's current state.     // Known .status.conditions.type are:
   106                      \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
   107                      \    // +patchStrategy=merge     // +listType=map     // +listMapKey=type
   108                      \    Conditions []metav1.Condition `json:\"conditions,omitempty\"
   109                      patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
   110                      \n     // other fields }"
   111                      type: object
   112                      required:
   113                        - lastTransitionTime
   114                        - message
   115                        - reason
   116                        - status
   117                        - type
   118                      properties:
   119                        lastTransitionTime:
   120                          description: lastTransitionTime is the last time the condition
   121                            transitioned from one status to another. This should be when
   122                            the underlying condition changed.  If that is not known, then
   123                            using the time when the API field changed is acceptable.
   124                          type: string
   125                          format: date-time
   126                        message:
   127                          description: message is a human readable message indicating
   128                            details about the transition. This may be an empty string.
   129                          type: string
   130                          maxLength: 32768
   131                        observedGeneration:
   132                          description: observedGeneration represents the .metadata.generation
   133                            that the condition was set based upon. For instance, if .metadata.generation
   134                            is currently 12, but the .status.conditions[x].observedGeneration
   135                            is 9, the condition is out of date with respect to the current
   136                            state of the instance.
   137                          type: integer
   138                          format: int64
   139                          minimum: 0
   140                        reason:
   141                          description: reason contains a programmatic identifier indicating
   142                            the reason for the condition's last transition. Producers
   143                            of specific condition types may define expected values and
   144                            meanings for this field, and whether the values are considered
   145                            a guaranteed API. The value should be a CamelCase string.
   146                            This field may not be empty.
   147                          type: string
   148                          maxLength: 1024
   149                          minLength: 1
   150                          pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
   151                        status:
   152                          description: status of the condition, one of True, False, Unknown.
   153                          type: string
   154                          enum:
   155                            - "True"
   156                            - "False"
   157                            - Unknown
   158                        type:
   159                          description: type of condition in CamelCase or in foo.example.com/CamelCase.
   160                            --- Many .condition.type values are consistent across resources
   161                            like Available, but because arbitrary conditions can be useful
   162                            (see .node.status.conditions), the ability to deconflict is
   163                            important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
   164                          type: string
   165                          maxLength: 316
   166                          pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
   167                  registrations:
   168                    description: registrations is the conifigurations for the addon agent
   169                      to register to hub. It should be set by each addon controller on
   170                      hub to define how the addon agent on managedcluster is registered.
   171                      With the registration defined, The addon agent can access to kube
   172                      apiserver with kube style API or other endpoints on hub cluster
   173                      with client certificate authentication. A csr will be created per
   174                      registration configuration. If more than one registrationConfig
   175                      is defined, a csr will be created for each registration configuration.
   176                      It is not allowed that multiple registrationConfigs have the same
   177                      signer name. After the csr is approved on the hub cluster, the klusterlet
   178                      agent will create a secret in the installNamespace for the registrationConfig.
   179                      If the signerName is "kubernetes.io/kube-apiserver-client", the
   180                      secret name will be "{addon name}-hub-kubeconfig" whose contents
   181                      includes key/cert and kubeconfig. Otherwise, the secret name will
   182                      be "{addon name}-{signer name}-client-cert" whose contents includes
   183                      key/cert.
   184                    type: array
   185                    items:
   186                      description: RegistrationConfig defines the configuration of the
   187                        addon agent to register to hub. The Klusterlet agent will create
   188                        a csr for the addon agent with the registrationConfig.
   189                      type: object
   190                      properties:
   191                        signerName:
   192                          description: signerName is the name of signer that addon agent
   193                            will use to create csr.
   194                          type: string
   195                          maxLength: 571
   196                          minLength: 5
   197                        subject:
   198                          description: "subject is the user subject of the addon agent
   199                          to be registered to the hub. If it is not set, the addon agent
   200                          will have the default subject \"subject\": { \t\"user\": \"system:open-cluster-management:addon:{addonName}:{clusterName}:{agentName}\",
   201                          \t\"groups: [\"system:open-cluster-management:addon\", \"system:open-cluster-management:addon:{addonName}\",
   202                          \"system:authenticated\"] }"
   203                          type: object
   204                          properties:
   205                            groups:
   206                              description: groups is the user group of the addon agent.
   207                              type: array
   208                              items:
   209                                type: string
   210                            organizationUnit:
   211                              description: organizationUnit is the ou of the addon agent
   212                              type: array
   213                              items:
   214                                type: string
   215                            user:
   216                              description: user is the user name of the addon agent.
   217                              type: string
   218                  relatedObjects:
   219                    description: 'relatedObjects is a list of objects that are "interesting"
   220                    or related to this operator. Common uses are: 1. the detailed resource
   221                    driving the operator 2. operator namespaces 3. operand namespaces
   222                    4. related ClusterManagementAddon resource'
   223                    type: array
   224                    items:
   225                      description: ObjectReference contains enough information to let
   226                        you inspect or modify the referred object.
   227                      type: object
   228                      required:
   229                        - group
   230                        - name
   231                        - resource
   232                      properties:
   233                        group:
   234                          description: group of the referent.
   235                          type: string
   236                        name:
   237                          description: name of the referent.
   238                          type: string
   239                        namespace:
   240                          description: namespace of the referent.
   241                          type: string
   242                        resource:
   243                          description: resource of the referent.
   244                          type: string
   245        served: true
   246        storage: true
   247        subresources:
   248          status: {}
   249  status:
   250    acceptedNames:
   251      kind: ""
   252      plural: ""
   253    conditions: []
   254    storedVersions: []