-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathegress.monzo.com_externalservices.yaml
More file actions
204 lines (202 loc) · 9.65 KB
/
egress.monzo.com_externalservices.yaml
File metadata and controls
204 lines (202 loc) · 9.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.0
name: externalservices.egress.monzo.com
spec:
group: egress.monzo.com
names:
kind: ExternalService
listKind: ExternalServiceList
plural: externalservices
singular: externalservice
scope: Cluster
versions:
- name: v1
schema:
openAPIV3Schema:
description: ExternalService is the Schema for the externalservices API
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: ExternalServiceSpec defines the desired state of ExternalService
properties:
dnsName:
description: DnsName is a DNS name target for the external service
type: string
envoyClusterMaxConnections:
description: |-
The maximum number of connections that Envoy will establish to all hosts in an upstream cluster (defaults to 1024).
If this circuit breaker overflows the upstream_cx_overflow counter for the cluster will increment.
format: int32
type: integer
envoyDnsRefreshRateS:
description: "Corresponds to Envoy's dns_refresh_rate config field
for this cluster, in seconds\nSee\thttps://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto"
format: int64
type: integer
envoyJsonAdminAccessLogs:
description: |-
Output admin logs in JSON format as opposed to a text string.
Defaults to false
type: boolean
envoyJsonClusterAccessLogs:
description: |-
Output access logs in JSON format as opposed to a text string.
Defaults to false
type: boolean
envoyLogLevel:
description: Input to the --log-level command line option. See the
help text for the available log levels and the default.
type: string
envoyRespectDnsTTL:
description: "Corresponds to Envoy's respect_dns_ttl config field
for this cluster.\nSee\thttps://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto"
type: boolean
hijackDns:
description: |-
If true, add a `egress.monzo.com/hijack-dns: true` label to produced Service objects
CoreDNS can watch this label and decide to rewrite DnsName -> clusterIP
type: boolean
ipOverride:
description: When set allows overwriting the A records of the DNS
being overridden.
items:
type: string
type: array
maxReplicas:
description: MaxReplicas is the maximum number of gateways to run,
enforced by HorizontalPodAutoscaler. Defaults to 12
format: int32
type: integer
minReplicas:
description: MinReplicas is the minimum number of gateways to run.
Defaults to 3
format: int32
type: integer
ports:
description: Ports is a list of ports on which the external service
may be called
items:
properties:
port:
description: The port on the given protocol.
format: int32
type: integer
protocol:
description: |-
The protocol (TCP or UDP) which traffic must match. If not specified, this
field defaults to TCP.
type: string
type: object
type: array
resources:
description: ResourceRequirements describes the compute resource requirements
for gateway pods. Defaults to 100m, 50Mi, 2, 1Gi
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
request:
description: |-
Request is the name chosen for a request in the referenced claim.
If empty, everything from the claim is made available, otherwise
only the result of this request.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
serviceTopologyMode:
description: Provides a way to override the global default
type: string
serviceTrafficDistribution:
description: |-
ServiceTrafficDistribution allows configuration of the service traffic distribution mode
if it's not set the field won't be set at all
https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
type: string
targetCPUUtilizationPercentage:
description: Target average CPU utilization (represented as a percentage
of requested CPU) over all the pods. Defaults to 50
format: int32
type: integer
topologySpreadSkews:
description: TopologySpreadSkews allows overriding the topology spread
skews for the service
properties:
hostname:
description: Hostname is the max skew for the hostname topology
key. If unset, falls back to the global env var or default.
type: integer
zone:
description: Zone is the max skew for the zone topology key. If
unset, falls back to the global env var or default.
type: integer
type: object
type: object
status:
description: ExternalServiceStatus defines the observed state of ExternalService
type: object
type: object
served: true
storage: true