issue #68 add stable_repo_url to change default stable repository

This commit is contained in:
Gecko
2018-11-29 19:16:52 +08:00
parent 915077d25e
commit 504963d001
4 changed files with 60 additions and 3 deletions
+22 -2
View File
@@ -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
+6
View File
@@ -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
View File
@@ -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)
+27
View File
@@ -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")
}
}