https://github.com/helm/helm/pull/2648์ ์ฌ์ฉํ๋ฉด values.yaml
ํ์ผ์์ null
๊ฐ์ ์ค์ ํ์ฌ ํค๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์ฒฉ ๋ ๊ฐ์๋ ์๋ํ์ง ์์ต๋๋ค.
web:
livenessProbe:
httpGet: null
exec:
command:
- curl
- -f
- http://localhost:8080/api/v1/info
์๋ ๊ฐ์์ web.livenessProbe.httpGet
๋ฅผ ์ ๊ฑฐํ์ง ์๊ณ null
๊ฐ์ ์ฌ์ ์ํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ์ธ์ํฉ๋๋ค.
2019/01/18 11:30:07 Warning: Merging destination map for chart 'concourse'. Cannot overwrite table item 'httpGet', with non table value: map[path:/api/v1/info port:atc]
์์ด๋ฌ๋ํ๊ฒ๋ ์๋ ๋ฌธ์์ ์ ๊ณต๋ ์์ ์ ๋ํ ์์ ๋ณํ์ด๋ฉฐ ์ค์ ๋ก ์ฃผ์ฅํ๋ ์์ ์ ์ํํ์ง ์์ต๋๋ค. https://docs.helm.sh/chart_template_guide/#deleting-a-default-key
ํ ํ๋ฆฟ ๋ ๋๋ง์ด null ๊ฐ๊ณผ ์ง์ ๋์ง ์์ ๊ฐ์ ๋ง์ด ๊ตฌ๋ณํ์ง ์๋ ๊ฒ ๊ฐ๊ธฐ ๋๋ฌธ์์ด ๊ฒฝ๊ณ ๊ฐ ๋ฌด์๋๊ณ ๋ง์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค.
helm version
์ถ๋ ฅ :
Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
kubectl version
์ถ๋ ฅ :
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:39:04Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.5-eks-6bad6d", GitCommit:"6bad6d9c768dc0864dab48a11653aa53b5a47043", GitTreeState:"clean", BuildDate:"2018-12-06T23:13:14Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
ํด๋ผ์ฐ๋ ์ ๊ณต ์ ์ฒด / ํ๋ซํผ (AKS, GKE, Minikube ๋ฑ) :
EKS
@scottrigby ,
์์ ์์ ๋ฐ๋ฅด๋ฉด ์ด๊ฒ์ด ์ค์ ๋ก ๋ฒ๊ทธ๋ผ๋ ๊ฒ์ด ํ์ธ ๋ ๋๊น์ง ์ง๋ฌธ / ์ง์์ผ๋ก ํ์ํฉ๋๋ค.
2.12.3์์๋ ๋ณผ ์ ์์ต๋๋ค. -f์ --set์ ํตํด ๊ฐ์ null๋ก ์ค์ ํ๋ ๋์๋ณด๊ณ ์์ต๋๋ค. ์ด๋ ์ชฝ์ด๋ ๊ธฐ๋ณธ๊ฐ์ ์ ๊ฑฐํ์ง ์๊ณ ๋ฌธ์์ด (๋ฐ์ดํ์์ด)๋ก "null"๋ก ์ค์ ํฉ๋๋ค.
๋ด ์ํฉ :
> helm get values grafana
admin:
existingSecret: ""
chownDataImage:
pullPolicy: null
repository: null
tag: null
<...>
> helm upgrade grafana stable/grafana --tls --reuse-values --set chownDataImage.pullPolicy=null
<output indicating it works>
> helm get values grafana
admin:
existingSecret: ""
chownDataImage:
pullPolicy: null
repository: null
tag: null
<...>
์ฌ์ฉ ์ฌ๋ก๋ ์ด์ helm์ ๊ณ ์ ๋ ๊ธฐ๋ณธ๊ฐ ๋์ ํ ํ๋ฆฟ์ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๋๋ก ์ด๋ฌํ ๊ฐ์ ์ฌ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
์์ / ํ์ผ ๋นํธ
null
๋๋ nil
๊ฐ์ ๊ฒ์ด ๋ณด์
๋๋ค ... ํค๊ฐ ์ ๊ฑฐ๋์ง ์์์ต๋๋ค ... null/nil
๋ก ๋ฎ์ด ์ฐ์ฌ์ก์ง๋ง ์ ๊ฑฐ๋์ง ์๊ณ ๊ต์ฒด ํ ๋ ๋ค๋ฅธ ํค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
---values.yml in the Chart
output.file:
path: /var/log/foo.log
```yaml
--- ๋ด ์ฌ์ ์
output.elasticsearch :
ํธ์คํธ :
- ' http : // localhost : 9200'
output.file : null
```yaml
---my overrides
output:
elasticsearch:
host:
- 'http://localhost:9200'
file: null
๋๋
---my overrides
output:
elasticsearch:
hosts:
- 'http://localhost:9200'
output.file: null
ยป k get secret filebeat -o jsonpath="{.data.filebeat\.yml}" | base64 -D
filebeat.config:
modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
prospectors:
path: ${path.config}/prospectors.d/*.yml
reload.enabled: false
filebeat.prospectors:
- enabled: true
fields:
apenv: dev
app: kubernetes
log_category: kubernetes
fields_under_root: true
paths:
- /var/log/*.log
- /var/log/messages
- /var/log/syslog
type: log
- containers.ids:
- '*'
fields:
apenv: dev
app: kubernetes
log_category: kubernetes
fields_under_root: true
processors:
- add_kubernetes_metadata:
in_cluster: true
- drop_event:
when:
equals:
kubernetes.container.name: filebeat
type: docker
http.enabled: true
http.port: 5066
output:
elasticsearch:
hosts:
- http://localhost9200
output.file: null
processors:
- add_cloud_metadata: null
ํฌ๋ ์ค๋ฅ :
Exiting: error unpacking config data: more than one namespace configured accessing 'output' (source:'filebeat.yml')
๋ํ filebeat ์ฐจํธ์์์ด ์ ํํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
@cdenneen config.output.file.enabled=false
ํ์ฌ ํน๋ณํ ํ์ผ ์ถ๋ ฅ์ ์ป์ ์ ์์ต๋๋ค.
filebeat์ ์ inputs
ํค๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ์ง๋ง prospectors
ํค๋ฅผ ์ ๊ฑฐ ํ ์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๊ธฐ์กด ๊ฐ :
config:
filebeat.prospectors:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/messages
- /var/log/syslog
๋ด ์ฌ์ ์ : --set config.filebeat.prospectors=null
๊ฒฐ๊ณผ : (๊ตฌ์ฑ์ ๋น๋ฐ ๊ฐ์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋จ)
filebeat:
prospectors: null
๋ํ stable/kibana
๋ฐ stable/filebeat
์์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. !!null
๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ์๋ ํค๊ฐ ์ฐจํธ ๊ฐ์ผ๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค.
@aeijdenberg ๋ ๊ทํ์ PR์ด ๊ฒํ ๋ฅผ ์ํด ์ ๋ฐ์ดํธ ๋ ๋ ์ด๋ธ ๋ง ํ์ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
์๋ ํ์ธ์ @bacongobbler https://github.com/helm/helm/issues/5184#issuecomment -456138448์์ ์ง๋ฌธ์ ๋์ณค์ต๋๋ค. ๋ฒ๊ทธ์ธ์ง ํ์ธํ ์ ์์ต๋๋ค. # 2648์์ ๋ฌธ์ํ ๋ ์์ ์ ์ผ์นํ๋ ํ ์คํธ๋ฅผ ์ถ๊ฐํด์ผํ์ต๋๋ค. ๋๋ ์ด๊ฒ์ผ๋ก ๋์ ๊ฐ๋ ค๊ณ ํ์ง๋ง # 5185๋ ์ ๋ง ํด ๋ณด์ธ๋ค! ๐ ์๋ตํฉ๋๋ค
์๋ ํ์ธ์ @scottrigby . ์ด๋ค ๋ฆด๋ฆฌ์ค์ # 5185 ์์ ์ฌํญ์ด ํฌํจ๋๋์ง ์ ์ ์์ต๋๊น? istio ์ฐจํธ์์ ๋ฆฌ์์ค ์ ์๋ฅผ ์ ๊ฑฐํ๋ ค๊ณ ํ ๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด๊ฒ์ 2.14.2์ ์์ด์ผํ์ง๋ง ์๋ํ๋๋ก ํ ์ ์์ต๋๋ค.
๋ฌธ์ ์ ๋งจ ์์์๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํ ์๋ฅผ ๋ฐ๋ฅด๊ณ ์์ต๋๋ค. ๋ด๊ฐ ๋ณผ ์์๋ ์ ์ผํ ์ฐจ์ด์ ์ ํ์ ์ฐจํธ (์ ๊ฒฝ์ฐ์๋ logstash)์ ์ค์ ๋ ๊ฐ์ ์ญ์ ํ๋ ค๊ณ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ ์๋ํ๋ค :
null
, ~
๋ฐ {}
๋ก ์ค์ ํฉ๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ "helm template"์ ์๋ ๊ฐ์ด ์ฌ์ ํ ์์์ ๋ณด์ฌ์ค๋๋ค (์ : httpGet ์ค์ ์ด ๊ณ์๋จ). ์ด๊ฒ์ "helm install"์ ๋ํด ๋ณด๋ ๊ฒ๊ณผ ์ผ์นํฉ๋๋ค.๋ด๊ฐ ์คํดํ๊ณ ์ด๊ฒ์ด 2.14.2๋ก ๋ค์ด ๊ฐ์ง ์์์ต๋๊น? ์๋๋ฉด ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
(์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฐจํธ : demo.zip )
ํจ์น๋ ๋ฆด๋ฆฌ์ค ๋ ธํธ์ ๋ฐ๋ผ 2.14.2๋ก ์ ๋ณ๋์์ผ๋ฏ๋ก ์ฌ์ฉํ ์ ์์ด์ผํฉ๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์์ด ๋ฒ๊ทธ๊ฐ ์์ ๋์๋์ง ํ์คํ์ง ์์ต๋๋ค. ๋ค์ ์ด์ด์ผํฉ๋๊น ์๋๋ฉด ์๋ก์ด ๋ฌธ์ ๊ฐ ์์ฑ๋์ด์ผํฉ๋๊น? ๋ด๊ฐ ์์ ์ฒจ๋ถ ํ ์ฐจํธ๋ฅผ ๋ค๋ฅธ ์ฌ๋์ด๋ณด๊ณ ๋ค๋ฅด๊ฒ ๋ณด์ด๋์ง ํ์ธํ ์ ์์ต๋๊น?
@ cc-stjm @bacongobbler-๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ผ๋ฉฐ์ด ํ ์คํธ๊ฐ์ด๋ฅผ ์ ์ฆํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
func TestSubchartCoaleseWithNullValue(t *testing.T) {
v, err := CoalesceValues(&chart.Chart{
Metadata: &chart.Metadata{Name: "demo"},
Dependencies: []*chart.Chart{
{
Metadata: &chart.Metadata{Name: "logstash"},
Values: &chart.Config{
Raw: `livenessProbe: {httpGet: {path: "/", port: monitor}}`,
},
},
},
Values: &chart.Config{
Raw: `logstash: {livenessProbe: {httpGet: null, exec: "/bin/true"}}`,
},
}, &chart.Config{})
if err != nil {
t.Errorf("Failed with %s", err)
}
result := v.AsMap()
expected := map[string]interface{}{
"logstash": map[string]interface{}{
"global": map[string]interface{}{},
"livenessProbe": map[string]interface{}{
"exec": "/bin/true",
},
},
}
if !reflect.DeepEqual(result, expected) {
t.Errorf("got %+v, expected %+v", result, expected)
}
}
๋ด๊ฐ ๋งํ ์์๋ ํ ๋ฌธ์ ๋ CoalesceValues()
๊ฒฐ๊ณผ ๊ฐ์ ๊ฒฐํฉํ๋ ๊ธฐ๋ณธ ํจ์์ ๋ํ ํธ์ถ์ด ๋ ๋ฒ ์ด์ ๋ฐ์ํ๋ค๋ ๊ฒ์
๋๋ค.
https://github.com/helm/helm/blob/e04fa72f6f211cae68c362f9b7c62f06dc51493e/pkg/chartutil/values.go#L164 -L180
์ฆ, ์์ 173 ํ์ httpGet
๊ฐ null
์ค์ ๋ ์ํ๋ก ํธ์ถ๋์ง๋ง ๋ฐํ๋๋ ๊ฐ์ด์ง๋์์ ํด๋น ํค๋ฅผ ์ญ์ ํ์ต๋๋ค (์๋ ํ๋๋ก). ๊ทธ๋ฌ๋ ๊ทธ ์ถ๋ ฅ์ ๋ ๋ฒ์งธ ๋ณํฉ ์งํฉ์ ๋ํ ์
๋ ฅ์ผ๋ก ๋ ๋ฒ์งธ๋ก ์ ๋ฌ๋๊ณ (179 ํ) ํค๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฐจํธ์ ๊ฐ์ผ๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค.
์ํ๊น๊ฒ๋ ๊ฐ๊น์ด ์ฅ๋์ ๋ ๋์๊ฐ ์๊ฐ์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ญํ ์ ๋ณ๊ฒฝํ์ผ๋ฉฐ ํ์ฌ Helm์ ์ฌ์ฉํ์ง ์๊ณ ์์ผ๋ฉฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ๋ต๋ณ์ด ๋ช ํํ์ง ์์ต๋๋ค. ์์ ๋ด์ฉ์ด ํด๊ฒฐ์ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฌ์ค ๋ฐฉ๊ธ 2.14.0 => 2.14.2๋ก ์
๊ทธ๋ ์ด๋ํ์ต๋๋ค. null
ed ํค๊ฐ ์ฌ์ ํ ์กด์ฌํ ๋ฟ๋ง ์๋๋ผ ์ด์ ๊ฐ๋ ํฌํจ๋ฉ๋๋ค. ์ด์ ๋์์ ๋ฐฉ๊ธ null๋ก ๋ง๋ค์์ผ๋ฏ๋ก ์ค์ ๋ก ํ๊ทํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@aeijdenberg ๋น์ ์ ์ง๋ฌธ์ @sgillespie์ ๋ชจ์ต์ ๊ธฐ์๊ฒ ํ ์ ์์ต๋๊น? ํ๊ท๊ฐ์๋ ๊ฒฝ์ฐ ์์ ์ฌํญ์ ๊ฒฐ์ ํ ์์๋ ๊ฒฝ์ฐ PR์ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ ์์ ํ ์ ์์ต๋๋ค. ๋์์ ์ค ์ ์๋ค๋ฉด ์ปค๋ฐ์ ๋๋๋ฆฌ๊ณ ์ ๊ณฑ 1๋ก ๋์๊ฐ๋ ๊ฒ์ด ๋ ์์ ํ ๊ฒ์ ๋๋ค. ์งํ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์ธ์.
๋ด๊ฐ ๋ช ์ ์ ์ผ๋ก @sgillespie ๋์ ์ธ๊ธ ๋ ํ๋๊ณผ ์ผ์นํ๋ ๊ฒ์ 2.14.0 ์ํ์ ์์ํ์ง ์์ ๋ฐ๋ฉด, @bacongobbler https://github.com/helm/helm/issues/5184#issuecomment-517059748์ . ์ํ๊น๊ฒ๋ ๋จ์ ํ ์คํธ๊ฐ ํต๊ณผ ํ ๊ฒฝ์ฐ๋ผ๊ณ ์๊ฐํ์ง๋ง ์ข ๋จ ๊ฐ ์คํจ์ ๋๋ค. ๊ฐ๋ณ ๊ตฌ์ฑ ์์๊ฐ ์ง๋ ฌ๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ ๋จ๊ณ์์ ํค๋ฅผ ์ ๊ฑฐํ๋ฉด ์ดํ ๋จ๊ณ์์๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค. ์๋ ๊ฐ์ด ์ ๋ฌ๋ฉ๋๋ค).
๋๋ ๊ทธ๊ฒ์ด ํ๊ท๋ผ๋ ๋ฐ ๋์ํ์ง๋ง ๊ทธ๊ฒ์ ์ฒ ํํ๋ ๊ฒ์ ์๋ก์ด ํ๋์ ์์กดํ๋ ๋ชจ๋ ์ฌ๋๋ค์๊ฒ ํ๊ท์ด๊ธฐ๋ํฉ๋๋ค.
๋๋ # 6146์์ ์ํฅ์ ์ค์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ๋น๊ต์ ์ฌ์ํ ํจ์น๋ฅผ ๋น ๋ฅด๊ฒ ์งํํ์ต๋๋ค (๊ทธ๋ฆฌ๊ณ ์์์ ์ถ๊ฐ ํ ํ ์คํธ๋ฅผ ์์ ํ์ต๋๋ค). ๋ง์ง๋ง ์๋์์์ด ๋ฌธ์ ๋ฅผ ์๋ชป ์์์ ์ฃ์กํฉ๋๋ค.
https://github.com/helm/helm/pull/6080 ์์ ์์ ๋์์ ์ ์์ต๋๋ค
๊ทธ๋ ๋ค๋ฉด # 6146์ ๋ซ์ ์ ์์ต๋๊น? ์๋๋ฉด ๋ณ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํฉ๋๊น? ๋๋ ์ฌ๊ธฐ ๋ฌธ์ ๊ณต๊ฐ์ ๋ํ ๋ด ๋จธ๋ฆฌ๋ฅผ ์ก์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ์ด๋ฌํ PR์ด ํด๊ฒฐํ๋ ค๊ณ ์๋ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ๋ช ํํ์ง ์์ต๋๋ค. ์ฃ์กํฉ๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ๋จํ ํ ์คํธ :
ํ์ ์ฐจํธ ๊ฐ :
prop:
nested:
val: true
์์ ์ฐจํธ ๊ฐ :
sub:
prop:
nested: null
์์๋๋ก ์ถ๋ ฅ์ {}
์๋ ํ์ธ์,
2.15.0
ํฌ๊ตฌ๋ฅผ ์ฌ์ฉ ์ค์ด๋ฉฐ ์ฌ์ ํ์ด ๋ฌธ์ ๋ฅผ ๋ง๋ฌ์ต๋๋ค.
๊ฐ์ด์๋ ํ์ ์ฐจํธ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
securityContext:
runAsUser: 65534
fsGroup: 65534
๊ฐ์ด toYaml
์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ
๊ทธ๋ฆฌ๊ณ ์์ ์ฐจํธ ๊ฐ์์ :
sub:
securityContext:
runAsUser: null
๊ทธ๋ฌ๋ฉด ์ค์ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
securityContext:
runAsUser: 65534
fsGroup: 65534
๊ทธ๋ฌ์ด ์ผํ์ง๋ง :
securityContext:
fsGroup: 65534
ํผ๋ ์ด๋์ ๋น๋ฅผ ๋ด๋ฆฌ๋ ค๊ณ ํ์ง ์์ง๋ง, v3.0.1 ํค๋ก ์ฌ์ ํ ์ด๊ฒ์๋ณด๊ณ ์์ต๋๋ค.
version.BuildInfo {๋ฒ์ : "v3.0.1", GitCommit : "7c22ef9ce89e0ebeb7125ba2ebf7d421f3e82ffa", GitTreeState : "clean", GoVersion : "go1.13.4"}
์์ / ์ ํ๋ฅผ ์ค์นํ๋ ค๊ณ ํ ๋ ๊ฐ์ ์ค์ ํด์ ํด์ผํ์ง๋ง helm์ ๊ฐ์ null / nil๋ก ์ค์ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฏ๋ก ์ ํจ์ฑ ๊ฒ์ฌ ๋จ๊ณ์์ k8s๊ฐ ์ค๋จ๋ฉ๋๋ค.
์ฌํํ๋ ค๋ฉด bug5184-ignite.yaml
๋ก ์ ์ฅํฉ๋๋ค (์ฐจํธ์ ๊ธฐ๋ณธ๊ฐ ์ธ https://github.com/helm/charts/blob/master/stable/ignite/values.yaml์์ ๊ฐ์ ์ฌ์ ์ํ๋ ค๋ฉด) :
persistence:
enabled: true # <-- without this, the keys in question are ignored
persistenceVolume:
provisionerParameters:
type: null # <-- I want to unset this key
walVolume:
provisionerParameters:
type: null # <-- I want to unset this key
๊ทธ๋ฐ ๋ค์ ignite ์ค์น๋ฅผ์ํ ๊ฐ ํ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
helm install runtimedb stable/ignite --version 1.0.1 --values bug5184-ignite.yaml --debug --dry-run | less
๋ด๊ฐ ์ป์ ๊ฒฐ๊ณผ๋์ด ์ค๋ฅ ๋ฉ์์ง๋ก, ์ค์ ํด์ ํ๋ ค๋ ๊ฐ์ด nil
๋ก ์ค์ ๋์์์ ๋ณด์ฌ์ค๋๋ค.
install.go:148: [debug] Original chart version: ""
install.go:165: [debug] CHART PATH: /home/creinig/.cache/helm/repository/ignite-1.0.1.tgz
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: unknown object type "nil" in StorageClass.parameters.type
helm.go:76: [debug] error validating "": error validating data: unknown object type "nil" in StorageClass.parameters.type
helm.sh/helm/v3/pkg/kube.scrubValidationError
/home/circleci/helm.sh/helm/pkg/kube/client.go:520
helm.sh/helm/v3/pkg/kube.(*Client).Build
/home/circleci/helm.sh/helm/pkg/kube/client.go:135
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/circleci/helm.sh/helm/pkg/action/install.go:229
[...]
๋ด๊ฐ ์๋ํ ๊ฒ :
null
๋ฅผ ํตํด ๊ฐ์ --set
๋ช
๋ น ์ค์ ํตํด ๋จ์ผ ๊ฐ์ null
๋ก๋ง ์ค์ ํ๊ณ ๋์์ ์ ํ ์ง์์ฑ์ ๋นํ์ฑํ ํ ๋ (์คํ ๋ฆฌ์ง ํด๋์ค ํ
ํ๋ฆฟ์ด ์์ฑ๋์ง ์๊ณ ํด๋น ๋งค๊ฐ ๋ณ์๊ฐ ๋ฌด์๋๋๋ก) ...
helm install myignite stable/ignite --version 1.0.1 --set persistence.persistenceVolume.provisionerParameters.type=null --debug --dry-run | less
... ์ค๋ฅ ๋์ ์ ์ ํ ๋๋ฒ๊ทธ ์ถ๋ ฅ์ด ์์ง๋ง ๊ฐ์ด null
(๋ด๊ฐ ์ถ๊ฐ ํ ์ฃผ์)๋ก ์ค์ ๋์ด ์์์ ๋ณด์ฌ์ค๋๋ค.
NAME: myignite
LAST DEPLOYED: Tue Dec 10 09:43:40 2019
NAMESPACE: default
STATUS: pending-install
REVISION: 1
TEST SUITE: None
USER-SUPPLIED VALUES:
persistence:
persistenceVolume:
provisionerParameters:
type: null # <-- Set via the command line
COMPUTED VALUES:
affinity: {}
dataStorage:
config: ""
env:
IGNITE_QUIET: "false"
JVM_OPTS: -Djava.net.preferIPv4Stack=true
OPTION_LIBS: ignite-kubernetes,ignite-rest-http
fullnameOverride: ""
image:
pullPolicy: IfNotPresent
repository: apacheignite/ignite
tag: 2.7.6
nameOverride: ""
nodeSelector: {}
peerClassLoadingEnabled: false
persistence:
enabled: false
persistenceVolume:
provisioner: kubernetes.io/aws-ebs
provisionerParameters:
fsType: ext4
type: null # <-- Set to null instead of removed
size: 8Gi
walVolume:
provisioner: kubernetes.io/aws-ebs
provisionerParameters:
fsType: ext4
type: gp2 # <-- This is what the default looks like
size: 8Gi
rbac:
create: true
replicaCount: 2
resources: {}
serviceAccount:
create: true
name: null
tolerations: []
3.0.1
์ฌ์ฉํ์ฌ ๋๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ฌ๋ ๊ฒ์ด ์ข์๊น์?
helm v2.16.1์์ v3.0.2๋ก ์ด๋ ํ ํ. ๋๋ annoations unsetting ๋ฐ cpu limit ์ผ๋ก์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
2.14.1
๋ฐ 3.0.2
์์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๊ฒ์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
helm ์ฐจํธ๊ฐ ๋จ์ํ ์ฌ์ฉ ์ค์ด๊ณ ํ
์คํธ ์ธ ๊ฒฝ์ฐ true / false์์ ์๊ณ ์๋ ๊ฒฝ์ฐ 0๊ณผ ๊ฐ์ ํ
์ด๋ธ์ด ์๋ ๊ฐ์ผ๋ก ๊ฐ์ ์ฌ์ ์ํฉ๋๋ค. Overwriting table item 'x', with non table value: 0
์ ๊ฐ์ ๋ง์ ๊ฒฝ๊ณ ๊ฐ ํ์๋์ง๋ง ์ ์ด๋ ์คํ ์๋ฅผ ํฌํจํ์ง ์์ผ๋ ค๋ ๊ฒฝ์ฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์
๋๋ค. ๋ด ์ ํธ๋ null์ด ์๋ํ๋ ๊ฒ์ด์ง๋ง ์ด๊ฒ์ ์ถ์
ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์
๋๋ค.
๊ฐ์ null๋ก ์ค์ ํ๊ณ (๊ฐ ํ์ผ์ null๋ก ๋์์ต๋๋ค) ํ์ฌ๋ ๊ด์ฐฎ์ ๊ธด ํ ์ด๋ธ ๊ฒฝ๊ณ ๋ชฉ๋ก์ ๋ฌด์ํ์ง๋ง ์ ์ฅ๋ ์ด์ ์๋ชป๋ ๊ฐ์ ํ ๋ฒ๋ง ์ ๋ฆฌํ๊ณ ์ถ์ต๋๋ค. kubernetes. ์ด ๊ฐ ์ญ์ ๋ฒ๊ทธ๊ฐ ์์ ๋ ๋๊น์ง ๋ค์ด ํ์์์ด ๊ธฐ์กด ๋ฐฐํฌ์ ๊ฐ์ ์๋์ผ๋ก ํธ์ง ํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
liveness
๋ฐ readiness
ํ๋ก๋ธ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ
ํ๋ฆฟ ๊ฐ์ด๋์์ ๊ธฐ๋ณธ ํค ์ญ์ ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
# 7743์ ์๋ํด์ฃผ์ธ์. Helm 2์ ๋ํ ์ปค๋ฐ์ด Helm 3์ผ๋ก ํฌํ ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.์ด ๋๋ฌธ์ ๋ง์ ์ฌ์ฉ์๊ฐ์ด ๋์์ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค.
helm 2.16.3์์์ด ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ์ง๋ง requirements.yaml์ด ํ์ ์ฐจํธ๋ฅผ ์ข ์์ฑ์ผ๋ก ๋์ดํ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํฉ๋๋ค.
boo๋ ํ์ ์ฐจํธ์ด๊ณ foo๋ ์์ ์ฐจํธ์ ๋๋ค.
vibu@item-ax35755:~/work$ cat boo/values.yaml
object:
fromSubchart:
hello: from boo
vibu@item-ax35755:~/work$ cat foo/values.yaml
boo:
object:
fromParent:
hello: from foo
fromSubchart: null
vibu@item-ax35755:~/work$ cat boo/templates/test.yaml
{{ toYaml .Values.object }}
vibu@item-ax35755:~/work$ cat foo/requirements.yaml
dependencies:
- name: boo
repository: file://../boo
version: 0.1.0
vibu@item-ax35755:~/work/foo$ helm version -c
Client: &version.Version{SemVer:"v2.16.3", GitCommit:"1ee0254c86d4ed6887327dabed7aa7da29d7eb0d", GitTreeState:"clean"}
vibu@item-ax35755:~/work/foo$ helm dep up
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "incubator" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.
Saving 1 charts
Deleting outdated charts
vibu@item-ax35755:~/work/foo$ helm template .
---
# Source: foo/charts/boo/templates/test.yaml
fromParent:
hello: from foo
fromSubchart:
hello: from boo
vibu@item-ax35755:~/work/foo$ mv requirements.yaml{,.bak}
vibu@item-ax35755:~/work/foo$ helm template .
---
# Source: foo/charts/boo/templates/test.yaml
fromParent:
hello: from foo
์ฌ๊ธฐ์ ๋ ์ฐจํธ๊ฐ ์์ต๋๋ค.
@bacongobbler 2.x์์์ด ๋ฌธ์ ๋ฅผ ์ถ๊ฐ๋ก ํด๊ฒฐํ ์๋๊ฐ ์์ต๋๊น?
๋ํ ํ์ ์ฐจํธ๊ฐ 3.2.x์ ํจ๊ป requirements.yaml์ ์ข ์์ฑ์ผ๋ก ๋์ด ๋ ๋ ๊ฐ ์ฌ์ ์์ ๋ํด "null"์ด ์๋ํ์ง ์๋ ๋ฌธ์ (@vbuciuc์์ ์ค๋ช ํ ๊ฒ๊ณผ ์ ์ฌ)๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด์ ๋ฒ์ (3.1.x)์ ์์๋๋ก ์๋ํฉ๋๋ค.
@bacongobbler @technosophos Helm 3.3.4
์์๋์ด ๋ฌธ์ ๋ฅผ
3.1.2
์๋ํ์ผ๋ฉฐ @paleg์์ ์ธ๊ธ 3.2.x
์ดํ ์๋์ด ์ค์ง๋์์์ ํ์ธํ ์ ์์ต๋๋ค. ํ์ฌ ๋ก์๋ @ tuzla0autopilot4 ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก false
์ ๊ฐ์ ๋น๋งต ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ์๋ ํ ๋์์ด ์์ฑ๋์ง๋ง ์๋ฃ๋๋ฉด ์ถ๋ ฅ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
@ Chili-Man, ๋ฐฉ๊ธ 3.1.3
์๋ํ์ง๋ง ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. null
๋์ง๋ง ๊ฒฝ๊ณ ๊ฐ ํ์๋๊ณ ์๋ฌด ์์
๋ํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ๊ฒ ( false
, 0
, []
)์ (์ :)
```coalesce.go : 196 : ๊ฒฝ๊ณ : ์์์ ๋ํ ํ
์ด๋ธ์ด ์๋ ํ
์ด๋ธ์ ๋ฎ์ด ์ธ ์ ์์ต๋๋ค (map [requests : map [cpu : 250m memory : 256Mi]]).
์ค๋ฅ : UPGRADE FAILED : ๊ฐ์ด ๋ค์ ์ฐจํธ์ ์คํค๋ง ์ฌ์์ ์ถฉ์กฑํ์ง ์์ต๋๋ค.
postgresql :
(or what the type that I try that is not a dict/hash). With
3.3.4 I get just silence and it does nothing with
null` ๋ฐ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ๋ ์ ์ฉ์ ๊ฑฐ๋ถํฉ๋๋ค. ๊ฐ์ฅ ์ง์ฆ๋๋ ...3.4.2์์๋ ์ฌ์ ํ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ 3.4.2์๋ ์ฌ์ ํ ์กด์ฌํ์ง๋ง ํน์ ์ํฉ์์๋ง ๋ฐ์ํฉ๋๋ค.
์ฌ๋ฌ ํ์ ์ฐจํธ๊ฐ์๋ ์ฐจํธ๊ฐ ์์ต๋๋ค.
ํ์ ์ฐจํธ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ ๋ null
์ฌ์ ์๊ฐ ์๋ํ์ง ์์ต๋๋ค. ๋์ผํ ๊ฐ์ ์์ ์ฐจํธ ๊ฐ์ผ๋ก ์ด๋ํ๋ฉด ์์๋๋ก ์๋ํฉ๋๋ค.
์ด๊ฒ์ ํ์ ์ฐจํธ๋ก๋ง ์ฌํ ํ ์ ์์ต๋๋ค. ๋จ์ผ (ํ๋ฉด) ์ฐจํธ์ ๋ฃ์ผ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค.
ํ์ ์ฐจํธ๋ฅผ ์ฌ์ฉํ ๋ 3.4.2์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค (์์ @BohdanKalytka์์ ์ค๋ช
ํ๋๋ก).
์ ๊ฒฝ์ฐ์๋ OpenShift ํด๋ฌ์คํฐ์์ ElasticSearch helm ์ฐจํธ ๋ฅผ ์ฌ์ฉํ ๋ securityContext๋ฅผ ๋ฎ์ด ์ฐ๊ณ ์ถ์ต๋๋ค.
์ด ๋ฌธ์ ๊ฐ ๋ค์ ์ด๋ฆฌ๋์? ์๋๋ฉด ์ ๋ฌธ์ ๋ฅผ ๋ง๋ค์ด์ผํฉ๋๊น?
์ ๊ธฐ # 9136
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ํ ํ์ ์ฐจํธ๊ฐ 3.2.x์ ํจ๊ป requirements.yaml์ ์ข ์์ฑ์ผ๋ก ๋์ด ๋ ๋ ๊ฐ ์ฌ์ ์์ ๋ํด "null"์ด ์๋ํ์ง ์๋ ๋ฌธ์ (@vbuciuc์์ ์ค๋ช ํ ๊ฒ๊ณผ ์ ์ฌ)๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด์ ๋ฒ์ (3.1.x)์ ์์๋๋ก ์๋ํฉ๋๋ค.