Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement] Option to expose collector outside of cluster #1002

Closed
frzifus opened this issue Jul 25, 2022 · 2 comments
Closed

[Enhancement] Option to expose collector outside of cluster #1002

frzifus opened this issue Jul 25, 2022 · 2 comments

Comments

@frzifus
Copy link
Member

frzifus commented Jul 25, 2022

I may ask first - what is the best way to expose a collector to reach it from an edge device or another cluster?


Original post that was moved. After creating an collector as `deployment`, `daemonset` or `statefulset` this results in three services using the default type `ClusterIP`. Looking at the implementation ([service.go](https://github.com/open-telemetry/opentelemetry-operator/blob/2a66583d739ca3b355cbbcc02052dbc08b8c3c88/pkg/collector/reconcile/service.go#L122)), it seems that there is no way to change this type. We could now manually create or patch a service with e.g. the `ServiceType=LB`. But from my point of view, it would be quite nice to be able to specify this immediately in the CRD.

As an extension of the CRD, I was thinking of something like this ingress entry in the following code snipped. (Inspired by the Skupper operator[1])

File opentelemetrycollector_types.go:

	// Mode represents how the collector should be deployed (deployment, daemonset, statefulset or sidecar)
	// +optional
	Mode Mode `json:"mode,omitempty"`

	// Ingress is used to specify how OpenTelemetry Collector is exposed. This
	// function is only available if one of the valid modes is set.
	// Valid modes are: deployment, daemonset and statefulset.
	// +optional
	Ingress struct {
		// Type default value is: none
		// Supported types are: route/loadbalancer/nodeport/nginx-ingress-v1/ingress
		Type string

		// Hostname by which the ingress proxy can be reached.
		Hostname string
            
                ...
	}

What are your thoughts on this?

  • Does it make sense to you?
  • Suggestions for additional entries? (maybe something to prevent exposing the collector without any protection? Like a Insecure bool that comes with a default false value.)
  • Would it make more sense to set the ServiceType in the existing or create an additonal one like <APP>-collector-external?

Might be related:

@frzifus frzifus changed the title [Enhancement] Option to expose exporters outside of cluster [Enhancement] Option to expose collector outside of cluster Jul 25, 2022
@pavolloffay
Copy link
Member

This seems to be a duplicate of #902

@frzifus
Copy link
Member Author

frzifus commented Jul 25, 2022

oh i didnt see it 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants