...
1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 api-approved.openshift.io: https://github.com/openshift/api/pull/851
6 include.release.openshift.io/ibm-cloud-managed: "true"
7 include.release.openshift.io/self-managed-high-availability: "true"
8 creationTimestamp: null
9 name: egressrouters.network.operator.openshift.io
10spec:
11 group: network.operator.openshift.io
12 names:
13 kind: EgressRouter
14 listKind: EgressRouterList
15 plural: egressrouters
16 singular: egressrouter
17 scope: Namespaced
18 versions:
19 - additionalPrinterColumns:
20 - jsonPath: .status.conditions[*].type
21 name: Condition
22 type: string
23 - jsonPath: .status.conditions[*].status
24 name: Status
25 type: string
26 name: v1
27 schema:
28 openAPIV3Schema:
29 description: "EgressRouter is a feature allowing the user to define an egress router that acts as a bridge between pods and external systems. The egress router runs a service that redirects egress traffic originating from a pod or a group of pods to a remote external system or multiple destinations as per configuration. \n It is consumed by the cluster-network-operator. More specifically, given an EgressRouter CR with <name>, the CNO will create and manage: - A service called <name> - An egress pod called <name> - A NAD called <name> \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). \n EgressRouter is a single egressrouter pod configuration object."
30 properties:
31 apiVersion:
32 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'
33 type: string
34 kind:
35 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'
36 type: string
37 metadata:
38 type: object
39 spec:
40 description: Specification of the desired egress router.
41 oneOf:
42 - properties:
43 mode:
44 enum:
45 - Redirect
46 required:
47 - redirect
48 properties:
49 addresses:
50 description: List of IP addresses to configure on the pod's secondary interface.
51 items:
52 description: EgressRouterAddress contains a pair of IP CIDR and gateway to be configured on the router's interface
53 properties:
54 gateway:
55 anyOf:
56 - format: ipv4
57 - format: ipv6
58 description: IP address of the next-hop gateway, if it cannot be automatically determined. Can be IPv4 or IPv6.
59 type: string
60 ip:
61 description: IP is the address to configure on the router's interface. Can be IPv4 or IPv6.
62 type: string
63 required:
64 - ip
65 type: object
66 type: array
67 mode:
68 default: Redirect
69 description: Mode depicts the mode that is used for the egress router. The default mode is "Redirect" and is the only supported mode currently.
70 enum:
71 - Redirect
72 type: string
73 networkInterface:
74 default:
75 macvlan:
76 mode: Bridge
77 description: Specification of interface to create/use. The default is macvlan. Currently only macvlan is supported.
78 oneOf:
79 - required:
80 - macvlan
81 properties:
82 macvlan:
83 default:
84 mode: Bridge
85 description: Arguments specific to the interfaceType macvlan
86 properties:
87 master:
88 description: Name of the master interface. Need not be specified if it can be inferred from the IP address.
89 type: string
90 mode:
91 default: Bridge
92 description: Mode depicts the mode that is used for the macvlan interface; one of Bridge|Private|VEPA|Passthru. The default mode is "Bridge".
93 enum:
94 - Bridge
95 - Private
96 - VEPA
97 - Passthru
98 type: string
99 required:
100 - mode
101 type: object
102 type: object
103 redirect:
104 description: Redirect represents the configuration parameters specific to redirect mode.
105 properties:
106 fallbackIP:
107 anyOf:
108 - format: ipv4
109 - format: ipv6
110 description: FallbackIP specifies the remote destination's IP address. Can be IPv4 or IPv6. If no redirect rules are specified, all traffic from the router are redirected to this IP. If redirect rules are specified, then any connections on any other port (undefined in the rules) on the router will be redirected to this IP. If redirect rules are specified and no fallback IP is provided, connections on other ports will simply be rejected.
111 type: string
112 redirectRules:
113 description: List of L4RedirectRules that define the DNAT redirection from the pod to the destination in redirect mode.
114 items:
115 description: L4RedirectRule defines a DNAT redirection from a given port to a destination IP and port.
116 properties:
117 destinationIP:
118 anyOf:
119 - format: ipv4
120 - format: ipv6
121 description: IP specifies the remote destination's IP address. Can be IPv4 or IPv6.
122 type: string
123 port:
124 description: Port is the port number to which clients should send traffic to be redirected.
125 format: int32
126 maximum: 65535
127 minimum: 1
128 type: integer
129 protocol:
130 description: Protocol can be TCP, SCTP or UDP.
131 enum:
132 - TCP
133 - UDP
134 - SCTP
135 type: string
136 targetPort:
137 description: TargetPort allows specifying the port number on the remote destination to which the traffic gets redirected to. If unspecified, the value from "Port" is used.
138 format: int32
139 maximum: 65535
140 minimum: 1
141 type: integer
142 required:
143 - destinationIP
144 - port
145 - protocol
146 type: object
147 type: array
148 type: object
149 required:
150 - addresses
151 - mode
152 - networkInterface
153 type: object
154 status:
155 description: Observed status of EgressRouter.
156 properties:
157 conditions:
158 description: Observed status of the egress router
159 items:
160 description: EgressRouterStatusCondition represents the state of the egress router's managed and monitored components.
161 properties:
162 lastTransitionTime:
163 description: LastTransitionTime is the time of the last update to the current status property.
164 format: date-time
165 nullable: true
166 type: string
167 message:
168 description: Message provides additional information about the current condition. This is only to be consumed by humans. It may contain Line Feed characters (U+000A), which should be rendered as new lines.
169 type: string
170 reason:
171 description: Reason is the CamelCase reason for the condition's current status.
172 type: string
173 status:
174 description: Status of the condition, one of True, False, Unknown.
175 enum:
176 - "True"
177 - "False"
178 - Unknown
179 type: string
180 type:
181 description: Type specifies the aspect reported by this condition; one of Available, Progressing, Degraded
182 enum:
183 - Available
184 - Progressing
185 - Degraded
186 type: string
187 required:
188 - lastTransitionTime
189 - status
190 - type
191 type: object
192 type: array
193 required:
194 - conditions
195 type: object
196 required:
197 - spec
198 type: object
199 served: true
200 storage: true
201 subresources:
202 status: {}
203status:
204 acceptedNames:
205 kind: ""
206 plural: ""
207 conditions: []
208 storedVersions: []
View as plain text