You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 15, 2022. It is now read-only.
Repository navigation
This repository was archived by the owner on Aug 15, 2022. It is now read-only.
The aim of this task is to refactor hardcoded klient configuration in order to help solving #8920. Refactoring means to move any compile-time configuration like endpoint URLs and alike to runtime configuration. The runtime configuration ideally should be a separate configuration file, e.g. ~/config/koding/klient.cfg. Additionally, but not essential, is to have kite endpoint with crud ops on configuration, that'd allow kd or kloudctl to configure klient remotely without a need to restart it (to preserve mounts etc.).
Moreover due to complexity of current configuration there still exists unsolvable bug, that during update kd loses information about custom kontrolURL, since kontrolURL was set during installation via environment variable, and this environment variable is not available during update. The best-effort solution to read kontrolURL from kite.key does not work, since kite.key generated by kontrol has kontrolURL always set to default (http://127.0.0.1:3000/kite), since it's designed to be overwritten by environment variable during installation.
Each of the method uses different ways of configuring klient. This makes troubleshooting hard, when klient misbehaves in certain environment it's hard to e.g. ask user for enabling debug mode, since it can be enabled in 5 different places, depending on the environment. This is what #8936 is trying to solve.
Having single place to configure klient would make it possible to unify installation methods, ease troubleshooting and development of new features. And, of course, will help to solve the main goal - #8920.
This sounds like leaking our abstraction into a bigger component, other users of kontrol/kite wont have klient
Kontrol has not enough information to create full configuration for klient, it was my bad to suggest it initially. It should be responsibility of kloud, since klouds generates data needed by klient.
a nice feature that could be implemented later, i don't see it as a necessity right before unifying them
&
What kind of configuration do we store in BoltDB ATM? When we first implemented it was only used for session based, best-effort durable storage medium
If we use a simple yaml/toml/json configuration file instead of BoltDB we will solve both concerns - no need for kd config list, since the user can modify the file manually. Moreover no configuration will be lost if user decides to reset state of klient by removing ~/.config/koding/klient.bolt.
Activity
(wip) klientctl: make KD configurable
(wip) klientctl: make KD configurable
klientctl/config: read configuration from external source
klientctl/config: read configuration from external source
klientctl/config: read configuration from external source
klientctl/config: read configuration from external source
klientctl/config: read configuration from external source
klientctl/config: read configuration from external source
klientctl/config: read configuration from external source
klientctl/config: read configuration from external source
rjeczalik commentedon Feb 20, 2017
Configuration implemented in
kd config, for now available via experimental commands (export KD_EXPERIMENTAL=1).Reworking kloud to use metadata is going to be solved by #10614.