From a9061e525892b981013c1d0f85680374aa71f471 Mon Sep 17 00:00:00 2001 From: Ali <83188384+testA113@users.noreply.github.com> Date: Thu, 5 Jun 2025 13:13:45 +1200 Subject: [PATCH] feat(helm): enhance helm chart install [r8s-341] (#766) --- api/http/handler/helm/helm_show.go | 7 + app/kubernetes/views/deploy/deploy.html | 10 +- .../custom-template-selector.html | 4 +- app/portainer/react/components/index.ts | 1 + .../CodeEditor/CodeEditor.module.css | 8 +- .../components/CodeEditor/CodeEditor.tsx | 60 +++--- .../CodeEditor/ShortcutsTooltip.tsx | 52 +++++ app/react/components/ExternalLink.tsx | 32 +++ app/react/components/WebEditorForm.tsx | 60 +----- app/react/components/modals/Modal/Modal.tsx | 3 +- .../DeployView/StackName/StackName.tsx | 2 +- .../ChartActions/UpgradeButton.test.tsx | 49 +++-- .../ChartActions/UpgradeButton.tsx | 154 ++++++++------- .../ChartActions/UpgradeHelmModal.tsx | 156 ++++++++------- .../HelmTemplates/HelmInstallForm.test.tsx | 174 ++++++++++++++++ .../helm/HelmTemplates/HelmInstallForm.tsx | 106 ++++++++++ .../HelmTemplates/HelmInstallInnerForm.tsx | 86 ++++++++ .../helm/HelmTemplates/HelmTemplates.tsx | 18 +- .../HelmTemplatesSelectedItem.test.tsx | 86 +------- .../HelmTemplatesSelectedItem.tsx | 185 +++--------------- .../queries/useHelmChartInstall.ts | 40 ---- .../kubernetes/helm/HelmTemplates/types.ts | 4 + .../helm/components/HelmValuesInput.tsx | 80 ++++++++ .../queries/useHelmChartValues.ts | 22 ++- .../queries/useHelmRepositories.ts | 2 +- .../queries/useUpdateHelmReleaseMutation.ts | 11 +- app/react/kubernetes/helm/types.ts | 11 ++ pkg/libhelm/options/show_options.go | 1 + pkg/libhelm/sdk/show.go | 2 +- 29 files changed, 864 insertions(+), 562 deletions(-) create mode 100644 app/react/components/CodeEditor/ShortcutsTooltip.tsx create mode 100644 app/react/components/ExternalLink.tsx create mode 100644 app/react/kubernetes/helm/HelmTemplates/HelmInstallForm.test.tsx create mode 100644 app/react/kubernetes/helm/HelmTemplates/HelmInstallForm.tsx create mode 100644 app/react/kubernetes/helm/HelmTemplates/HelmInstallInnerForm.tsx delete mode 100644 app/react/kubernetes/helm/HelmTemplates/queries/useHelmChartInstall.ts create mode 100644 app/react/kubernetes/helm/HelmTemplates/types.ts create mode 100644 app/react/kubernetes/helm/components/HelmValuesInput.tsx rename app/react/kubernetes/helm/{HelmTemplates => }/queries/useHelmChartValues.ts (54%) rename app/react/kubernetes/helm/{HelmApplicationView => }/queries/useHelmRepositories.ts (97%) rename app/react/kubernetes/helm/{HelmApplicationView => }/queries/useUpdateHelmReleaseMutation.ts (84%) diff --git a/api/http/handler/helm/helm_show.go b/api/http/handler/helm/helm_show.go index 591c57922..f139827b8 100644 --- a/api/http/handler/helm/helm_show.go +++ b/api/http/handler/helm/helm_show.go @@ -20,6 +20,7 @@ import ( // @tags helm // @param repo query string true "Helm repository URL" // @param chart query string true "Chart name" +// @param version query string true "Chart version" // @param command path string true "chart/values/readme" // @security ApiKeyAuth // @security jwt @@ -45,6 +46,11 @@ func (handler *Handler) helmShow(w http.ResponseWriter, r *http.Request) *httper return httperror.BadRequest("Bad request", errors.New("missing `chart` query parameter")) } + version, err := request.RetrieveQueryParameter(r, "version", true) + if err != nil { + return httperror.BadRequest("Bad request", errors.Wrap(err, fmt.Sprintf("provided version %q is not valid", version))) + } + cmd, err := request.RetrieveRouteVariableValue(r, "command") if err != nil { cmd = "all" @@ -55,6 +61,7 @@ func (handler *Handler) helmShow(w http.ResponseWriter, r *http.Request) *httper OutputFormat: options.ShowOutputFormat(cmd), Chart: chart, Repo: repo, + Version: version, } result, err := handler.helmPackageManager.Show(showOptions) if err != nil { diff --git a/app/kubernetes/views/deploy/deploy.html b/app/kubernetes/views/deploy/deploy.html index 5eda2d3a7..d57d0caa7 100644 --- a/app/kubernetes/views/deploy/deploy.html +++ b/app/kubernetes/views/deploy/deploy.html @@ -31,7 +31,7 @@ -
+