@@ -50,9 +50,9 @@ func Ingress(params manifests.Params) (*networkingv1.Ingress, error) {
50
50
var rules []networkingv1.IngressRule
51
51
switch params .OtelCol .Spec .Ingress .RuleType {
52
52
case v1beta1 .IngressRuleTypePath , "" :
53
- rules = []networkingv1.IngressRule {createPathIngressRules (params .OtelCol .Name , params .OtelCol .Spec .Ingress .Hostname , ports )}
53
+ rules = []networkingv1.IngressRule {createPathIngressRules (params .OtelCol .Name , params .OtelCol .Spec .Ingress .Hostname , ports , "service" )}
54
54
case v1beta1 .IngressRuleTypeSubdomain :
55
- rules = createSubdomainIngressRules (params .OtelCol .Name , params .OtelCol .Spec .Ingress .Hostname , ports )
55
+ rules = createSubdomainIngressRules (params .OtelCol .Name , params .OtelCol .Spec .Ingress .Hostname , ports , "service" )
56
56
}
57
57
58
58
return & networkingv1.Ingress {
@@ -71,48 +71,60 @@ func Ingress(params manifests.Params) (*networkingv1.Ingress, error) {
71
71
}
72
72
73
73
func ExtensionIngress (params manifests.Params ) (* networkingv1.Ingress , error ) {
74
- name := naming .Ingress (params .OtelCol .Name )
74
+ name := naming .ExtensionIngress (params .OtelCol .Name )
75
75
labels := manifestutils .Labels (params .OtelCol .ObjectMeta , name , params .OtelCol .Spec .Image , ComponentOpenTelemetryCollector , params .Config .LabelsFilter ())
76
76
77
- ports , err := extensionServicePortsFromCfg (params .Log , params .OtelCol )
77
+ if params .OtelCol .Spec .ExtensionIngress .Type != v1beta1 .IngressTypeIngress {
78
+ return nil , nil
79
+ }
78
80
79
- if err != nil {
81
+ ports , err := extensionServicePortsFromCfg (params .Log , params .OtelCol )
82
+ if err != nil || len (ports ) == 0 {
80
83
return nil , err
81
84
}
82
85
83
- // if there are no ports, no ingress required
84
- if len (ports ) == 0 {
85
- return nil , nil
86
+ var rules []networkingv1.IngressRule
87
+ switch params .OtelCol .Spec .Ingress .RuleType {
88
+ case v1beta1 .IngressRuleTypePath , "" :
89
+ rules = []networkingv1.IngressRule {createPathIngressRules (params .OtelCol .Name , params .OtelCol .Spec .ExtensionIngress .Hostname , ports , "extension" )}
90
+ case v1beta1 .IngressRuleTypeSubdomain :
91
+ rules = createSubdomainIngressRules (params .OtelCol .Name , params .OtelCol .Spec .ExtensionIngress .Hostname , ports , "extension" )
86
92
}
87
93
88
- rules := createSubdomainIngressRules (name , "" , ports )
89
-
90
94
return & networkingv1.Ingress {
91
95
ObjectMeta : metav1.ObjectMeta {
92
96
Name : name ,
93
97
Namespace : params .OtelCol .Namespace ,
94
- Annotations : params .OtelCol .Spec .Ingress .Annotations , // can the spec annotations be used?
98
+ Annotations : params .OtelCol .Spec .ExtensionIngress .Annotations ,
95
99
Labels : labels ,
96
100
},
97
101
Spec : networkingv1.IngressSpec {
98
- TLS : params .OtelCol .Spec .Ingress .TLS ,
102
+ TLS : params .OtelCol .Spec .ExtensionIngress .TLS ,
99
103
Rules : rules ,
100
- IngressClassName : params .OtelCol .Spec .Ingress .IngressClassName ,
104
+ IngressClassName : params .OtelCol .Spec .ExtensionIngress .IngressClassName ,
101
105
},
102
106
}, nil
103
107
}
104
108
105
- func createPathIngressRules (otelcol string , hostname string , ports []corev1.ServicePort ) networkingv1.IngressRule {
109
+ func createPathIngressRules (otelcol string , hostname string , ports []corev1.ServicePort , serviceType string ) networkingv1.IngressRule {
106
110
pathType := networkingv1 .PathTypePrefix
107
111
paths := make ([]networkingv1.HTTPIngressPath , len (ports ))
112
+
113
+ var name string
114
+ if serviceType == "extension" {
115
+ name = naming .ExtensionService (otelcol )
116
+ } else {
117
+ name = naming .Service (otelcol )
118
+ }
119
+
108
120
for i , port := range ports {
109
121
portName := naming .PortName (port .Name , port .Port )
110
122
paths [i ] = networkingv1.HTTPIngressPath {
111
123
Path : "/" + port .Name ,
112
124
PathType : & pathType ,
113
125
Backend : networkingv1.IngressBackend {
114
126
Service : & networkingv1.IngressServiceBackend {
115
- Name : naming . Service ( otelcol ) ,
127
+ Name : name ,
116
128
Port : networkingv1.ServiceBackendPort {
117
129
Name : portName ,
118
130
},
@@ -130,9 +142,17 @@ func createPathIngressRules(otelcol string, hostname string, ports []corev1.Serv
130
142
}
131
143
}
132
144
133
- func createSubdomainIngressRules (otelcol string , hostname string , ports []corev1.ServicePort ) []networkingv1.IngressRule {
145
+ func createSubdomainIngressRules (otelcol string , hostname string , ports []corev1.ServicePort , serviceType string ) []networkingv1.IngressRule {
134
146
var rules []networkingv1.IngressRule
135
147
pathType := networkingv1 .PathTypePrefix
148
+
149
+ var name string
150
+ if serviceType == "extension" {
151
+ name = naming .ExtensionService (otelcol )
152
+ } else {
153
+ name = naming .Service (otelcol )
154
+ }
155
+
136
156
for _ , port := range ports {
137
157
portName := naming .PortName (port .Name , port .Port )
138
158
@@ -151,7 +171,7 @@ func createSubdomainIngressRules(otelcol string, hostname string, ports []corev1
151
171
PathType : & pathType ,
152
172
Backend : networkingv1.IngressBackend {
153
173
Service : & networkingv1.IngressServiceBackend {
154
- Name : naming . Service ( otelcol ) ,
174
+ Name : name ,
155
175
Port : networkingv1.ServiceBackendPort {
156
176
Name : portName ,
157
177
},
0 commit comments