question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Spike: Make configuration able to be changed without a helm deploy

See original GitHub issue

Description

Right now, most configuration that will be changeable in the new control panel is specified via values passed to helm. This means that when you want to change these values, you change the Helm values.yaml file and helm upgrade to make the changes to the installation.

However, the control panel wants to expose this to a user via a web UI with controls like this:

image

Obviously this is quite a ways from a command line. We need to figure out how to let a user make these changes from the UI and have them propagated across the whole system.

Things to address

  • Some control panel values, like changing around what Add Dataset values are required, are a very simple matter of passing config into the UI - these could just as easily live in a database. However some of these could be quite complex - what do we do if the user enables/disables storage? Ideally we would disable the storage api entirely so it’s not taking up resources. How do we make that happen?
    • Can we use some kind of Helm API to make these changes? Seeing how this is equivalent to changing the values.yaml passed into helm, how would we make subsequent deployments on the command line if the values have been changed via the UI?
    • Should we use the K8S API directly, in a way that doesn’t break helm (similar to what the admin-api currently does to create new jobs)?
    • Could we shell out to helm and make it work that way?
    • Is this even practical at all? Maybe we should just have what config we can change sitting in a database or some other config store, and compromise on the bigger system changes like disabling/enabling APIs
  • Once a change is made to the configuration, is it easy to continue deploying via the helm command line? How would this work (depending on the mechanism chosen this might be very easy or very hard)

Acceptance Criteria

  • A plan for how to go forward (written as a response to this issue), addressing:
    • How we would make all of the changes that you can see in the Control Panel designs (https://projects.invisionapp.com/share/KTX7EW96FQV#/screens/424210194), or at least most of them if some are impossible
    • How we would address adding/removing connectors, minions etc, both as pods and as OpenFAAS functions (or maybe the solution is to move everything to openfaas?)
  • Some kind of proof of concept for whatever mechanism has been chosen. i.e. if we want to go with changing Helm directly, we should have some kind of PoC that demonstrates changing a helm installation via our code, that still allows us to do command line deployments

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:5 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
t83714commented, Sep 22, 2020

@AlexGilleran That’s really cool~ it probaly allow us to have a mini version tiller running with HTTP API easily. I also think about picking up some GO lately 😄

0reactions
AlexGillerancommented, Sep 22, 2020

Just saw this, might help: https://github.com/opskumu/helm-wrapper

Read more comments on GitHub >

github_iconTop Results From Across the Web

Perform three way merge patch during `helm upgrade` call as ...
Helm expects that you're not modifying manifests outside of the Helm system, so we made the call to keep things simple and use...
Read more >
Advanced Helm Techniques
This allows users with advanced configuration needs to be able to use tools like kustomize to apply configuration changes without the need to...
Read more >
Navigating Network Services and Policy With Helm - Tigera
There are a number of configuration changes we can make; most notably, we can deploy an ingress record for the registry (useful if...
Read more >
Navigating network services and policy with Helm - RX-M
This blog is a tutorial that will take you from basic Helm concepts in an example deployment of a chart to modifying charts...
Read more >
Using Kubernetes Helm to install applications: A quick and ...
Use Helm to roll back changes to an application. Difficulty is a relative thing. Deploying an application using containers can be much easier ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found