1
0
Fork 0

Upgrade the CRD version from apiextensions.k8s.io/v1beta1 to apiextensions.k8s.io/v1

Co-authored-by: kevinpollet <pollet.kevin@gmail.com>
This commit is contained in:
Jean-Baptiste Doumenjou 2021-03-03 15:32:04 +01:00 committed by GitHub
parent e658712d53
commit 992d4c1b94
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 3064 additions and 221 deletions

View file

@ -10,17 +10,18 @@ import (
// IngressRouteSpec is a specification for a IngressRouteSpec resource.
type IngressRouteSpec struct {
Routes []Route `json:"routes"`
EntryPoints []string `json:"entryPoints"`
EntryPoints []string `json:"entryPoints,omitempty"`
TLS *TLS `json:"tls,omitempty"`
}
// Route contains the set of routes.
type Route struct {
Match string `json:"match"`
Match string `json:"match"`
// +kubebuilder:validation:Enum=Rule
Kind string `json:"kind"`
Priority int `json:"priority"`
Priority int `json:"priority,omitempty"`
Services []Service `json:"services,omitempty"`
Middlewares []MiddlewareRef `json:"middlewares"`
Middlewares []MiddlewareRef `json:"middlewares,omitempty"`
}
// TLS contains the TLS certificates configuration of the routes.
@ -34,7 +35,7 @@ type Route struct {
type TLS struct {
// SecretName is the name of the referenced Kubernetes Secret to specify the
// certificate details.
SecretName string `json:"secretName"`
SecretName string `json:"secretName,omitempty"`
// Options is a reference to a TLSOption, that specifies the parameters of the TLS connection.
Options *TLSOptionRef `json:"options,omitempty"`
// Store is a reference to a TLSStore, that specifies the parameters of the TLS store.
@ -46,13 +47,13 @@ type TLS struct {
// TLSOptionRef is a ref to the TLSOption resources.
type TLSOptionRef struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Namespace string `json:"namespace,omitempty"`
}
// TLSStoreRef is a ref to the TLSStore resource.
type TLSStoreRef struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Namespace string `json:"namespace,omitempty"`
}
// LoadBalancerSpec can reference either a Kubernetes Service object (a load-balancer of servers),
@ -61,14 +62,16 @@ type LoadBalancerSpec struct {
// Name is a reference to a Kubernetes Service object (for a load-balancer of servers),
// or to a TraefikService object (service load-balancer, mirroring, etc).
// The differentiation between the two is specified in the Kind field.
Name string `json:"name"`
Kind string `json:"kind"`
Namespace string `json:"namespace"`
Name string `json:"name"`
// +kubebuilder:validation:Enum=Service;TraefikService
Kind string `json:"kind,omitempty"`
Namespace string `json:"namespace,omitempty"`
Sticky *dynamic.Sticky `json:"sticky,omitempty"`
// Port and all the fields below are related to a servers load-balancer,
// and therefore should only be specified when Name references a Kubernetes Service.
Port intstr.IntOrString `json:"port"`
Port intstr.IntOrString `json:"port,omitempty"`
Scheme string `json:"scheme,omitempty"`
Strategy string `json:"strategy,omitempty"`
PassHostHeader *bool `json:"passHostHeader,omitempty"`
@ -82,17 +85,18 @@ type LoadBalancerSpec struct {
// Service defines an upstream to proxy traffic.
type Service struct {
LoadBalancerSpec
LoadBalancerSpec `json:",inline"`
}
// MiddlewareRef is a ref to the Middleware resources.
type MiddlewareRef struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Namespace string `json:"namespace,omitempty"`
}
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:storageversion
// IngressRoute is an Ingress CRD specification.
type IngressRoute struct {