@@ -70,6 +70,38 @@ func Ingress(params manifests.Params) (*networkingv1.Ingress, error) {
70
70
}, nil
71
71
}
72
72
73
+ func ExtensionIngress (params manifests.Params ) (* networkingv1.Ingress , error ) {
74
+ name := naming .Ingress (params .OtelCol .Name )
75
+ labels := manifestutils .Labels (params .OtelCol .ObjectMeta , name , params .OtelCol .Spec .Image , ComponentOpenTelemetryCollector , params .Config .LabelsFilter ())
76
+
77
+ ports , err := extensionServicePortsFromCfg (params .Log , params .OtelCol )
78
+
79
+ if err != nil {
80
+ return nil , err
81
+ }
82
+
83
+ // if there are no ports, no ingress required
84
+ if len (ports ) == 0 {
85
+ return nil , nil
86
+ }
87
+
88
+ rules := createSubdomainIngressRules (name , "" , ports )
89
+
90
+ return & networkingv1.Ingress {
91
+ ObjectMeta : metav1.ObjectMeta {
92
+ Name : name ,
93
+ Namespace : params .OtelCol .Namespace ,
94
+ Annotations : params .OtelCol .Spec .Ingress .Annotations , // can the spec annotations be used?
95
+ Labels : labels ,
96
+ },
97
+ Spec : networkingv1.IngressSpec {
98
+ TLS : params .OtelCol .Spec .Ingress .TLS ,
99
+ Rules : rules ,
100
+ IngressClassName : params .OtelCol .Spec .Ingress .IngressClassName ,
101
+ },
102
+ }, nil
103
+ }
104
+
73
105
func createPathIngressRules (otelcol string , hostname string , ports []corev1.ServicePort ) networkingv1.IngressRule {
74
106
pathType := networkingv1 .PathTypePrefix
75
107
paths := make ([]networkingv1.HTTPIngressPath , len (ports ))
@@ -163,6 +195,15 @@ func servicePortsFromCfg(logger logr.Logger, otelcol v1beta1.OpenTelemetryCollec
163
195
return ports , nil
164
196
}
165
197
198
+ func extensionServicePortsFromCfg (logger logr.Logger , otelcol v1beta1.OpenTelemetryCollector ) ([]corev1.ServicePort , error ) {
199
+ ports , err := otelcol .Spec .Config .GetExtensionPorts (logger )
200
+ if err != nil {
201
+ return nil , err
202
+ }
203
+
204
+ return ports , nil
205
+ }
206
+
166
207
func toServicePorts (spec []v1beta1.PortsSpec ) []corev1.ServicePort {
167
208
var ports []corev1.ServicePort
168
209
for _ , p := range spec {
0 commit comments