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

Ability to deploy new charts with predefined values.yaml #134

Open
slamer59 opened this issue Dec 10, 2022 · 11 comments
Open

Ability to deploy new charts with predefined values.yaml #134

slamer59 opened this issue Dec 10, 2022 · 11 comments
Labels
-★- Favorite item

Comments

@slamer59
Copy link

Hello,
I have some applications that don't require to run all day long. A UI that will help to store and deploy,uninstall some charts. would be really nice feature.

A kind of launcher in fact.

Happy to discuss further if needed.

@undera
Copy link
Collaborator

undera commented Dec 10, 2022

This sounds interesting, but I did not understand it fully. Do you mean that you want to remember values.yaml for the chart when you uninstall it, and then offer it once you install it again?

@slamer59
Copy link
Author

Yes. Exactly. See it as an application launcher. In Lens for exemple you :

  • register your chart (git / helm repo)
  • load the definition and install/update the chart

Benefits:

  • it is installed in k8s so anyone with access can do this fast
  • store the values
  • Resource usage.
  • one interface endpoint for many admin application

@undera undera added the -★- Favorite item label Feb 6, 2023
@appdirect-kasidit
Copy link

appdirect-kasidit commented Jul 7, 2023

I'm not sure if it's the same with this use case, but it'd be nice if we can have predefined non-default values files that we can select via UI and will automatically load into the user defined panel.

My example use case would be if we have a chart that has multiple database engine that we can choose

Default values.yaml

mysql:
    enabled: false
    # configurations

postgres:
    enabled: false
    # configurations

Then in my predefined values.mysql.yaml

mysql:
    enabled: true
    # configurations

and my predefined values.postgres.yaml

postgres:
    enabled: true
    # configurations

@undera
Copy link
Collaborator

undera commented Jul 7, 2023

@appdirect-kasidit This schema of "values.mysql.yaml" - is it some sort of de-facto standard? Or is it your custom thing?

@appdirect-kasidit
Copy link

appdirect-kasidit commented Jul 7, 2023

@undera it's custom thing for me, just a way to identify which file we need to add during helm install like for example

helm install . -f ./values/values.mysql.yaml 

if selecting from a list is not possible, ability to browse and select file would be a great alternative as well

@undera
Copy link
Collaborator

undera commented Jul 7, 2023

I think this is valuable feature idea. Just one more question: how would these files map to different charts? Don't you worry to show irrelevant values files for other charts?

@appdirect-kasidit
Copy link

If we store multiple values files into the same chart directory, I think it should be sufficient enough, or perhaps offer some sorts of directory that we could store this in, for example, it could be something like

helm-charts
├── chart-1
│   ├── charts
│   │   └── ...
│   ├── templates
│   │   └── ...
│   ├── .helmignore
│   ├── Chart.yaml
│   ├── values.yaml
│   ├── values.mysql.yaml
│   └── values.postgres.yaml
├── chart-2
│   ├── charts
│   │   └── ...
│   ├── templates
│   │   └── ...
│   ├── .helmignore
│   ├── Chart.yaml
│   ├── values.custom.yaml
│   └── values.yaml
...

or

helm-charts
├── chart-1
│   ├── charts
│   │   └── ...
│   ├── templates
│   │   └── ...
│   ├── values
│   │   ├── values.mysql.yaml
│   │   └── values.postgres.yaml
│   ├── .helmignore
│   ├── Chart.yaml
│   └── values.yaml
├── chart-2
│   ├── charts
│   │   └── ...
│   ├── templates
│   │   └── ...
│   ├── values
│   │   └── values.custom.yaml
│   ├── .helmignore
│   ├── Chart.yaml
│   └── values.yaml
...

@undera
Copy link
Collaborator

undera commented Jul 7, 2023

Do you work like this with --local-chart option?

@appdirect-kasidit
Copy link

yes

@appdirect-kasidit
Copy link

im not exactly sure how this would translate into remote cluster though

@undera
Copy link
Collaborator

undera commented Jul 7, 2023

I would implement it the following way:

  1. Create an LRU cache, backed by file in our cache dir
  2. Limit number of entries in cache to 5-10 per-chart
  3. Store per-chart the values snapshots
  4. Offer a drop-down with cached snapshots.
  5. Maybe use explicit button of "remember as" instead of implicit

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

No branches or pull requests

3 participants