github.com/verrazzano/verrazzano@v1.7.0/platform-operator/thirdparty/charts/prometheus-community/kube-prometheus-stack/crds/crd-probes.yaml (about)

     1  # https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.63.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
     2  ---
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.11.1
     8    creationTimestamp: null
     9    name: probes.monitoring.coreos.com
    10  spec:
    11    group: monitoring.coreos.com
    12    names:
    13      categories:
    14      - prometheus-operator
    15      kind: Probe
    16      listKind: ProbeList
    17      plural: probes
    18      shortNames:
    19      - prb
    20      singular: probe
    21    scope: Namespaced
    22    versions:
    23    - name: v1
    24      schema:
    25        openAPIV3Schema:
    26          description: Probe defines monitoring for a set of static targets or ingresses.
    27          properties:
    28            apiVersion:
    29              description: 'APIVersion defines the versioned schema of this representation
    30                of an object. Servers should convert recognized schemas to the latest
    31                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    32              type: string
    33            kind:
    34              description: 'Kind is a string value representing the REST resource this
    35                object represents. Servers may infer this from the endpoint the client
    36                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    37              type: string
    38            metadata:
    39              type: object
    40            spec:
    41              description: Specification of desired Ingress selection for target discovery
    42                by Prometheus.
    43              properties:
    44                authorization:
    45                  description: Authorization section for this endpoint
    46                  properties:
    47                    credentials:
    48                      description: The secret's key that contains the credentials of
    49                        the request
    50                      properties:
    51                        key:
    52                          description: The key of the secret to select from.  Must be
    53                            a valid secret key.
    54                          type: string
    55                        name:
    56                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
    57                            TODO: Add other useful fields. apiVersion, kind, uid?'
    58                          type: string
    59                        optional:
    60                          description: Specify whether the Secret or its key must be
    61                            defined
    62                          type: boolean
    63                      required:
    64                      - key
    65                      type: object
    66                      x-kubernetes-map-type: atomic
    67                    type:
    68                      description: Set the authentication type. Defaults to Bearer,
    69                        Basic will cause an error
    70                      type: string
    71                  type: object
    72                basicAuth:
    73                  description: 'BasicAuth allow an endpoint to authenticate over basic
    74                    authentication. More info: https://prometheus.io/docs/operating/configuration/#endpoint'
    75                  properties:
    76                    password:
    77                      description: The secret in the service monitor namespace that
    78                        contains the password for authentication.
    79                      properties:
    80                        key:
    81                          description: The key of the secret to select from.  Must be
    82                            a valid secret key.
    83                          type: string
    84                        name:
    85                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
    86                            TODO: Add other useful fields. apiVersion, kind, uid?'
    87                          type: string
    88                        optional:
    89                          description: Specify whether the Secret or its key must be
    90                            defined
    91                          type: boolean
    92                      required:
    93                      - key
    94                      type: object
    95                      x-kubernetes-map-type: atomic
    96                    username:
    97                      description: The secret in the service monitor namespace that
    98                        contains the username for authentication.
    99                      properties:
   100                        key:
   101                          description: The key of the secret to select from.  Must be
   102                            a valid secret key.
   103                          type: string
   104                        name:
   105                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   106                            TODO: Add other useful fields. apiVersion, kind, uid?'
   107                          type: string
   108                        optional:
   109                          description: Specify whether the Secret or its key must be
   110                            defined
   111                          type: boolean
   112                      required:
   113                      - key
   114                      type: object
   115                      x-kubernetes-map-type: atomic
   116                  type: object
   117                bearerTokenSecret:
   118                  description: Secret to mount to read bearer token for scraping targets.
   119                    The secret needs to be in the same namespace as the probe and accessible
   120                    by the Prometheus Operator.
   121                  properties:
   122                    key:
   123                      description: The key of the secret to select from.  Must be a
   124                        valid secret key.
   125                      type: string
   126                    name:
   127                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   128                        TODO: Add other useful fields. apiVersion, kind, uid?'
   129                      type: string
   130                    optional:
   131                      description: Specify whether the Secret or its key must be defined
   132                      type: boolean
   133                  required:
   134                  - key
   135                  type: object
   136                  x-kubernetes-map-type: atomic
   137                interval:
   138                  description: Interval at which targets are probed using the configured
   139                    prober. If not specified Prometheus' global scrape interval is used.
   140                  pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
   141                  type: string
   142                jobName:
   143                  description: The job name assigned to scraped metrics by default.
   144                  type: string
   145                labelLimit:
   146                  description: Per-scrape limit on number of labels that will be accepted
   147                    for a sample. Only valid in Prometheus versions 2.27.0 and newer.
   148                  format: int64
   149                  type: integer
   150                labelNameLengthLimit:
   151                  description: Per-scrape limit on length of labels name that will be
   152                    accepted for a sample. Only valid in Prometheus versions 2.27.0
   153                    and newer.
   154                  format: int64
   155                  type: integer
   156                labelValueLengthLimit:
   157                  description: Per-scrape limit on length of labels value that will
   158                    be accepted for a sample. Only valid in Prometheus versions 2.27.0
   159                    and newer.
   160                  format: int64
   161                  type: integer
   162                metricRelabelings:
   163                  description: MetricRelabelConfigs to apply to samples before ingestion.
   164                  items:
   165                    description: 'RelabelConfig allows dynamic rewriting of the label
   166                      set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section
   167                      of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
   168                    properties:
   169                      action:
   170                        default: replace
   171                        description: Action to perform based on regex matching. Default
   172                          is 'replace'. uppercase and lowercase actions require Prometheus
   173                          >= 2.36.
   174                        enum:
   175                        - replace
   176                        - Replace
   177                        - keep
   178                        - Keep
   179                        - drop
   180                        - Drop
   181                        - hashmod
   182                        - HashMod
   183                        - labelmap
   184                        - LabelMap
   185                        - labeldrop
   186                        - LabelDrop
   187                        - labelkeep
   188                        - LabelKeep
   189                        - lowercase
   190                        - Lowercase
   191                        - uppercase
   192                        - Uppercase
   193                        type: string
   194                      modulus:
   195                        description: Modulus to take of the hash of the source label
   196                          values.
   197                        format: int64
   198                        type: integer
   199                      regex:
   200                        description: Regular expression against which the extracted
   201                          value is matched. Default is '(.*)'
   202                        type: string
   203                      replacement:
   204                        description: Replacement value against which a regex replace
   205                          is performed if the regular expression matches. Regex capture
   206                          groups are available. Default is '$1'
   207                        type: string
   208                      separator:
   209                        description: Separator placed between concatenated source label
   210                          values. default is ';'.
   211                        type: string
   212                      sourceLabels:
   213                        description: The source labels select values from existing labels.
   214                          Their content is concatenated using the configured separator
   215                          and matched against the configured regular expression for
   216                          the replace, keep, and drop actions.
   217                        items:
   218                          description: LabelName is a valid Prometheus label name which
   219                            may only contain ASCII letters, numbers, as well as underscores.
   220                          pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
   221                          type: string
   222                        type: array
   223                      targetLabel:
   224                        description: Label to which the resulting value is written in
   225                          a replace action. It is mandatory for replace actions. Regex
   226                          capture groups are available.
   227                        type: string
   228                    type: object
   229                  type: array
   230                module:
   231                  description: 'The module to use for probing specifying how to probe
   232                    the target. Example module configuring in the blackbox exporter:
   233                    https://github.com/prometheus/blackbox_exporter/blob/master/example.yml'
   234                  type: string
   235                oauth2:
   236                  description: OAuth2 for the URL. Only valid in Prometheus versions
   237                    2.27.0 and newer.
   238                  properties:
   239                    clientId:
   240                      description: The secret or configmap containing the OAuth2 client
   241                        id
   242                      properties:
   243                        configMap:
   244                          description: ConfigMap containing data to use for the targets.
   245                          properties:
   246                            key:
   247                              description: The key to select.
   248                              type: string
   249                            name:
   250                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   251                                TODO: Add other useful fields. apiVersion, kind, uid?'
   252                              type: string
   253                            optional:
   254                              description: Specify whether the ConfigMap or its key
   255                                must be defined
   256                              type: boolean
   257                          required:
   258                          - key
   259                          type: object
   260                          x-kubernetes-map-type: atomic
   261                        secret:
   262                          description: Secret containing data to use for the targets.
   263                          properties:
   264                            key:
   265                              description: The key of the secret to select from.  Must
   266                                be a valid secret key.
   267                              type: string
   268                            name:
   269                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   270                                TODO: Add other useful fields. apiVersion, kind, uid?'
   271                              type: string
   272                            optional:
   273                              description: Specify whether the Secret or its key must
   274                                be defined
   275                              type: boolean
   276                          required:
   277                          - key
   278                          type: object
   279                          x-kubernetes-map-type: atomic
   280                      type: object
   281                    clientSecret:
   282                      description: The secret containing the OAuth2 client secret
   283                      properties:
   284                        key:
   285                          description: The key of the secret to select from.  Must be
   286                            a valid secret key.
   287                          type: string
   288                        name:
   289                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   290                            TODO: Add other useful fields. apiVersion, kind, uid?'
   291                          type: string
   292                        optional:
   293                          description: Specify whether the Secret or its key must be
   294                            defined
   295                          type: boolean
   296                      required:
   297                      - key
   298                      type: object
   299                      x-kubernetes-map-type: atomic
   300                    endpointParams:
   301                      additionalProperties:
   302                        type: string
   303                      description: Parameters to append to the token URL
   304                      type: object
   305                    scopes:
   306                      description: OAuth2 scopes used for the token request
   307                      items:
   308                        type: string
   309                      type: array
   310                    tokenUrl:
   311                      description: The URL to fetch the token from
   312                      minLength: 1
   313                      type: string
   314                  required:
   315                  - clientId
   316                  - clientSecret
   317                  - tokenUrl
   318                  type: object
   319                prober:
   320                  description: Specification for the prober to use for probing targets.
   321                    The prober.URL parameter is required. Targets cannot be probed if
   322                    left empty.
   323                  properties:
   324                    path:
   325                      default: /probe
   326                      description: Path to collect metrics from. Defaults to `/probe`.
   327                      type: string
   328                    proxyUrl:
   329                      description: Optional ProxyURL.
   330                      type: string
   331                    scheme:
   332                      description: HTTP scheme to use for scraping. Defaults to `http`.
   333                      type: string
   334                    url:
   335                      description: Mandatory URL of the prober.
   336                      type: string
   337                  required:
   338                  - url
   339                  type: object
   340                sampleLimit:
   341                  description: SampleLimit defines per-scrape limit on number of scraped
   342                    samples that will be accepted.
   343                  format: int64
   344                  type: integer
   345                scrapeTimeout:
   346                  description: Timeout for scraping metrics from the Prometheus exporter.
   347                    If not specified, the Prometheus global scrape interval is used.
   348                  pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
   349                  type: string
   350                targetLimit:
   351                  description: TargetLimit defines a limit on the number of scraped
   352                    targets that will be accepted.
   353                  format: int64
   354                  type: integer
   355                targets:
   356                  description: Targets defines a set of static or dynamically discovered
   357                    targets to probe.
   358                  properties:
   359                    ingress:
   360                      description: ingress defines the Ingress objects to probe and
   361                        the relabeling configuration. If `staticConfig` is also defined,
   362                        `staticConfig` takes precedence.
   363                      properties:
   364                        namespaceSelector:
   365                          description: From which namespaces to select Ingress objects.
   366                          properties:
   367                            any:
   368                              description: Boolean describing whether all namespaces
   369                                are selected in contrast to a list restricting them.
   370                              type: boolean
   371                            matchNames:
   372                              description: List of namespace names to select from.
   373                              items:
   374                                type: string
   375                              type: array
   376                          type: object
   377                        relabelingConfigs:
   378                          description: 'RelabelConfigs to apply to the label set of
   379                            the target before it gets scraped. The original ingress
   380                            address is available via the `__tmp_prometheus_ingress_address`
   381                            label. It can be used to customize the probed URL. The original
   382                            scrape job''s name is available via the `__tmp_prometheus_job_name`
   383                            label. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
   384                          items:
   385                            description: 'RelabelConfig allows dynamic rewriting of
   386                              the label set, being applied to samples before ingestion.
   387                              It defines `<metric_relabel_configs>`-section of Prometheus
   388                              configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
   389                            properties:
   390                              action:
   391                                default: replace
   392                                description: Action to perform based on regex matching.
   393                                  Default is 'replace'. uppercase and lowercase actions
   394                                  require Prometheus >= 2.36.
   395                                enum:
   396                                - replace
   397                                - Replace
   398                                - keep
   399                                - Keep
   400                                - drop
   401                                - Drop
   402                                - hashmod
   403                                - HashMod
   404                                - labelmap
   405                                - LabelMap
   406                                - labeldrop
   407                                - LabelDrop
   408                                - labelkeep
   409                                - LabelKeep
   410                                - lowercase
   411                                - Lowercase
   412                                - uppercase
   413                                - Uppercase
   414                                type: string
   415                              modulus:
   416                                description: Modulus to take of the hash of the source
   417                                  label values.
   418                                format: int64
   419                                type: integer
   420                              regex:
   421                                description: Regular expression against which the extracted
   422                                  value is matched. Default is '(.*)'
   423                                type: string
   424                              replacement:
   425                                description: Replacement value against which a regex
   426                                  replace is performed if the regular expression matches.
   427                                  Regex capture groups are available. Default is '$1'
   428                                type: string
   429                              separator:
   430                                description: Separator placed between concatenated source
   431                                  label values. default is ';'.
   432                                type: string
   433                              sourceLabels:
   434                                description: The source labels select values from existing
   435                                  labels. Their content is concatenated using the configured
   436                                  separator and matched against the configured regular
   437                                  expression for the replace, keep, and drop actions.
   438                                items:
   439                                  description: LabelName is a valid Prometheus label
   440                                    name which may only contain ASCII letters, numbers,
   441                                    as well as underscores.
   442                                  pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
   443                                  type: string
   444                                type: array
   445                              targetLabel:
   446                                description: Label to which the resulting value is written
   447                                  in a replace action. It is mandatory for replace actions.
   448                                  Regex capture groups are available.
   449                                type: string
   450                            type: object
   451                          type: array
   452                        selector:
   453                          description: Selector to select the Ingress objects.
   454                          properties:
   455                            matchExpressions:
   456                              description: matchExpressions is a list of label selector
   457                                requirements. The requirements are ANDed.
   458                              items:
   459                                description: A label selector requirement is a selector
   460                                  that contains values, a key, and an operator that
   461                                  relates the key and values.
   462                                properties:
   463                                  key:
   464                                    description: key is the label key that the selector
   465                                      applies to.
   466                                    type: string
   467                                  operator:
   468                                    description: operator represents a key's relationship
   469                                      to a set of values. Valid operators are In, NotIn,
   470                                      Exists and DoesNotExist.
   471                                    type: string
   472                                  values:
   473                                    description: values is an array of string values.
   474                                      If the operator is In or NotIn, the values array
   475                                      must be non-empty. If the operator is Exists or
   476                                      DoesNotExist, the values array must be empty.
   477                                      This array is replaced during a strategic merge
   478                                      patch.
   479                                    items:
   480                                      type: string
   481                                    type: array
   482                                required:
   483                                - key
   484                                - operator
   485                                type: object
   486                              type: array
   487                            matchLabels:
   488                              additionalProperties:
   489                                type: string
   490                              description: matchLabels is a map of {key,value} pairs.
   491                                A single {key,value} in the matchLabels map is equivalent
   492                                to an element of matchExpressions, whose key field is
   493                                "key", the operator is "In", and the values array contains
   494                                only "value". The requirements are ANDed.
   495                              type: object
   496                          type: object
   497                          x-kubernetes-map-type: atomic
   498                      type: object
   499                    staticConfig:
   500                      description: 'staticConfig defines the static list of targets
   501                        to probe and the relabeling configuration. If `ingress` is also
   502                        defined, `staticConfig` takes precedence. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config.'
   503                      properties:
   504                        labels:
   505                          additionalProperties:
   506                            type: string
   507                          description: Labels assigned to all metrics scraped from the
   508                            targets.
   509                          type: object
   510                        relabelingConfigs:
   511                          description: 'RelabelConfigs to apply to the label set of
   512                            the targets before it gets scraped. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
   513                          items:
   514                            description: 'RelabelConfig allows dynamic rewriting of
   515                              the label set, being applied to samples before ingestion.
   516                              It defines `<metric_relabel_configs>`-section of Prometheus
   517                              configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
   518                            properties:
   519                              action:
   520                                default: replace
   521                                description: Action to perform based on regex matching.
   522                                  Default is 'replace'. uppercase and lowercase actions
   523                                  require Prometheus >= 2.36.
   524                                enum:
   525                                - replace
   526                                - Replace
   527                                - keep
   528                                - Keep
   529                                - drop
   530                                - Drop
   531                                - hashmod
   532                                - HashMod
   533                                - labelmap
   534                                - LabelMap
   535                                - labeldrop
   536                                - LabelDrop
   537                                - labelkeep
   538                                - LabelKeep
   539                                - lowercase
   540                                - Lowercase
   541                                - uppercase
   542                                - Uppercase
   543                                type: string
   544                              modulus:
   545                                description: Modulus to take of the hash of the source
   546                                  label values.
   547                                format: int64
   548                                type: integer
   549                              regex:
   550                                description: Regular expression against which the extracted
   551                                  value is matched. Default is '(.*)'
   552                                type: string
   553                              replacement:
   554                                description: Replacement value against which a regex
   555                                  replace is performed if the regular expression matches.
   556                                  Regex capture groups are available. Default is '$1'
   557                                type: string
   558                              separator:
   559                                description: Separator placed between concatenated source
   560                                  label values. default is ';'.
   561                                type: string
   562                              sourceLabels:
   563                                description: The source labels select values from existing
   564                                  labels. Their content is concatenated using the configured
   565                                  separator and matched against the configured regular
   566                                  expression for the replace, keep, and drop actions.
   567                                items:
   568                                  description: LabelName is a valid Prometheus label
   569                                    name which may only contain ASCII letters, numbers,
   570                                    as well as underscores.
   571                                  pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
   572                                  type: string
   573                                type: array
   574                              targetLabel:
   575                                description: Label to which the resulting value is written
   576                                  in a replace action. It is mandatory for replace actions.
   577                                  Regex capture groups are available.
   578                                type: string
   579                            type: object
   580                          type: array
   581                        static:
   582                          description: The list of hosts to probe.
   583                          items:
   584                            type: string
   585                          type: array
   586                      type: object
   587                  type: object
   588                tlsConfig:
   589                  description: TLS configuration to use when scraping the endpoint.
   590                  properties:
   591                    ca:
   592                      description: Certificate authority used when verifying server
   593                        certificates.
   594                      properties:
   595                        configMap:
   596                          description: ConfigMap containing data to use for the targets.
   597                          properties:
   598                            key:
   599                              description: The key to select.
   600                              type: string
   601                            name:
   602                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   603                                TODO: Add other useful fields. apiVersion, kind, uid?'
   604                              type: string
   605                            optional:
   606                              description: Specify whether the ConfigMap or its key
   607                                must be defined
   608                              type: boolean
   609                          required:
   610                          - key
   611                          type: object
   612                          x-kubernetes-map-type: atomic
   613                        secret:
   614                          description: Secret containing data to use for the targets.
   615                          properties:
   616                            key:
   617                              description: The key of the secret to select from.  Must
   618                                be a valid secret key.
   619                              type: string
   620                            name:
   621                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   622                                TODO: Add other useful fields. apiVersion, kind, uid?'
   623                              type: string
   624                            optional:
   625                              description: Specify whether the Secret or its key must
   626                                be defined
   627                              type: boolean
   628                          required:
   629                          - key
   630                          type: object
   631                          x-kubernetes-map-type: atomic
   632                      type: object
   633                    cert:
   634                      description: Client certificate to present when doing client-authentication.
   635                      properties:
   636                        configMap:
   637                          description: ConfigMap containing data to use for the targets.
   638                          properties:
   639                            key:
   640                              description: The key to select.
   641                              type: string
   642                            name:
   643                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   644                                TODO: Add other useful fields. apiVersion, kind, uid?'
   645                              type: string
   646                            optional:
   647                              description: Specify whether the ConfigMap or its key
   648                                must be defined
   649                              type: boolean
   650                          required:
   651                          - key
   652                          type: object
   653                          x-kubernetes-map-type: atomic
   654                        secret:
   655                          description: Secret containing data to use for the targets.
   656                          properties:
   657                            key:
   658                              description: The key of the secret to select from.  Must
   659                                be a valid secret key.
   660                              type: string
   661                            name:
   662                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   663                                TODO: Add other useful fields. apiVersion, kind, uid?'
   664                              type: string
   665                            optional:
   666                              description: Specify whether the Secret or its key must
   667                                be defined
   668                              type: boolean
   669                          required:
   670                          - key
   671                          type: object
   672                          x-kubernetes-map-type: atomic
   673                      type: object
   674                    insecureSkipVerify:
   675                      description: Disable target certificate validation.
   676                      type: boolean
   677                    keySecret:
   678                      description: Secret containing the client key file for the targets.
   679                      properties:
   680                        key:
   681                          description: The key of the secret to select from.  Must be
   682                            a valid secret key.
   683                          type: string
   684                        name:
   685                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   686                            TODO: Add other useful fields. apiVersion, kind, uid?'
   687                          type: string
   688                        optional:
   689                          description: Specify whether the Secret or its key must be
   690                            defined
   691                          type: boolean
   692                      required:
   693                      - key
   694                      type: object
   695                      x-kubernetes-map-type: atomic
   696                    serverName:
   697                      description: Used to verify the hostname for the targets.
   698                      type: string
   699                  type: object
   700              type: object
   701          required:
   702          - spec
   703          type: object
   704      served: true
   705      storage: true