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

Multi-target support #37

Closed
xco-sk opened this issue Jul 5, 2022 · 12 comments · Fixed by #46
Closed

Multi-target support #37

xco-sk opened this issue Jul 5, 2022 · 12 comments · Fixed by #46
Assignees
Labels
enhancement New feature or request

Comments

@xco-sk
Copy link
Owner

xco-sk commented Jul 5, 2022

No description provided.

@xco-sk xco-sk self-assigned this Jul 5, 2022
@xco-sk xco-sk added the enhancement New feature or request label Jul 5, 2022
@xco-sk xco-sk moved this to Todo in ECK custom resources Jul 5, 2022
@HryhoriiDidenko
Copy link

Hey, from my perspective we need to move a elastic connection string configuration from a Helm release parameters configuration to the separate CDR. For example, this CDR should have a next name Cluster. After that, we can use the following approach, all CDRs related to elastic object creation need to include a new option with the name a Cluster configuration.

@xco-sk
Copy link
Owner Author

xco-sk commented Nov 27, 2022

@HryhoriiDidenko thanks for the idea, it will help with separating the operator and target ES/Kibana configuration. I will try it out and see if it's feasible, but so far, I don't see any issue.

@HryhoriiDidenko
Copy link

@xco-sk Hey, think we need to stay available for connection string configuration from Helm release parameters, as default. It is needed for backward compatibility. But if we want to use a different cluster we need to create a new CDR with a connection string and point this CDR to specific resources.

@HryhoriiDidenko
Copy link

@xco-sk Do you have some README on how to start developing your service?

@xco-sk
Copy link
Owner Author

xco-sk commented Dec 8, 2022

Hi @HryhoriiDidenko, sorry, no README about developing yet, I should create one. But essentially, all resources are scaffolded with kubebuilder. I will write at least a few points on how to develop new CRDs and what/where to implement the logic behind them.

xco-sk pushed a commit that referenced this issue Dec 9, 2022
@xco-sk
Copy link
Owner Author

xco-sk commented Dec 9, 2022

@HryhoriiDidenko so I generated 2 new CRDs - KibanaInstance and ElasticsearchInstance using kubebuilder commands:

kubebuilder create api --group es.eck --version v1alpha1 --kind ElasticsearchInstance
kubebuilder create api --group kibana.eck --version v1alpha1 --kind KibanaInstance

During the generate, I set the "Create controller" to "no" - we should not need controllers for these as they just hold the data and we don't need to monitor their changes.

Then there are some manual steps required, see my feature branch commit where I outlined what's necessary in order to implement the multi-target feature with the usage of newly generated CRDs.

@georambo
Copy link

georambo commented Feb 6, 2023

any idea when this might be tested and merged in? it would be a very useful feature. i have mutliple elasticsearch clusters, and it would be great to be able use these custom resources for all of them.

xco-sk pushed a commit that referenced this issue Feb 7, 2023
@xco-sk
Copy link
Owner Author

xco-sk commented Feb 7, 2023

Hi @georambo, the implementation is in progress. Sorry, it takes so long, I underestimated the number of changes needed (e.g. the resource delete in ES controllers has to be refactored to the "finalizers" style, same as we got in Kibana controllers). Will keep you posted here, thanks for the patience :-)

xco-sk pushed a commit that referenced this issue Feb 9, 2023
@georambo
Copy link

No worries, I appreciate the effort on this operator, and it's very useful.

xco-sk pushed a commit that referenced this issue Feb 13, 2023
xco-sk pushed a commit that referenced this issue Feb 13, 2023
xco-sk pushed a commit that referenced this issue Feb 15, 2023
xco-sk pushed a commit that referenced this issue Feb 15, 2023
xco-sk pushed a commit that referenced this issue Feb 16, 2023
xco-sk pushed a commit that referenced this issue Feb 16, 2023
@xco-sk xco-sk linked a pull request Feb 16, 2023 that will close this issue
@xco-sk
Copy link
Owner Author

xco-sk commented Feb 16, 2023

I'm finalizing the implementation and testing of the feature, so in the next couple of days, the version with multi-target support will be released if no major issue appears.

xco-sk pushed a commit that referenced this issue Feb 17, 2023
xco-sk pushed a commit that referenced this issue Feb 17, 2023
xco-sk pushed a commit that referenced this issue Feb 18, 2023
xco-sk pushed a commit that referenced this issue Feb 18, 2023
xco-sk added a commit that referenced this issue Feb 18, 2023
@github-project-automation github-project-automation bot moved this from Todo to Done in ECK custom resources Feb 18, 2023
@xco-sk
Copy link
Owner Author

xco-sk commented Feb 18, 2023

The multi-target support is now implemented in v0.5.0, if you use helm, please run helm repo update beforehand to get the latest helm chart. The migration guide is present in the README.
There is also detailed documentation of 2 new CRDs present, see ElasticsearchInstance and KibanaInstance. See also updated documentation of other resources with a description of new spec.targetInstance.name field.

The change is backward compatible - when the field is not present, the default configuration (operator config( is being used.

Please let me know if there is an issue or if help is needed.

@georambo
Copy link

works like a charm. great stuff. thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

Successfully merging a pull request may close this issue.

3 participants