Skip to content

Commit bf9e1f7

Browse files
zac-nixonniclask25
authored and
niclask25
committed
initial reconcilers for gateway
1 parent 9668a4b commit bf9e1f7

14 files changed

+1269
-1
lines changed
Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
annotations:
6+
controller-gen.kubebuilder.io/version: v0.14.0
7+
name: loadbalancerconfigurations.gateway.k8s.aws
8+
spec:
9+
group: gateway.k8s.aws
10+
names:
11+
kind: LoadBalancerConfiguration
12+
listKind: LoadBalancerConfigurationList
13+
plural: loadbalancerconfigurations
14+
singular: loadbalancerconfiguration
15+
scope: Namespaced
16+
versions:
17+
- additionalPrinterColumns:
18+
- jsonPath: .metadata.creationTimestamp
19+
name: AGE
20+
type: date
21+
name: v1beta1
22+
schema:
23+
openAPIV3Schema:
24+
description: LoadBalancerConfiguration is the Schema for the LoadBalancerConfiguration
25+
API
26+
properties:
27+
apiVersion:
28+
description: |-
29+
APIVersion defines the versioned schema of this representation of an object.
30+
Servers should convert recognized schemas to the latest internal value, and
31+
may reject unrecognized values.
32+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
33+
type: string
34+
kind:
35+
description: |-
36+
Kind is a string value representing the REST resource this object represents.
37+
Servers may infer this from the endpoint the client submits requests to.
38+
Cannot be updated.
39+
In CamelCase.
40+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
41+
type: string
42+
metadata:
43+
type: object
44+
spec:
45+
description: LoadBalancerConfigurationSpec defines the desired state of
46+
LoadBalancerConfiguration
47+
properties:
48+
customerOwnedIpv4Pool:
49+
description: customerOwnedIpv4Pool is the ID of the customer-owned
50+
address for Application Load Balancers on Outposts pool.
51+
type: string
52+
enablePrefixForIpv6SourceNat:
53+
description: enablePrefixForIpv6SourceNat indicates whether to use
54+
an IPv6 prefix from each subnet for source NAT for Network Load
55+
Balancers with UDP listeners.
56+
enum:
57+
- "on"
58+
- "off"
59+
type: string
60+
enforceSecurityGroupInboundRulesOnPrivateLinkTraffic:
61+
description: enforceSecurityGroupInboundRulesOnPrivateLinkTraffic
62+
Indicates whether to evaluate inbound security group rules for traffic
63+
sent to a Network Load Balancer through Amazon Web Services PrivateLink.
64+
type: string
65+
ipAddressType:
66+
description: loadBalancerIPType defines what kind of load balancer
67+
to provision (ipv4, dual stack)
68+
enum:
69+
- ipv4
70+
- dualstack
71+
- dualstack-without-public-ipv4
72+
type: string
73+
listenerConfigurations:
74+
description: listenerConfigurations is an optional list of configurations
75+
for each listener on LB
76+
items:
77+
properties:
78+
alpnPolicy:
79+
description: alpnPolicy an optional string that allows you to
80+
configure ALPN policies on your Load Balancer
81+
enum:
82+
- HTTP1Only
83+
- HTTP2Only
84+
- HTTP2Optional
85+
- HTTP2Preferred
86+
- None
87+
type: string
88+
certificates:
89+
description: certificates is the list of other certificates
90+
to add to the listener.
91+
items:
92+
type: string
93+
type: array
94+
defaultCertificate:
95+
description: |-
96+
TODO: Add validation in admission webhook to make it required for secure protocols
97+
defaultCertificate the cert arn to be used by default.
98+
type: string
99+
listenerAttributes:
100+
description: listenerAttributes defines the attributes for the
101+
listener
102+
items:
103+
description: ListenerAttribute defines listener attribute.
104+
properties:
105+
key:
106+
description: The key of the attribute.
107+
type: string
108+
value:
109+
description: The value of the attribute.
110+
type: string
111+
required:
112+
- key
113+
- value
114+
type: object
115+
type: array
116+
mutualAuthentication:
117+
description: mutualAuthentication defines the mutual authentication
118+
configuration information.
119+
properties:
120+
advertiseTrustStoreCaNames:
121+
description: Indicates whether trust store CA certificate
122+
names are advertised.
123+
enum:
124+
- "on"
125+
- "off"
126+
type: string
127+
ignoreClientCertificateExpiry:
128+
description: Indicates whether expired client certificates
129+
are ignored.
130+
type: boolean
131+
mode:
132+
description: The client certificate handling method. Options
133+
are off , passthrough or verify
134+
enum:
135+
- "off"
136+
- passthrough
137+
- verify
138+
type: string
139+
trustStore:
140+
description: The Name or ARN of the trust store.
141+
type: string
142+
required:
143+
- mode
144+
type: object
145+
protocolPort:
146+
description: protocolPort is identifier for the listener on
147+
load balancer. It should be of the form PROTOCOL:PORT
148+
pattern: ^(HTTP|HTTPS|TLS|TCP|UDP)?:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3})?$
149+
type: string
150+
sslPolicy:
151+
description: sslPolicy is the security policy that defines which
152+
protocols and ciphers are supported for secure listeners [HTTPS
153+
or TLS listener].
154+
type: string
155+
required:
156+
- protocolPort
157+
type: object
158+
type: array
159+
loadBalancerAttributes:
160+
description: LoadBalancerAttributes defines the attribute of LB
161+
items:
162+
description: LoadBalancerAttribute defines LB attribute.
163+
properties:
164+
key:
165+
description: The key of the attribute.
166+
type: string
167+
value:
168+
description: The value of the attribute.
169+
type: string
170+
required:
171+
- key
172+
- value
173+
type: object
174+
type: array
175+
loadBalancerName:
176+
description: loadBalancerName defines the name of the LB to provision.
177+
If unspecified, it will be automatically generated.
178+
maxLength: 32
179+
minLength: 1
180+
type: string
181+
loadBalancerSubnets:
182+
description: loadBalancerSubnets is an optional list of subnet configurations
183+
to be used in the LB
184+
items:
185+
description: SubnetConfiguration defines the subnet settings for
186+
a Load Balancer.
187+
properties:
188+
eipAllocation:
189+
description: eipAllocation the EIP name for this subnet.
190+
type: string
191+
identifier:
192+
description: identifier name or id for the subnet
193+
type: string
194+
privateIPv4Allocation:
195+
description: privateIPv4Allocation the private ipv4 address
196+
to assign to this subnet.
197+
type: string
198+
privateIPv6Allocation:
199+
description: privateIPv6Allocation the private ipv6 address
200+
to assign to this subnet.
201+
type: string
202+
required:
203+
- identifier
204+
type: object
205+
type: array
206+
scheme:
207+
description: scheme defines the type of LB to provision. If unspecified,
208+
it will be automatically inferred.
209+
enum:
210+
- internal
211+
- internet-facing
212+
type: string
213+
securityGroupPrefixes:
214+
description: securityGroupPrefixes an optional list of prefixes that
215+
are allowed to access the LB.
216+
items:
217+
type: string
218+
type: array
219+
securityGroups:
220+
description: securityGroups an optional list of security group ids
221+
or names to apply to the LB
222+
items:
223+
type: string
224+
type: array
225+
sourceRanges:
226+
description: sourceRanges an optional list of CIDRs that are allowed
227+
to access the LB.
228+
items:
229+
type: string
230+
type: array
231+
tags:
232+
description: Tags defines list of Tags on LB.
233+
items:
234+
description: Tag defines a AWS Tag on resources.
235+
properties:
236+
key:
237+
description: The key of the tag.
238+
type: string
239+
value:
240+
description: The value of the tag.
241+
type: string
242+
required:
243+
- key
244+
- value
245+
type: object
246+
type: array
247+
vpcId:
248+
description: vpcId is the ID of the VPC for the load balancer.
249+
type: string
250+
type: object
251+
status:
252+
description: LoadBalancerConfigurationStatus defines the observed state
253+
of TargetGroupBinding
254+
properties:
255+
observedGatewayClassConfigurationGeneration:
256+
description: The generation of the Gateway Configuration attached
257+
to the GatewayClass object.
258+
format: int64
259+
type: integer
260+
observedGatewayConfigurationGeneration:
261+
description: The generation of the Gateway Configuration attached
262+
to the Gateway object.
263+
format: int64
264+
type: integer
265+
type: object
266+
type: object
267+
served: true
268+
storage: true
269+
subresources:
270+
status: {}

0 commit comments

Comments
 (0)