Skip to content
crds.yaml 1.13 MiB
Newer Older
3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000
                              description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                        webhook:
                          description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
                          type: object
                          required:
                            - groupName
                            - solverName
                          properties:
                            config:
                              description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
                              x-kubernetes-preserve-unknown-fields: true
                            groupName:
                              description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
                              type: string
                            solverName:
                              description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
                              type: string
                    http01:
                      description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
                      type: object
                      properties:
                        ingress:
                          description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
                          type: object
                          properties:
                            class:
                              description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
                              type: string
                            ingressTemplate:
                              description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
                              type: object
                              properties:
                                metadata:
                                  description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
                                  type: object
                                  properties:
                                    annotations:
                                      description: Annotations that should be added to the created ACME HTTP01 solver ingress.
                                      type: object
                                      additionalProperties:
                                        type: string
                                    labels:
                                      description: Labels that should be added to the created ACME HTTP01 solver ingress.
                                      type: object
                                      additionalProperties:
                                        type: string
                            name:
                              description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
                              type: string
                            podTemplate:
                              description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
                              type: object
                              properties:
                                metadata:
                                  description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
                                  type: object
                                  properties:
                                    annotations:
                                      description: Annotations that should be added to the create ACME HTTP01 solver pods.
                                      type: object
                                      additionalProperties:
                                        type: string
                                    labels:
                                      description: Labels that should be added to the created ACME HTTP01 solver pods.
                                      type: object
                                      additionalProperties:
                                        type: string
                                spec:
                                  description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
                                  type: object
                                  properties:
                                    affinity:
                                      description: If specified, the pod's scheduling constraints
                                      type: object
                                      properties:
                                        nodeAffinity:
                                          description: Describes node affinity scheduling rules for the pod.
                                          type: object
                                          properties:
                                            preferredDuringSchedulingIgnoredDuringExecution:
                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
                                              type: array
                                              items:
                                                description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                                                type: object
                                                required:
                                                  - preference
                                                  - weight
                                                properties:
                                                  preference:
                                                    description: A node selector term, associated with the corresponding weight.
                                                    type: object
                                                    properties:
                                                      matchExpressions:
                                                        description: A list of node selector requirements by node's labels.
                                                        type: array
                                                        items:
                                                          description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: The label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                              type: string
                                                            values:
                                                              description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                                      matchFields:
                                                        description: A list of node selector requirements by node's fields.
                                                        type: array
                                                        items:
                                                          description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: The label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                              type: string
                                                            values:
                                                              description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                                  weight:
                                                    description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                                                    type: integer
                                                    format: int32
                                            requiredDuringSchedulingIgnoredDuringExecution:
                                              description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
                                              type: object
                                              required:
                                                - nodeSelectorTerms
                                              properties:
                                                nodeSelectorTerms:
                                                  description: Required. A list of node selector terms. The terms are ORed.
                                                  type: array
                                                  items:
                                                    description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                                                    type: object
                                                    properties:
                                                      matchExpressions:
                                                        description: A list of node selector requirements by node's labels.
                                                        type: array
                                                        items:
                                                          description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: The label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                              type: string
                                                            values:
                                                              description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                                      matchFields:
                                                        description: A list of node selector requirements by node's fields.
                                                        type: array
                                                        items:
                                                          description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: The label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                              type: string
                                                            values:
                                                              description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                        podAffinity:
                                          description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                                          type: object
                                          properties:
                                            preferredDuringSchedulingIgnoredDuringExecution:
                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
                                              type: array
                                              items:
                                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                                type: object
                                                required:
                                                  - podAffinityTerm
                                                  - weight
                                                properties:
                                                  podAffinityTerm:
                                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                                    type: object
                                                    required:
                                                      - topologyKey
                                                    properties:
                                                      labelSelector:
                                                        description: A label query over a set of resources, in this case pods.
                                                        type: object
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                            type: array
                                                            items:
                                                              description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                              type: object
                                                              required:
                                                                - key
                                                                - operator
                                                              properties:
                                                                key:
                                                                  description: key is the label key that the selector applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                          matchLabels:
                                                            description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                            additionalProperties:
                                                              type: string
                                                      namespaces:
                                                        description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                                        type: array
                                                        items:
                                                          type: string
                                                      topologyKey:
                                                        description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
                                                        type: string
                                                  weight:
                                                    description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
                                                    type: integer
                                                    format: int32
                                            requiredDuringSchedulingIgnoredDuringExecution:
                                              description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
                                              type: array
                                              items:
                                                description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
                                                type: object
                                                required:
                                                  - topologyKey
                                                properties:
                                                  labelSelector:
                                                    description: A label query over a set of resources, in this case pods.
                                                    type: object
                                                    properties:
                                                      matchExpressions:
                                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                        type: array
                                                        items:
                                                          description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: key is the label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                                      matchLabels:
                                                        description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                        additionalProperties:
                                                          type: string
                                                  namespaces:
                                                    description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                                    type: array
                                                    items:
                                                      type: string
                                                  topologyKey:
                                                    description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
                                                    type: string
                                        podAntiAffinity:
                                          description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                                          type: object
                                          properties:
                                            preferredDuringSchedulingIgnoredDuringExecution:
                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
                                              type: array
                                              items:
                                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                                type: object
                                                required:
                                                  - podAffinityTerm
                                                  - weight
                                                properties:
                                                  podAffinityTerm:
                                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                                    type: object
                                                    required:
                                                      - topologyKey
                                                    properties:
                                                      labelSelector:
                                                        description: A label query over a set of resources, in this case pods.
                                                        type: object
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                            type: array
                                                            items:
                                                              description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                              type: object
                                                              required:
                                                                - key
                                                                - operator
                                                              properties:
                                                                key:
                                                                  description: key is the label key that the selector applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                          matchLabels:
                                                            description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                            additionalProperties:
                                                              type: string
                                                      namespaces:
                                                        description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                                        type: array
                                                        items:
                                                          type: string
                                                      topologyKey:
                                                        description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
                                                        type: string
                                                  weight:
                                                    description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
                                                    type: integer
                                                    format: int32
                                            requiredDuringSchedulingIgnoredDuringExecution:
                                              description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
                                              type: array
                                              items:
                                                description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
                                                type: object
                                                required:
                                                  - topologyKey
                                                properties:
                                                  labelSelector:
                                                    description: A label query over a set of resources, in this case pods.
                                                    type: object
                                                    properties:
                                                      matchExpressions:
                                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                        type: array
                                                        items:
                                                          description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: key is the label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                                      matchLabels:
                                                        description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                        additionalProperties:
                                                          type: string
                                                  namespaces:
                                                    description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                                    type: array
                                                    items:
                                                      type: string
                                                  topologyKey:
                                                    description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
                                                    type: string
                                    nodeSelector:
                                      description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
                                      type: object
                                      additionalProperties:
                                        type: string
                                    priorityClassName:
                                      description: If specified, the pod's priorityClassName.
                                      type: string
                                    serviceAccountName:
                                      description: If specified, the pod's service account
                                      type: string
                                    tolerations:
                                      description: If specified, the pod's tolerations.
                                      type: array
                                      items:
                                        description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
                                        type: object
                                        properties:
                                          effect:
                                            description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
                                            type: string
                                          key:
                                            description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
                                            type: string
                                          operator:
                                            description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
                                            type: string
                                          tolerationSeconds:
                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
                                            type: integer
                                            format: int64
                                          value:
                                            description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
                                            type: string
                            serviceType:
                              description: Optional service type for Kubernetes solver service
                              type: string
                    selector:
                      description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
                      type: object
                      properties:
                        dnsNames:
                          description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
                          type: array
                          items:
                            type: string
                        dnsZones:
                          description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
                          type: array
                          items:
                            type: string
                        matchLabels:
                          description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
                          type: object
                          additionalProperties:
                            type: string
                token:
                  description: Token is the ACME challenge token for this challenge. This is the raw value returned from the ACME server.
                  type: string
                type:
                  description: Type is the type of ACME challenge this resource represents. One of "http-01" or "dns-01".
                  type: string
                  enum:
                    - http-01
                    - dns-01
                url:
                  description: URL is the URL of the ACME Challenge resource for this challenge. This can be used to lookup details about the status of this challenge.
                  type: string
                wildcard:
                  description: Wildcard will be true if this challenge is for a wildcard identifier, for example '*.example.com'.
                  type: boolean
            status:
              type: object
              properties:
                presented:
                  description: Presented will be set to true if the challenge values for this challenge are currently 'presented'. This *does not* imply the self check is passing. Only that the values have been 'submitted' for the appropriate challenge mechanism (i.e. the DNS01 TXT record has been presented, or the HTTP01 configuration has been configured).
                  type: boolean
                processing:
                  description: Processing is used to denote whether this challenge should be processed or not. This field will only be set to true by the 'scheduling' component. It will only be set to false by the 'challenges' controller, after the challenge has reached a final state or timed out. If this field is set to false, the challenge controller will not take any more action.
                  type: boolean
                reason:
                  description: Reason contains human readable information on why the Challenge is in the current state.
                  type: string
                state:
                  description: State contains the current 'state' of the challenge. If not set, the state of the challenge is unknown.
                  type: string
                  enum:
                    - valid
                    - ready
                    - pending
                    - processing
                    - invalid
                    - expired
                    - errored
      served: true
      storage: false
      subresources:
        status: {}
    - additionalPrinterColumns:
        - jsonPath: .status.state
          name: State
          type: string
        - jsonPath: .spec.dnsName
          name: Domain
          type: string
        - jsonPath: .status.reason
          name: Reason
          priority: 1
          type: string
        - description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
          jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1beta1
      schema:
        openAPIV3Schema:
          description: Challenge is a type to represent a Challenge request with an ACME server
          type: object
          required:
            - metadata
            - spec
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              type: object
              required:
                - authorizationURL
                - dnsName
                - issuerRef
                - key
                - solver
                - token
                - type
                - url
              properties:
                authorizationURL:
                  description: The URL to the ACME Authorization resource that this challenge is a part of.
                  type: string
                dnsName:
                  description: dnsName is the identifier that this challenge is for, e.g. example.com. If the requested DNSName is a 'wildcard', this field MUST be set to the non-wildcard domain, e.g. for `*.example.com`, it must be `example.com`.
                  type: string
                issuerRef:
                  description: References a properly configured ACME-type Issuer which should be used to create this Challenge. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Challenge will be marked as failed.
                  type: object
                  required:
                    - name
                  properties:
                    group:
                      description: Group of the resource being referred to.
                      type: string
                    kind:
                      description: Kind of the resource being referred to.
                      type: string
                    name:
                      description: Name of the resource being referred to.
                      type: string
                key:
                  description: 'The ACME challenge key for this challenge For HTTP01 challenges, this is the value that must be responded with to complete the HTTP01 challenge in the format: `<private key JWK thumbprint>.<key from acme server for challenge>`. For DNS01 challenges, this is the base64 encoded SHA256 sum of the `<private key JWK thumbprint>.<key from acme server for challenge>` text that must be set as the TXT record content.'
                  type: string
                solver:
                  description: Contains the domain solving configuration that should be used to solve this challenge resource.
                  type: object
                  properties:
                    dns01:
                      description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
                      type: object
                      properties:
                        acmeDNS:
                          description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
                          type: object
                          required:
                            - accountSecretRef
                            - host
                          properties:
                            accountSecretRef:
                              description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                            host:
                              type: string
                        akamai:
                          description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
                          type: object
                          required:
                            - accessTokenSecretRef
                            - clientSecretSecretRef
                            - clientTokenSecretRef
                            - serviceConsumerDomain
                          properties:
                            accessTokenSecretRef:
                              description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                            clientSecretSecretRef:
                              description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                            clientTokenSecretRef:
                              description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                            serviceConsumerDomain:
                              type: string
                        azureDNS:
                          description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
                          type: object
                          required:
                            - resourceGroupName
                            - subscriptionID
                          properties:
                            clientID:
                              description: if both this and ClientSecret are left unset MSI will be used
                              type: string
                            clientSecretSecretRef:
                              description: if both this and ClientID are left unset MSI will be used
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                            environment:
                              type: string
                              enum:
                                - AzurePublicCloud
                                - AzureChinaCloud
                                - AzureGermanCloud
                                - AzureUSGovernmentCloud
                            hostedZoneName:
                              type: string
                            resourceGroupName:
                              type: string
                            subscriptionID:
                              type: string
                            tenantID:
                              description: when specifying ClientID and ClientSecret then this field is also needed
                              type: string
                        cloudDNS:
                          description: Use the Google Cloud DNS API to manage DNS01 challenge records.
                          type: object
                          required:
                            - project
                          properties:
                            hostedZoneName:
                              description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
                              type: string
                            project:
                              type: string
                            serviceAccountSecretRef:
                              description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                        cloudflare:
                          description: Use the Cloudflare API to manage DNS01 challenge records.
                          type: object
                          properties:
                            apiKeySecretRef:
                              description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                            apiTokenSecretRef:
                              description: API token used to authenticate with Cloudflare.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                            email:
                              description: Email of the account, only required when using API key based authentication.
                              type: string
                        cnameStrategy:
                          description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
                          type: string
                          enum:
                            - None
                            - Follow
                        digitalocean:
                          description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
                          type: object
                          required:
                            - tokenSecretRef
                          properties:
                            tokenSecretRef:
                              description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                        rfc2136:
                          description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
                          type: object
                          required:
                            - nameserver
                          properties:
                            nameserver:
                              description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
                              type: string
                            tsigAlgorithm:
                              description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
                              type: string
                            tsigKeyName:
                              description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
                              type: string
                            tsigSecretSecretRef:
                              description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                        route53:
                          description: Use the AWS Route53 API to manage DNS01 challenge records.
                          type: object
                          required:
                            - region
                          properties:
                            accessKeyID:
                              description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                              type: string
                            hostedZoneID:
                              description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
                              type: string
                            region:
                              description: Always set the region when using AccessKeyID and SecretAccessKey
                              type: string
                            role:
                              description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
                              type: string
                            secretAccessKeySecretRef:
                              description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
                              type: object
                              required:
                                - name
                              properties:
                                key:
                                  description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
                                  type: string
                                name:
                                  description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                        webhook:
                          description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
                          type: object
                          required:
                            - groupName
                            - solverName
                          properties:
                            config:
                              description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
                              x-kubernetes-preserve-unknown-fields: true
                            groupName:
                              description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
                              type: string
                            solverName:
                              description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
                              type: string
                    http01:
                      description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
                      type: object
                      properties:
                        ingress:
                          description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
                          type: object
                          properties:
                            class:
                              description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
                              type: string
                            ingressTemplate:
                              description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
                              type: object
                              properties:
                                metadata:
                                  description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
                                  type: object
                                  properties:
                                    annotations:
                                      description: Annotations that should be added to the created ACME HTTP01 solver ingress.
                                      type: object
                                      additionalProperties:
                                        type: string
                                    labels:
                                      description: Labels that should be added to the created ACME HTTP01 solver ingress.
                                      type: object
                                      additionalProperties:
                                        type: string
                            name:
                              description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
                              type: string
                            podTemplate:
                              description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
                              type: object
                              properties:
                                metadata:
                                  description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
                                  type: object
                                  properties:
                                    annotations:
                                      description: Annotations that should be added to the create ACME HTTP01 solver pods.
                                      type: object
                                      additionalProperties:
                                        type: string
                                    labels:
                                      description: Labels that should be added to the created ACME HTTP01 solver pods.
                                      type: object
                                      additionalProperties:
                                        type: string
                                spec:
                                  description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
                                  type: object
                                  properties:
                                    affinity:
                                      description: If specified, the pod's scheduling constraints
                                      type: object
                                      properties:
                                        nodeAffinity:
                                          description: Describes node affinity scheduling rules for the pod.
                                          type: object
                                          properties:
                                            preferredDuringSchedulingIgnoredDuringExecution:
                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
                                              type: array
                                              items:
                                                description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                                                type: object
                                                required:
                                                  - preference
                                                  - weight
                                                properties:
                                                  preference:
                                                    description: A node selector term, associated with the corresponding weight.
                                                    type: object
                                                    properties:
                                                      matchExpressions:
                                                        description: A list of node selector requirements by node's labels.
                                                        type: array
                                                        items:
                                                          description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: The label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                              type: string
                                                            values:
                                                              description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                                      matchFields:
                                                        description: A list of node selector requirements by node's fields.
                                                        type: array
                                                        items:
                                                          description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: The label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                              type: string
                                                            values:
                                                              description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
                                                              type: array
                                                              items:
                                                                type: string
                                                  weight:
                                                    description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                                                    type: integer
                                                    format: int32
                                            requiredDuringSchedulingIgnoredDuringExecution:
                                              description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
                                              type: object
                                              required:
                                                - nodeSelectorTerms
                                              properties:
                                                nodeSelectorTerms:
                                                  description: Required. A list of node selector terms. The terms are ORed.
                                                  type: array
                                                  items:
                                                    description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                                                    type: object
                                                    properties:
                                                      matchExpressions:
                                                        description: A list of node selector requirements by node's labels.
                                                        type: array
                                                        items:
                                                          description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                                          type: object
                                                          required:
                                                            - key
                                                            - operator
                                                          properties:
                                                            key:
                                                              description: The label key that the selector applies to.