Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0157d9bc2 | ||
|
|
1f2da68bbb | ||
|
|
7e2f982af7 | ||
|
|
0502d76c63 | ||
|
|
591b084970 | ||
|
|
f24a8e44ca | ||
|
|
8cb8a5d95d | ||
|
|
8b6a8fdd4b |
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -7,6 +7,9 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
**My drone-helm3 and drone versions:**
|
||||||
|
<!-- e.g. drone-helm3 0.9.0, drone 1.6.0-->
|
||||||
|
|
||||||
**What I tried to do:**
|
**What I tried to do:**
|
||||||
<!-- e.g. run a helm installation -->
|
<!-- e.g. run a helm installation -->
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM alpine/helm:3.0.2
|
FROM alpine/helm:3.1.1
|
||||||
MAINTAINER Erin Call <erin@liffft.com>
|
MAINTAINER Erin Call <erin@liffft.com>
|
||||||
|
|
||||||
COPY build/drone-helm /bin/drone-helm
|
COPY build/drone-helm /bin/drone-helm
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ values_files: [ "./over_9,000.yml" ]
|
|||||||
values_files: [ "./over_9", "000.yml" ]
|
values_files: [ "./over_9", "000.yml" ]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Interpolating secrets into the `values` and `string_values` settings
|
### Interpolating secrets into the `values`, `string_values` and `add_repos` settings
|
||||||
|
|
||||||
If you want to send secrets to your charts, you can use syntax similar to shell variable interpolation--either `$VARNAME` or `$${VARNAME}`. The double dollar-sign is necessary when using curly brackets; using curly brackets with a single dollar-sign will trigger Drone's string substitution (which can't use arbitrary environment variables). If an environment variable is not set, it will be treated as if it were set to the empty string.
|
If you want to send secrets to your charts, you can use syntax similar to shell variable interpolation--either `$VARNAME` or `$${VARNAME}`. The double dollar-sign is necessary when using curly brackets; using curly brackets with a single dollar-sign will trigger Drone's string substitution (which can't use arbitrary environment variables). If an environment variable is not set, it will be treated as if it were set to the empty string.
|
||||||
|
|
||||||
|
|||||||
7
internal/env/config.go
vendored
7
internal/env/config.go
vendored
@@ -2,11 +2,12 @@ package env
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/kelseyhightower/envconfig"
|
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/kelseyhightower/envconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -119,6 +120,10 @@ func (cfg *Config) loadValuesSecrets() {
|
|||||||
|
|
||||||
cfg.Values = findVar.ReplaceAllStringFunc(cfg.Values, replacer)
|
cfg.Values = findVar.ReplaceAllStringFunc(cfg.Values, replacer)
|
||||||
cfg.StringValues = findVar.ReplaceAllStringFunc(cfg.StringValues, replacer)
|
cfg.StringValues = findVar.ReplaceAllStringFunc(cfg.StringValues, replacer)
|
||||||
|
|
||||||
|
for i := 0; i < len(cfg.AddRepos); i++ {
|
||||||
|
cfg.AddRepos[i] = findVar.ReplaceAllStringFunc(cfg.AddRepos[i], replacer)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cfg Config) logDebug() {
|
func (cfg Config) logDebug() {
|
||||||
|
|||||||
5
internal/env/config_test.go
vendored
5
internal/env/config_test.go
vendored
@@ -2,10 +2,11 @@ package env
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/stretchr/testify/suite"
|
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/suite"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ConfigTestSuite struct {
|
type ConfigTestSuite struct {
|
||||||
@@ -191,12 +192,14 @@ func (suite *ConfigTestSuite) TestNewConfigWithValuesSecrets() {
|
|||||||
suite.setenv("SECRET_RINGS", "1")
|
suite.setenv("SECRET_RINGS", "1")
|
||||||
suite.setenv("PLUGIN_VALUES", "fire=$SECRET_FIRE,water=${SECRET_WATER}")
|
suite.setenv("PLUGIN_VALUES", "fire=$SECRET_FIRE,water=${SECRET_WATER}")
|
||||||
suite.setenv("PLUGIN_STRING_VALUES", "rings=${SECRET_RINGS}")
|
suite.setenv("PLUGIN_STRING_VALUES", "rings=${SECRET_RINGS}")
|
||||||
|
suite.setenv("PLUGIN_ADD_REPOS", "testrepo=https://user:${SECRET_FIRE}@testrepo.test")
|
||||||
|
|
||||||
cfg, err := NewConfig(&strings.Builder{}, &strings.Builder{})
|
cfg, err := NewConfig(&strings.Builder{}, &strings.Builder{})
|
||||||
suite.Require().NoError(err)
|
suite.Require().NoError(err)
|
||||||
|
|
||||||
suite.Equal("fire=Eru_Ilúvatar,water=", cfg.Values)
|
suite.Equal("fire=Eru_Ilúvatar,water=", cfg.Values)
|
||||||
suite.Equal("rings=1", cfg.StringValues)
|
suite.Equal("rings=1", cfg.StringValues)
|
||||||
|
suite.Equal(fmt.Sprintf("testrepo=https://user:%s@testrepo.test", os.Getenv("SECRET_FIRE")), cfg.AddRepos[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *ConfigTestSuite) TestValuesSecretsWithDebugLogging() {
|
func (suite *ConfigTestSuite) TestValuesSecretsWithDebugLogging() {
|
||||||
|
|||||||
Reference in New Issue
Block a user