-
Notifications
You must be signed in to change notification settings - Fork 194
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
🍀 Proposal
: Merge All Helm Style Plugins into One Plugin
#1194
Comments
LGTM |
I have a proposal, where the following use cases should be supported by the generic helm-installer plugin:
Minimum ConfigExample: tools:
- name: helm-installer
instanceID: jenkins
dependsOn: [ ] The purpose is for users to get started ASAP, with a very short config file. In this case, we can use a lot of default values, such as:
Override Default OptionsExample: tools:
- name: helm-installer
instanceID: jenkins
dependsOn: [ ]
options:
repo:
name: jenkins
url: https://charts.jenkins.io
chart:
chartPath: ""
chartName: jenkins/jenkins
version: ""
namespace: jenkins
wait: true
timeout: 5m
upgradeCRDs: true The purpose is for users to adjust some common stuff, like chart repo name, or use a self-hosted chart repo URL, update timeout, etc. Override Values File - Method 1 - File Contenttools:
- name: helm-installer
instanceID: jenkins
dependsOn: [ ]
options:
valuesYaml: |
serviceAccount:
create: true
name: jenkins
controller:
adminUser: "admin"
adminPassword: "changeme"
serviceType: NodePort
nodePort: 32000 The upside is there is only one file, no need to maintain another values file. Override Values File - Method 2 - File Pathtools:
- name: helm-installer
instanceID: jenkins
dependsOn: [ ]
options:
valuesFile: "./values.yaml" The upside is, the tools conf is short, and values file can be copy-pasted directly from a helm chart without editing indentations. Putting Them All TogetherMaximum conf, but also maximum flexibility: tools:
- name: helm-installer
instanceID: jenkins
dependsOn: [ ]
options:
repo:
name: jenkins
url: https://charts.jenkins.io
chart:
chartPath: ""
chartName: jenkins/jenkins
version: ""
namespace: jenkins
wait: true
timeout: 5m
upgradeCRDs: true
valuesFile: "./values.yaml" |
@IronCore864 How about we unify the valuesFile and valuesYaml? valuesYaml: "./values.yaml" valuesYaml: |
foo: bar |
About the minimum config, I have 2 ideas here: tools:
- name: helm-installer
instanceID: jenkins vs tools:
- name: helm-installer
instanceID: jenkins
dependsOn: [ ]
options: null |
final edition: tools:
- name: helm-installer
instanceID: argocd-001
dependsOn: [ ]
options:
repo:
name: ""
url: ""
chart:
chartPath: ""
chartName: ""
version: ""
namespace: ""
wait: true
timeout: 10m
upgradeCRDs: true
valuesYaml: "" |
What Would You Like to Add? Why Is This Needed?
Now we have many plugins that deploy tools through Helm only. The main differences between them are
values.yaml
configuration. What's more? "Namespace, name, chartUrl, etc.". Deploying more and more tools by Helm may not reflect the value of DevStream, but rather increase the complexity of DevStream and increase our maintenance cost.We didn't do much work on the Helm, especially the differential configuration for different tools upon the Helm. Our configuration is mainly passed through
values.yaml
. If we considervalues.yaml
as a configuration item, all these plugins are actually very similar and maybe we can merge them into one plugin.Design
Add a new plugin named "helm-installer". Maybe we can do some modifications with "helm-generic" plugin, and rename it to "helm-installer".
Old Config with
jenkins
PluginConfig with
helm-installer
PluginHow to Use the
helm-installer
Plugin?Jenkins
:Because the instanceID contains "jenkins",
helm-installer
could set some default config items and generate the new config as below:For most users, it may be enough for them to read "Minimal Configuration", which is much easier to get started.
Instead of searching for multiple plugins and studying multiple documents, users can start with the
helm-installer
documentation, which tells them everything they need to know to deploy each tool.Anything else
After this refactoring, using the
dtm
deploy tools might be simpler than Helm. For example, without the need to perform operations such ashelm add, helm upgrade
, users have a reason to usedtm
when deploying tools.In short, the main value of
dtm
is perhaps not in the deployment of the tools, but in the best practice configuration, integration, and other features. Let's take the focus off of "deployment" and acknowledge thatdtm
has little advantage over Helm in "tools deployment", and perhaps it'll get better results.The text was updated successfully, but these errors were encountered: