[Backport release-1.7] Feat: The vela-apiserver supports displaying chart values stored in the OCI registry (#5509)

* support helm chart values

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

rebase

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

no lint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix lint error

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

add test and deprecated API

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix url bug

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix tests panic

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit fc1d8c248d)

* fix golint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 6c462b7850)

* return values.yaml

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 70d8cc5d52)

* fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit ef4574a188)

* fix return values

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit c1488eee77)

* add multiple valeus yaml in

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 04436188ff)

* add old interface back

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit ae0ac9f50f)

* fix golint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 00957744c0)

---------

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
This commit is contained in:
github-actions[bot]
2023-02-15 14:00:16 +08:00
committed by GitHub
co-authored by 楚岳
parent 7bd2cf4dbc
commit f3cdbcf203
7 changed files with 245 additions and 22 deletions
@@ -0,0 +1,42 @@
/*
Copyright 2022 The KubeVela Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package e2e_apiserver_test
import (
"io"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("Helm rest api test", func() {
Describe("helm repo api test", func() {
It("test fetching chart values in OCI registry", func() {
resp := getWithQuery("/repository/chart/values", map[string]string{
"repoUrl": "oci://ghcr.io",
"chart": "stefanprodan/charts/podinfo",
"repoType": "oci",
"version": "6.1.0",
})
defer resp.Body.Close()
values, err := io.ReadAll(resp.Body)
Expect(err).Should(BeNil())
Expect(len(values)).ShouldNot(BeEquivalentTo(0))
})
})
})
+20
View File
@@ -191,6 +191,26 @@ func get(path string) *http.Response {
return response
}
func getWithQuery(path string, params map[string]string) *http.Response {
client := &http.Client{}
if !strings.HasPrefix(path, "/v1") {
path = baseURL + path
} else {
path = baseDomain + path
}
req, err := http.NewRequest(http.MethodGet, path, nil)
Expect(err).Should(BeNil())
req.Header.Add("Authorization", token)
query := req.URL.Query()
for k, v := range params {
query.Set(k, v)
}
req.URL.RawQuery = query.Encode()
response, err := client.Do(req)
Expect(err).Should(BeNil())
return response
}
func delete(path string) *http.Response {
client := &http.Client{}
if !strings.HasPrefix(path, "/v1") {