/
ingress_class_param_types.go
68 lines (53 loc) · 2.24 KB
/
ingress_class_param_types.go
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
/*
Copyright 2022 Kong, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
const (
IngressClassParametersKind = "IngressClassParameters"
)
// +kubebuilder:object:root=true
// IngressClassParametersList contains a list of IngressClassParameters.
type IngressClassParametersList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []IngressClassParameters `json:"items"`
}
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:object:root=true
// +kubebuilder:storageversion
// +kubebuilder:resource:categories=kong-ingress-controller
// +kubebuilder:resource:path=ingressclassparameterses
// IngressClassParameters is the Schema for the IngressClassParameters API.
type IngressClassParameters struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec is the IngressClassParameters specification.
Spec IngressClassParametersSpec `json:"spec,omitempty"`
}
// IngressClassParametersSpec defines the desired state of IngressClassParameters.
type IngressClassParametersSpec struct {
// Offload load-balancing to kube-proxy or sidecar.
// +kubebuilder:default:=false
ServiceUpstream bool `json:"serviceUpstream,omitempty"`
// EnableLegacyRegexDetection automatically detects if ImplementationSpecific Ingress paths are regular expression
// paths using the legacy 2.x heuristic. The controller adds the "~" prefix to those paths if the Kong version is
// 3.0 or higher.
// +kubebuilder:default:=false
EnableLegacyRegexDetection bool `json:"enableLegacyRegexDetection,omitempty"`
}
func init() {
SchemeBuilder.Register(&IngressClassParameters{}, &IngressClassParametersList{})
}