-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add
EgressNetwork
and routes statuses (#13181)
This PR adds an `EgressNetwork` CRD, which purpose is to describe networks that are external to the cluster. In addition to that it also adds `TLSRoute` and `TCPRoute` gateway api CRDs. Most of the work in this change is focused on introducing these CRDs and correctly setting their status based on route specificity rules described in: https://gateway-api.sigs.k8s.io/geps/gep-1426/#route-types. Notable changes include: - ability to attach TCP and TLS routes to both `EgressNetworks` and `Service` objects - implemented conflict resolutions between routes - admission validation on the newly introduced resources - module + integration tests Signed-off-by: Zahari Dichev <[email protected]>
- Loading branch information
1 parent
47f245c
commit 3e2f31d
Showing
56 changed files
with
11,161 additions
and
539 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
533 changes: 533 additions & 0 deletions
533
charts/linkerd-crds/templates/gateway.networking.k8s.io_tcproutes.yaml
Large diffs are not rendered by default.
Oops, something went wrong.
582 changes: 582 additions & 0 deletions
582
charts/linkerd-crds/templates/gateway.networking.k8s.io_tlsroutes.yaml
Large diffs are not rendered by default.
Oops, something went wrong.
123 changes: 123 additions & 0 deletions
123
charts/linkerd-crds/templates/policy/egress-network.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
--- | ||
apiVersion: apiextensions.k8s.io/v1 | ||
kind: CustomResourceDefinition | ||
metadata: | ||
name: egressnetworks.policy.linkerd.io | ||
annotations: | ||
{{ include "partials.annotations.created-by" . }} | ||
labels: | ||
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} | ||
linkerd.io/control-plane-ns: {{.Release.Namespace}} | ||
spec: | ||
group: policy.linkerd.io | ||
names: | ||
categories: | ||
- policy | ||
kind: EgressNetwork | ||
listKind: EgressNetworkList | ||
plural: egressnetworks | ||
singular: egressnetwork | ||
scope: Namespaced | ||
versions: | ||
- name: v1alpha1 | ||
served: true | ||
storage: true | ||
subresources: | ||
status: {} | ||
schema: | ||
openAPIV3Schema: | ||
description: >- | ||
An EgressNetwork captures traffic to egress destinations | ||
type: object | ||
required: [spec] | ||
properties: | ||
apiVerson: | ||
type: string | ||
kind: | ||
type: string | ||
metadata: | ||
type: object | ||
spec: | ||
properties: | ||
trafficPolicy: | ||
description: >- | ||
This field controls the traffic policy enforced upon traffic | ||
that does not match any explicit route resources associated | ||
with an instance of this object. The values that are allowed | ||
currently are: | ||
- Allow - permits all traffic, even if it has not been | ||
explicitly described via attaching an xRoute | ||
resources. | ||
- Deny - blocks all traffic that has not been described via | ||
attaching an xRoute resource. | ||
type: string | ||
enum: | ||
- Allow | ||
- Deny | ||
networks: | ||
type: array | ||
items: | ||
type: object | ||
required: [cidr] | ||
properties: | ||
cidr: | ||
description: >- | ||
The CIDR of the network to be authorized. | ||
type: string | ||
except: | ||
description: >- | ||
A list of IP networks/addresses not to be included in | ||
the above `cidr`. | ||
type: array | ||
items: | ||
type: string | ||
type: object | ||
required: | ||
- trafficPolicy | ||
status: | ||
type: object | ||
properties: | ||
conditions: | ||
type: array | ||
items: | ||
type: object | ||
properties: | ||
lastTransitionTime: | ||
description: lastTransitionTime is the last time the | ||
condition transitioned from one status to another. | ||
format: date-time | ||
type: string | ||
status: | ||
description: status of the condition (one of True, False, Unknown) | ||
enum: | ||
- "True" | ||
- "False" | ||
- Unknown | ||
type: string | ||
type: | ||
description: type of the condition in CamelCase or in | ||
foo.example.com/CamelCase. | ||
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 | ||
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 | ||
message: | ||
description: message is a human readable message | ||
indicating details about the transition. This may be an | ||
empty string. | ||
maxLength: 32768 | ||
type: string | ||
required: | ||
- status | ||
- type |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,3 @@ | ||
enableHttpRoutes: true | ||
enableTlsRoutes: true | ||
enableTcpRoutes: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 10 additions & 1 deletion
11
cli/cmd/testdata/install_controlplane_tracing_output.golden
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.