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

Question for collaboration: c# bindings to integrate elektra in Anthilla/And #1521

Open
dorvan opened this Issue Jun 21, 2017 · 7 comments

Comments

Projects
None yet
2 participants
@dorvan

dorvan commented Jun 21, 2017

Hello,

I follow elektra project, as user, since it's named "Registry for Linux".
now we are working on Anthilla/Antd,
and looking to libelektra as inspiration, and why not, for integration.

At today there are c# bindings or updated documents on integrate liblelektra?

Thanks
Ivan

@markus2330

This comment has been minimized.

Show comment
Hide comment
@markus2330

markus2330 Jun 21, 2017

Contributor

Hello!

First of all: Thank you for writing us!

I follow elektra project, as user, since it's named "Registry for Linux".
now we are working on Anthilla/Antd,
and looking to libelektra as inspiration, and why not, for integration.

Great to hear that!

At today there are c# bindings

Unfortunately, currently there are no C# bindings for Elektra (maybe @nikonthethird started to write some but I never saw code).

Would you be interested to write C# bindings yourself?

@e1528532 or @domhof might be interested in helping you with the bindings and the integration.

or updated documents on integrate liblelektra?

We have written a tutorial, but obviously it does not cover C#.

Please do not hesitate to ask any question!

best regards,
Markus

Contributor

markus2330 commented Jun 21, 2017

Hello!

First of all: Thank you for writing us!

I follow elektra project, as user, since it's named "Registry for Linux".
now we are working on Anthilla/Antd,
and looking to libelektra as inspiration, and why not, for integration.

Great to hear that!

At today there are c# bindings

Unfortunately, currently there are no C# bindings for Elektra (maybe @nikonthethird started to write some but I never saw code).

Would you be interested to write C# bindings yourself?

@e1528532 or @domhof might be interested in helping you with the bindings and the integration.

or updated documents on integrate liblelektra?

We have written a tutorial, but obviously it does not cover C#.

Please do not hesitate to ask any question!

best regards,
Markus

@dorvan

This comment has been minimized.

Show comment
Hide comment
@dorvan

dorvan Jun 21, 2017

@markus2330 thanks for tutorial, not problem if does not cover c#,
if @e1528532 and/or @domhof are interested to help us for integration, we can define integration architecture and divide roles, or simply, we can define methods to "use" libelektra commands, as trigger for a "fast" integration.

for our application environment we refer to LiteDB a nosql db in c#.
we are working to close task on our active-active architecture, and we need a configuration backend to refer, or to develop.. at moment we have internal method to create/manage services configurations, but in future we need a more coherent backend as configuration management for services.

looking to "autoreplication" and self-updating we are searching for standalone (portable) or selfhosted pieces to include in our architecture...
also to be injected by ssh or webservice as needed.

I remember latest version of elektra i've used (2015) are really portable or standalone-able

dorvan commented Jun 21, 2017

@markus2330 thanks for tutorial, not problem if does not cover c#,
if @e1528532 and/or @domhof are interested to help us for integration, we can define integration architecture and divide roles, or simply, we can define methods to "use" libelektra commands, as trigger for a "fast" integration.

for our application environment we refer to LiteDB a nosql db in c#.
we are working to close task on our active-active architecture, and we need a configuration backend to refer, or to develop.. at moment we have internal method to create/manage services configurations, but in future we need a more coherent backend as configuration management for services.

looking to "autoreplication" and self-updating we are searching for standalone (portable) or selfhosted pieces to include in our architecture...
also to be injected by ssh or webservice as needed.

I remember latest version of elektra i've used (2015) are really portable or standalone-able

@markus2330

This comment has been minimized.

Show comment
Hide comment
@markus2330

markus2330 Jun 21, 2017

Contributor

we can define integration architecture and divide roles, or simply, we can define methods to "use" libelektra commands, as trigger for a "fast" integration.

Some architectural description, or at least the interface you expect, would be of great help: then we would have a common understanding of what you want to achieve.

for our application environment we refer to LiteDB a nosql db in c#.

Is LiteDB relevant for the configuration settings?

we are working to close task on our active-active architecture, and we need a configuration backend to refer, or to develop.. at moment we have internal method to create/manage services configurations, but in future we need a more coherent backend as configuration management for services.

Elektra is an abstraction for configuration settings, which allows you to easily switch between configuration backends. So you can start to use it with some INI, XML or JSON files, and extend it later to better support your active-active architecture (if this is needed).

looking to "autoreplication" and self-updating we are searching for standalone (portable) or selfhosted pieces to include in our architecture...

Some architectural description explaining what exactly you mean by active-active, autoreplication, and self-updating in the context of your configuration needs would be helpful. You can also look into earlier questions from @mhaberler, you might share some requirements

also to be injected by ssh or webservice as needed.

ssh should be trivial (there is kdb import/export and a webservice is currently developed by @omnidan

I remember latest version of elektra i've used (2015) are really portable or standalone-able

Yes, we are still (and will be) completely portable (C99). Could you elaborate on standalone-able? Elektra is a library and does not rely on any external service/daemon/.. to work.

Contributor

markus2330 commented Jun 21, 2017

we can define integration architecture and divide roles, or simply, we can define methods to "use" libelektra commands, as trigger for a "fast" integration.

Some architectural description, or at least the interface you expect, would be of great help: then we would have a common understanding of what you want to achieve.

for our application environment we refer to LiteDB a nosql db in c#.

Is LiteDB relevant for the configuration settings?

we are working to close task on our active-active architecture, and we need a configuration backend to refer, or to develop.. at moment we have internal method to create/manage services configurations, but in future we need a more coherent backend as configuration management for services.

Elektra is an abstraction for configuration settings, which allows you to easily switch between configuration backends. So you can start to use it with some INI, XML or JSON files, and extend it later to better support your active-active architecture (if this is needed).

looking to "autoreplication" and self-updating we are searching for standalone (portable) or selfhosted pieces to include in our architecture...

Some architectural description explaining what exactly you mean by active-active, autoreplication, and self-updating in the context of your configuration needs would be helpful. You can also look into earlier questions from @mhaberler, you might share some requirements

also to be injected by ssh or webservice as needed.

ssh should be trivial (there is kdb import/export and a webservice is currently developed by @omnidan

I remember latest version of elektra i've used (2015) are really portable or standalone-able

Yes, we are still (and will be) completely portable (C99). Could you elaborate on standalone-able? Elektra is a library and does not rely on any external service/daemon/.. to work.

@dorvan

This comment has been minimized.

Show comment
Hide comment
@dorvan

dorvan Jun 21, 2017

@markus2330 perfect it's portable as i remember,

Architecture: our software Anthilla/Antd works as system manager, or orchestrator process, at omente we implements methods to manage single services or commands, like: bind, dhcpd, nftable, ssh/sshd, rsync, systemd, etc.. so any conf and any conf syntax need to be mapped.

In future we can rely on libelektra directly as configuration backend. so

(conf /etc)<->Elektra <->[box1 antd] <-----sync/cluster--------> [box antd]<->Elektra (conf/etc)

elektra (registry inspired) have inspired a lot of services like etcd and consul, ansible or salt, in the way to manage /etc, and applicative configuration. Antd it's another kind of system manager including web interface.

dorvan commented Jun 21, 2017

@markus2330 perfect it's portable as i remember,

Architecture: our software Anthilla/Antd works as system manager, or orchestrator process, at omente we implements methods to manage single services or commands, like: bind, dhcpd, nftable, ssh/sshd, rsync, systemd, etc.. so any conf and any conf syntax need to be mapped.

In future we can rely on libelektra directly as configuration backend. so

(conf /etc)<->Elektra <->[box1 antd] <-----sync/cluster--------> [box antd]<->Elektra (conf/etc)

elektra (registry inspired) have inspired a lot of services like etcd and consul, ansible or salt, in the way to manage /etc, and applicative configuration. Antd it's another kind of system manager including web interface.

@markus2330

This comment has been minimized.

Show comment
Hide comment
@markus2330

markus2330 Jun 21, 2017

Contributor

Architecture: our software Anthilla/Antd works as system manager, or orchestrator process, at omente we implements methods to manage single services or commands, like: bind, dhcpd, nftable, ssh/sshd, rsync, systemd, etc.. so any conf and any conf syntax need to be mapped.

That sounds really interesting! Elektra is perfectly suitable to map many of these already, @BernhardDenner recently configured our own libelektra.org server completely with Elektra.

In future we can rely on libelektra directly as configuration backend. so

Okay, so the C# binding would not be the first step? How would you like to start?

elektra (registry inspired) have inspired a lot of services like etcd and consul, ansible or salt, in the way to manage /etc, and applicative configuration. Antd it's another kind of system manager including web interface.

Yes, etcd and consul have similar ideas but a completely different implementation (daemon vs. library). Ansible and salt (@BernhardDenner worked with puppet) is not something competing with Elektra but instead they would profit from Elektra being adapted more: Elektra takes away the burden related to configuration file editing. (libelektra itself is not a CM, you still need a tool that actively changes the configuration settings).

Contributor

markus2330 commented Jun 21, 2017

Architecture: our software Anthilla/Antd works as system manager, or orchestrator process, at omente we implements methods to manage single services or commands, like: bind, dhcpd, nftable, ssh/sshd, rsync, systemd, etc.. so any conf and any conf syntax need to be mapped.

That sounds really interesting! Elektra is perfectly suitable to map many of these already, @BernhardDenner recently configured our own libelektra.org server completely with Elektra.

In future we can rely on libelektra directly as configuration backend. so

Okay, so the C# binding would not be the first step? How would you like to start?

elektra (registry inspired) have inspired a lot of services like etcd and consul, ansible or salt, in the way to manage /etc, and applicative configuration. Antd it's another kind of system manager including web interface.

Yes, etcd and consul have similar ideas but a completely different implementation (daemon vs. library). Ansible and salt (@BernhardDenner worked with puppet) is not something competing with Elektra but instead they would profit from Elektra being adapted more: Elektra takes away the burden related to configuration file editing. (libelektra itself is not a CM, you still need a tool that actively changes the configuration settings).

@dorvan

This comment has been minimized.

Show comment
Hide comment
@dorvan

dorvan Jun 21, 2017

Yes, etcd and consul have similar ideas but a completely different implementation (daemon vs. library). Ansible and salt (@BernhardDenner worked with puppet) is not something competing with Elektra but instead they would profit from Elektra being adapted more: Elektra takes away the burden related to configuration file editing. (libelektra itself is not a CM, you still need a tool that actively changes the configuration settings).

I know Elektra and I agree .
We make the CM and syncer. No problem.

Okay, so the C# binding would not be the first step? How would you like to start?

We think to implements methods and command triggers in order to use elektra by Antd directly.
For aconfiguration template: Can @BernhardDenner help us with a real-world template and conf asset or related tips and tricks for a server install?

Our OS it's gentoo Based, and i prefer to put Elektra into the application distribution, or separately. in a readonly image (squashfs.xz).

dorvan commented Jun 21, 2017

Yes, etcd and consul have similar ideas but a completely different implementation (daemon vs. library). Ansible and salt (@BernhardDenner worked with puppet) is not something competing with Elektra but instead they would profit from Elektra being adapted more: Elektra takes away the burden related to configuration file editing. (libelektra itself is not a CM, you still need a tool that actively changes the configuration settings).

I know Elektra and I agree .
We make the CM and syncer. No problem.

Okay, so the C# binding would not be the first step? How would you like to start?

We think to implements methods and command triggers in order to use elektra by Antd directly.
For aconfiguration template: Can @BernhardDenner help us with a real-world template and conf asset or related tips and tricks for a server install?

Our OS it's gentoo Based, and i prefer to put Elektra into the application distribution, or separately. in a readonly image (squashfs.xz).

@markus2330

This comment has been minimized.

Show comment
Hide comment
@markus2330

markus2330 Jan 28, 2018

Contributor

Sorry for taking so long to respond. The work of @BernhardDenner is now complete and there will be a talk about it at FOSDEM. For the case study I talked about, see https://www.libelektra.org/ftp/elektra/publications/denner2018configuration.pdf
It shows in detail of how Elektra can be used within CM tool.

Contributor

markus2330 commented Jan 28, 2018

Sorry for taking so long to respond. The work of @BernhardDenner is now complete and there will be a talk about it at FOSDEM. For the case study I talked about, see https://www.libelektra.org/ftp/elektra/publications/denner2018configuration.pdf
It shows in detail of how Elektra can be used within CM tool.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment