mirror of
https://github.com/ipedrazas/drone-helm.git
synced 2026-06-04 18:24:13 +08:00
issue #68 add stable_repo_url to change default stable repository
This commit is contained in:
@@ -218,13 +218,33 @@ pipeline_production:
|
||||
release: ${DRONE_BRANCH}
|
||||
values: image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7}
|
||||
prefix: STAGING
|
||||
dry-run:true
|
||||
dry-run: true
|
||||
when:
|
||||
branch: [master]
|
||||
```
|
||||
|
||||
This plugin init stable repository in the cluster, if you want to specify the stable repository, use the `stable_repo_url` attribute.
|
||||
|
||||
The following example will init `stable_repo_url` in the `https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts` repo:
|
||||
|
||||
```YAML
|
||||
pipeline_production:
|
||||
helm_deploy:
|
||||
image: quay.io/ipedrazas/drone-helm
|
||||
skip_tls_verify: true
|
||||
chart: ./charts/my-chart
|
||||
release: ${DRONE_BRANCH}
|
||||
values: image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7}
|
||||
prefix: PROD
|
||||
stable_repo_url: https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
|
||||
when:
|
||||
branch: [master]
|
||||
```
|
||||
|
||||
|
||||
Happy Helming!
|
||||
|
||||
## Known issues
|
||||
|
||||
* Drone secrets that are part of `values` can be leaked in debug mode and in case of error as the whole helm command will be printed in the logs. See #52
|
||||
* Drone secrets that are part of `values` can be leaked in debug mode and in case of error as the whole helm command will be printed in the logs. See #52
|
||||
|
||||
|
||||
@@ -148,6 +148,11 @@ func main() {
|
||||
Usage: "update dependency charts based on the contents of requirements.yaml file of the local chart",
|
||||
EnvVar: "PLUGIN_UPDATE_DEPENDENCIES,UPDATE_DEPENDENCIES",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "stable-repo-url",
|
||||
Usage: "URL for stable repository (default 'https://kubernetes-charts.storage.googleapis.com')",
|
||||
EnvVar: "PLUGIN_STABLE_REPO_URL,STABLE_REPO_URL",
|
||||
},
|
||||
}
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
logrus.Fatal(err)
|
||||
@@ -189,6 +194,7 @@ func run(c *cli.Context) error {
|
||||
Timeout: c.String("timeout"),
|
||||
Force: c.Bool("force"),
|
||||
UpdateDependencies: c.Bool("update-dependencies"),
|
||||
StableRepoURL: c.String("stable_repo_url"),
|
||||
},
|
||||
}
|
||||
return p.Exec()
|
||||
|
||||
+5
-1
@@ -9,7 +9,6 @@ import (
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"text/template"
|
||||
)
|
||||
|
||||
@@ -49,6 +48,7 @@ type (
|
||||
HelmRepos []string `json:"helm_repos"`
|
||||
Purge bool `json:"purge"`
|
||||
UpdateDependencies bool `json:"update_dependencies"`
|
||||
StableRepoURL string `json:"stable_repo_url"`
|
||||
}
|
||||
// Plugin default
|
||||
Plugin struct {
|
||||
@@ -194,6 +194,10 @@ func doHelmRepoAdd(repo string) ([]string, error) {
|
||||
func doHelmInit(p *Plugin) []string {
|
||||
init := make([]string, 1)
|
||||
init[0] = "init"
|
||||
if p.Config.StableRepoURL != "" {
|
||||
init = append(init, "--stable-repo-url")
|
||||
init = append(init, p.Config.StableRepoURL)
|
||||
}
|
||||
if p.Config.TillerNs != "" {
|
||||
init = append(init, "--tiller-namespace")
|
||||
init = append(init, p.Config.TillerNs)
|
||||
|
||||
@@ -513,3 +513,30 @@ func TestResolveSecretsFallback(t *testing.T) {
|
||||
t.Errorf("envar ${NOTTOKEN} has not been resolved to 99999, not using prefix")
|
||||
}
|
||||
}
|
||||
func TestHelmInitByAliyunStableRepo(t *testing.T) {
|
||||
plugin := &Plugin{
|
||||
Config: Config{
|
||||
HelmCommand: "",
|
||||
Namespace: "default",
|
||||
SkipTLSVerify: true,
|
||||
Debug: true,
|
||||
DryRun: true,
|
||||
Chart: "./chart/test",
|
||||
Release: "test-release",
|
||||
Prefix: "MY",
|
||||
Values: "image.tag=$TAG,api=${API_SERVER},nameOverride=my-over-app,second.tag=${TAG}",
|
||||
StringValues: "long_string_value=1234567890",
|
||||
StableRepoURL: "https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts",
|
||||
},
|
||||
}
|
||||
init := doHelmInit(plugin)
|
||||
result := strings.Join(init, " ")
|
||||
expected := "init "
|
||||
if plugin.Config.StableRepoURL != "" {
|
||||
expected = expected + "--stable-repo-url"
|
||||
}
|
||||
|
||||
if expected != result {
|
||||
t.Error("Helm cannot init for stable repository")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user