Skip to content

Commit 480797f

Browse files
committed
chore: implemented ingress for extensions
Signed-off-by: Ankit152 <[email protected]>
1 parent 007c7eb commit 480797f

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

internal/manifests/collector/ingress.go

+41
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,38 @@ func Ingress(params manifests.Params) (*networkingv1.Ingress, error) {
7070
}, nil
7171
}
7272

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+
73105
func createPathIngressRules(otelcol string, hostname string, ports []corev1.ServicePort) networkingv1.IngressRule {
74106
pathType := networkingv1.PathTypePrefix
75107
paths := make([]networkingv1.HTTPIngressPath, len(ports))
@@ -163,6 +195,15 @@ func servicePortsFromCfg(logger logr.Logger, otelcol v1beta1.OpenTelemetryCollec
163195
return ports, nil
164196
}
165197

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+
166207
func toServicePorts(spec []v1beta1.PortsSpec) []corev1.ServicePort {
167208
var ports []corev1.ServicePort
168209
for _, p := range spec {

0 commit comments

Comments
 (0)