Files
charts/bitnami/contour/resources/extensionservices.yaml
lou-lan 9c070343ee [bitnami/contour] Sync CRDs with contour release 1.20.1 (#9309)
* [bitnami/contour] Sync CRDs with contour release 1.20.1
Signed-off-by: lou-lan <loulan@loulan.me>

* [bitnami/contour] Update components versions

Signed-off-by: Bitnami Containers <containers@bitnami.com>

Co-authored-by: Bitnami Containers <containers@bitnami.com>
2022-03-09 08:38:27 +01:00

399 lines
23 KiB
YAML

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.6.2
name: extensionservices.projectcontour.io
spec:
preserveUnknownFields: false
group: projectcontour.io
names:
kind: ExtensionService
listKind: ExtensionServiceList
plural: extensionservices
shortNames:
- extensionservice
- extensionservices
singular: extensionservice
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: ExtensionService is the schema for the Contour extension services
API. An ExtensionService resource binds a network service to the Contour
API so that Contour API features can be implemented by collaborating components.
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:
description: ExtensionServiceSpec defines the desired state of an ExtensionService
resource.
properties:
loadBalancerPolicy:
description: The policy for load balancing GRPC service requests.
Note that the `Cookie` and `RequestHash` load balancing strategies
cannot be used here.
properties:
requestHashPolicies:
description: RequestHashPolicies contains a list of hash policies
to apply when the `RequestHash` load balancing strategy is chosen.
If an element of the supplied list of hash policies is invalid,
it will be ignored. If the list of hash policies is empty after
validation, the load balancing strategy will fall back the the
default `RoundRobin`.
items:
description: RequestHashPolicy contains configuration for an
individual hash policy on a request attribute.
properties:
hashSourceIP:
description: HashSourceIP should be set to true when request
source IP hash based load balancing is desired. It must
be the only hash option field set, otherwise this request
hash policy object will be ignored.
type: boolean
headerHashOptions:
description: HeaderHashOptions should be set when request
header hash based load balancing is desired. It must be
the only hash option field set, otherwise this request
hash policy object will be ignored.
properties:
headerName:
description: HeaderName is the name of the HTTP request
header that will be used to calculate the hash key.
If the header specified is not present on a request,
no hash will be produced.
minLength: 1
type: string
type: object
terminal:
description: Terminal is a flag that allows for short-circuiting
computing of a hash for a given request. If set to true,
and the request attribute specified in the attribute hash
options is present, no further hash policies will be used
to calculate a hash for the request.
type: boolean
type: object
type: array
strategy:
description: Strategy specifies the policy used to balance requests
across the pool of backend pods. Valid policy names are `Random`,
`RoundRobin`, `WeightedLeastRequest`, `Cookie`, and `RequestHash`.
If an unknown strategy name is specified or no policy is supplied,
the default `RoundRobin` policy is used.
type: string
type: object
protocol:
description: Protocol may be used to specify (or override) the protocol
used to reach this Service. Values may be h2 or h2c. If omitted,
protocol-selection falls back on Service annotations.
enum:
- h2
- h2c
type: string
protocolVersion:
description: This field sets the version of the GRPC protocol that
Envoy uses to send requests to the extension service. Since Contour
always uses the v3 Envoy API, this is currently fixed at "v3". However,
other protocol options will be available in future.
enum:
- v3
type: string
services:
description: Services specifies the set of Kubernetes Service resources
that receive GRPC extension API requests. If no weights are specified
for any of the entries in this array, traffic will be spread evenly
across all the services. Otherwise, traffic is balanced proportionally
to the Weight field in each entry.
items:
description: ExtensionServiceTarget defines an Kubernetes Service
to target with extension service traffic.
properties:
name:
description: Name is the name of Kubernetes service that will
accept service traffic.
type: string
port:
description: Port (defined as Integer) to proxy traffic to since
a service can have multiple defined.
exclusiveMaximum: true
maximum: 65536
minimum: 1
type: integer
weight:
description: Weight defines proportion of traffic to balance
to the Kubernetes Service.
format: int32
type: integer
required:
- name
- port
type: object
minItems: 1
type: array
timeoutPolicy:
description: The timeout policy for requests to the services.
properties:
idle:
description: Timeout for how long the proxy should wait while
there is no activity during single request/response (for HTTP/1.1)
or stream (for HTTP/2). Timeout will not trigger while HTTP/1.1
connection is idle between two consecutive requests. If not
specified, there is no per-route idle timeout, though a connection
manager-wide stream_idle_timeout default of 5m still applies.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
type: string
response:
description: Timeout for receiving a response from the server
after processing a request from client. If not supplied, Envoy's
default value of 15s applies.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
type: string
type: object
validation:
description: UpstreamValidation defines how to verify the backend
service's certificate
properties:
caSecret:
description: Name or namespaced name of the Kubernetes secret
used to validate the certificate presented by the backend
type: string
subjectName:
description: Key which is expected to be present in the 'subjectAltName'
of the presented certificate
type: string
required:
- caSecret
- subjectName
type: object
required:
- services
type: object
status:
description: ExtensionServiceStatus defines the observed state of an ExtensionService
resource.
properties:
conditions:
description: "Conditions contains the current status of the ExtensionService
resource. \n Contour will update a single condition, `Valid`, that
is in normal-true polarity. \n Contour will not modify any other
Conditions set in this block, in case some other controller wants
to add a Condition."
items:
description: "DetailedCondition is an extension of the normal Kubernetes
conditions, with two extra fields to hold sub-conditions, which
provide more detailed reasons for the state (True or False) of
the condition. \n `errors` holds information about sub-conditions
which are fatal to that condition and render its state False.
\n `warnings` holds information about sub-conditions which are
not fatal to that condition and do not force the state to be False.
\n Remember that Conditions have a type, a status, and a reason.
\n The type is the type of the condition, the most important one
in this CRD set is `Valid`. `Valid` is a positive-polarity condition:
when it is `status: true` there are no problems. \n In more detail,
`status: true` means that the object is has been ingested into
Contour with no errors. `warnings` may still be present, and will
be indicated in the Reason field. There must be zero entries in
the `errors` slice in this case. \n `Valid`, `status: false` means
that the object has had one or more fatal errors during processing
into Contour. The details of the errors will be present under
the `errors` field. There must be at least one error in the `errors`
slice if `status` is `false`. \n For DetailedConditions of types
other than `Valid`, the Condition must be in the negative polarity.
When they have `status` `true`, there is an error. There must
be at least one entry in the `errors` Subcondition slice. When
they have `status` `false`, there are no serious errors, and there
must be zero entries in the `errors` slice. In either case, there
may be entries in the `warnings` slice. \n Regardless of the polarity,
the `reason` and `message` fields must be updated with either
the detail of the reason (if there is one and only one entry in
total across both the `errors` and `warnings` slices), or `MultipleReasons`
if there is more than one entry."
properties:
errors:
description: "Errors contains a slice of relevant error subconditions
for this object. \n Subconditions are expected to appear when
relevant (when there is a error), and disappear when not relevant.
An empty slice here indicates no errors."
items:
description: "SubCondition is a Condition-like type intended
for use as a subcondition inside a DetailedCondition. \n
It contains a subset of the Condition fields. \n It is intended
for warnings and errors, so `type` names should use abnormal-true
polarity, that is, they should be of the form \"ErrorPresent:
true\". \n The expected lifecycle for these errors is that
they should only be present when the error or warning is,
and should be removed when they are not relevant."
properties:
message:
description: "Message is a human readable message indicating
details about the transition. \n This may be an empty
string."
maxLength: 32768
type: string
reason:
description: "Reason contains a programmatic identifier
indicating the reason for the condition's last transition.
Producers of specific condition types may define expected
values and meanings for this field, and whether the
values are considered a guaranteed API. \n The value
should be a CamelCase string. \n This field may not
be empty."
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`.
\n This must be in abnormal-true polarity, that is,
`ErrorFound` or `controller.io/ErrorFound`. \n The regex
it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- message
- reason
- status
- type
type: object
type: array
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
warnings:
description: "Warnings contains a slice of relevant warning
subconditions for this object. \n Subconditions are expected
to appear when relevant (when there is a warning), and disappear
when not relevant. An empty slice here indicates no warnings."
items:
description: "SubCondition is a Condition-like type intended
for use as a subcondition inside a DetailedCondition. \n
It contains a subset of the Condition fields. \n It is intended
for warnings and errors, so `type` names should use abnormal-true
polarity, that is, they should be of the form \"ErrorPresent:
true\". \n The expected lifecycle for these errors is that
they should only be present when the error or warning is,
and should be removed when they are not relevant."
properties:
message:
description: "Message is a human readable message indicating
details about the transition. \n This may be an empty
string."
maxLength: 32768
type: string
reason:
description: "Reason contains a programmatic identifier
indicating the reason for the condition's last transition.
Producers of specific condition types may define expected
values and meanings for this field, and whether the
values are considered a guaranteed API. \n The value
should be a CamelCase string. \n This field may not
be empty."
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`.
\n This must be in abnormal-true polarity, that is,
`ErrorFound` or `controller.io/ErrorFound`. \n The regex
it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- message
- reason
- status
- type
type: object
type: array
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
type: object
type: object
served: true
storage: true
subresources:
status: {}