mirror of https://github.com/helm/helm
commit
872d9bcb0e
@ -0,0 +1,15 @@
|
|||||||
|
To add your organization to this list, open a pull request that adds your
|
||||||
|
organization's name, optionally with a link. The list is in alphabetical order.
|
||||||
|
|
||||||
|
(Remember to use `git commit --signoff` to comply with the DCO)
|
||||||
|
|
||||||
|
# Organizations Using Helm
|
||||||
|
|
||||||
|
- [Blood Orange](https://bloodorange.io)
|
||||||
|
- [IBM](https://www.ibm.com)
|
||||||
|
- [Microsoft](https://microsoft.com)
|
||||||
|
- [Qovery](https://www.qovery.com/)
|
||||||
|
- [Samsung SDS](https://www.samsungsds.com/)
|
||||||
|
- [Ville de Montreal](https://montreal.ca)
|
||||||
|
|
||||||
|
_This file is part of the CNCF official documentation for projects._
|
@ -0,0 +1,3 @@
|
|||||||
|
# Helm Security Reporting and Policy
|
||||||
|
|
||||||
|
The Helm project has [a common process and policy that can be found here](https://github.com/helm/community/blob/master/SECURITY.md).
|
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
Copyright The Helm 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 main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"helm.sh/helm/v3/pkg/chart"
|
||||||
|
"helm.sh/helm/v3/pkg/release"
|
||||||
|
helmtime "helm.sh/helm/v3/pkg/time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func outputFlagCompletionTest(t *testing.T, cmdName string) {
|
||||||
|
releasesMockWithStatus := func(info *release.Info, hooks ...*release.Hook) []*release.Release {
|
||||||
|
info.LastDeployed = helmtime.Unix(1452902400, 0).UTC()
|
||||||
|
return []*release.Release{{
|
||||||
|
Name: "athos",
|
||||||
|
Namespace: "default",
|
||||||
|
Info: info,
|
||||||
|
Chart: &chart.Chart{},
|
||||||
|
Hooks: hooks,
|
||||||
|
}, {
|
||||||
|
Name: "porthos",
|
||||||
|
Namespace: "default",
|
||||||
|
Info: info,
|
||||||
|
Chart: &chart.Chart{},
|
||||||
|
Hooks: hooks,
|
||||||
|
}, {
|
||||||
|
Name: "aramis",
|
||||||
|
Namespace: "default",
|
||||||
|
Info: info,
|
||||||
|
Chart: &chart.Chart{},
|
||||||
|
Hooks: hooks,
|
||||||
|
}, {
|
||||||
|
Name: "dartagnan",
|
||||||
|
Namespace: "gascony",
|
||||||
|
Info: info,
|
||||||
|
Chart: &chart.Chart{},
|
||||||
|
Hooks: hooks,
|
||||||
|
}}
|
||||||
|
}
|
||||||
|
|
||||||
|
tests := []cmdTestCase{{
|
||||||
|
name: "completion for output flag long and before arg",
|
||||||
|
cmd: fmt.Sprintf("__complete %s --output ''", cmdName),
|
||||||
|
golden: "output/output-comp.txt",
|
||||||
|
rels: releasesMockWithStatus(&release.Info{
|
||||||
|
Status: release.StatusDeployed,
|
||||||
|
}),
|
||||||
|
}, {
|
||||||
|
name: "completion for output flag long and after arg",
|
||||||
|
cmd: fmt.Sprintf("__complete %s aramis --output ''", cmdName),
|
||||||
|
golden: "output/output-comp.txt",
|
||||||
|
rels: releasesMockWithStatus(&release.Info{
|
||||||
|
Status: release.StatusDeployed,
|
||||||
|
}),
|
||||||
|
}, {
|
||||||
|
name: "completion for output flag short and before arg",
|
||||||
|
cmd: fmt.Sprintf("__complete %s -o ''", cmdName),
|
||||||
|
golden: "output/output-comp.txt",
|
||||||
|
rels: releasesMockWithStatus(&release.Info{
|
||||||
|
Status: release.StatusDeployed,
|
||||||
|
}),
|
||||||
|
}, {
|
||||||
|
name: "completion for output flag short and after arg",
|
||||||
|
cmd: fmt.Sprintf("__complete %s aramis -o ''", cmdName),
|
||||||
|
golden: "output/output-comp.txt",
|
||||||
|
rels: releasesMockWithStatus(&release.Info{
|
||||||
|
Status: release.StatusDeployed,
|
||||||
|
}),
|
||||||
|
}}
|
||||||
|
runTestCmd(t, tests)
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
Copyright The Helm 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 main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestLintCmdWithSubchartsFlag(t *testing.T) {
|
||||||
|
testChart := "testdata/testcharts/chart-with-bad-subcharts"
|
||||||
|
tests := []cmdTestCase{{
|
||||||
|
name: "lint good chart with bad subcharts",
|
||||||
|
cmd: fmt.Sprintf("lint %s", testChart),
|
||||||
|
golden: "output/lint-chart-with-bad-subcharts.txt",
|
||||||
|
wantError: false,
|
||||||
|
}, {
|
||||||
|
name: "lint good chart with bad subcharts using --with-subcharts flag",
|
||||||
|
cmd: fmt.Sprintf("lint --with-subcharts %s", testChart),
|
||||||
|
golden: "output/lint-chart-with-bad-subcharts-with-subcharts.txt",
|
||||||
|
wantError: true,
|
||||||
|
}}
|
||||||
|
runTestCmd(t, tests)
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
Copyright The Helm 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 main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRepoListOutputCompletion(t *testing.T) {
|
||||||
|
outputFlagCompletionTest(t, "repo list")
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
echo "plugin.complete was called"
|
||||||
|
echo "Namespace: ${HELM_NAMESPACE:-NO_NS}"
|
||||||
|
echo "Num args received: ${#}"
|
||||||
|
echo "Args received: ${@}"
|
||||||
|
|
||||||
|
# Final printout is the optional completion directive of the form :<directive>
|
||||||
|
if [ "$HELM_NAMESPACE" = "default" ]; then
|
||||||
|
echo ":4"
|
||||||
|
else
|
||||||
|
echo ":2"
|
||||||
|
fi
|
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
echo "echo plugin.complete was called"
|
||||||
|
echo "Namespace: ${HELM_NAMESPACE:-NO_NS}"
|
||||||
|
echo "Num args received: ${#}"
|
||||||
|
echo "Args received: ${@}"
|
||||||
|
|
||||||
|
# Final printout is the optional completion directive of the form :<directive>
|
||||||
|
if [ "$HELM_NAMESPACE" = "default" ]; then
|
||||||
|
# Output an invalid directive, which should be ignored
|
||||||
|
echo ":2222"
|
||||||
|
# else
|
||||||
|
# Don't include the directive, to test it is really optional
|
||||||
|
fi
|
@ -0,0 +1,13 @@
|
|||||||
|
name: env
|
||||||
|
commands:
|
||||||
|
- name: list
|
||||||
|
flags:
|
||||||
|
- a
|
||||||
|
- all
|
||||||
|
- log
|
||||||
|
- name: remove
|
||||||
|
validArgs:
|
||||||
|
- all
|
||||||
|
- one
|
||||||
|
flags:
|
||||||
|
- global
|
@ -0,0 +1,5 @@
|
|||||||
|
commands:
|
||||||
|
- name: code
|
||||||
|
flags:
|
||||||
|
- a
|
||||||
|
- b
|
@ -0,0 +1,19 @@
|
|||||||
|
name: wrongname
|
||||||
|
commands:
|
||||||
|
- name: empty
|
||||||
|
- name: full
|
||||||
|
commands:
|
||||||
|
- name: more
|
||||||
|
validArgs:
|
||||||
|
- one
|
||||||
|
- two
|
||||||
|
flags:
|
||||||
|
- b
|
||||||
|
- ball
|
||||||
|
- name: less
|
||||||
|
flags:
|
||||||
|
- a
|
||||||
|
- all
|
||||||
|
flags:
|
||||||
|
- z
|
||||||
|
- q
|
@ -0,0 +1,16 @@
|
|||||||
|
==> Linting testdata/testcharts/chart-with-bad-subcharts
|
||||||
|
[INFO] Chart.yaml: icon is recommended
|
||||||
|
[WARNING] templates/: directory not found
|
||||||
|
|
||||||
|
==> Linting testdata/testcharts/chart-with-bad-subcharts/charts/bad-subchart
|
||||||
|
[ERROR] Chart.yaml: name is required
|
||||||
|
[ERROR] Chart.yaml: apiVersion is required. The value must be either "v1" or "v2"
|
||||||
|
[ERROR] Chart.yaml: version is required
|
||||||
|
[INFO] Chart.yaml: icon is recommended
|
||||||
|
[WARNING] templates/: directory not found
|
||||||
|
|
||||||
|
==> Linting testdata/testcharts/chart-with-bad-subcharts/charts/good-subchart
|
||||||
|
[INFO] Chart.yaml: icon is recommended
|
||||||
|
[WARNING] templates/: directory not found
|
||||||
|
|
||||||
|
Error: 3 chart(s) linted, 1 chart(s) failed
|
@ -0,0 +1,5 @@
|
|||||||
|
==> Linting testdata/testcharts/chart-with-bad-subcharts
|
||||||
|
[INFO] Chart.yaml: icon is recommended
|
||||||
|
[WARNING] templates/: directory not found
|
||||||
|
|
||||||
|
1 chart(s) linted, 0 chart(s) failed
|
@ -0,0 +1,2 @@
|
|||||||
|
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
|
||||||
|
starlord milano 2 2016-01-16 00:00:01 +0000 UTC deployed chickadee-1.0.0 0.0.1
|
@ -0,0 +1,191 @@
|
|||||||
|
---
|
||||||
|
# Source: object-order/templates/01-a.yml
|
||||||
|
# 1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
metadata:
|
||||||
|
name: first
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/01-a.yml
|
||||||
|
# 2
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: second
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/01-a.yml
|
||||||
|
# 3
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: third
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 5
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: fifth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 7
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: seventh
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 8
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: eighth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 9
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: ninth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 10
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: tenth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 11
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: eleventh
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 12
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: twelfth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 13
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: thirteenth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 14
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: fourteenth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 15 (11th object within 02-b.yml, in order to test `SplitManifests` which assigns `manifest-10`
|
||||||
|
# to this object which should then come *after* `manifest-9`)
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: fifteenth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/01-a.yml
|
||||||
|
# 4 (Deployment should come after all NetworkPolicy manifests, since 'helm template' outputs in install order)
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: fourth
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
pod: fourth
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
pod: fourth
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: hello-world
|
||||||
|
image: gcr.io/google-samples/node-hello:1.0
|
||||||
|
---
|
||||||
|
# Source: object-order/templates/02-b.yml
|
||||||
|
# 6 (implementation detail: currently, 'helm template' outputs hook manifests last; and yes, NetworkPolicy won't make a reasonable hook, this is just a dummy unit test manifest)
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install
|
||||||
|
name: sixth
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
- Ingress
|
@ -0,0 +1,4 @@
|
|||||||
|
table
|
||||||
|
json
|
||||||
|
yaml
|
||||||
|
:0
|
@ -0,0 +1,5 @@
|
|||||||
|
plugin.complete was called
|
||||||
|
Namespace: default
|
||||||
|
Num args received: 1
|
||||||
|
Args received:
|
||||||
|
:4
|
@ -0,0 +1,5 @@
|
|||||||
|
plugin.complete was called
|
||||||
|
Namespace: default
|
||||||
|
Num args received: 2
|
||||||
|
Args received: --myflag
|
||||||
|
:4
|
@ -0,0 +1,5 @@
|
|||||||
|
plugin.complete was called
|
||||||
|
Namespace: mynamespace
|
||||||
|
Num args received: 2
|
||||||
|
Args received: --myflag start
|
||||||
|
:2
|
@ -0,0 +1,5 @@
|
|||||||
|
plugin.complete was called
|
||||||
|
Namespace: mynamespace
|
||||||
|
Num args received: 1
|
||||||
|
Args received:
|
||||||
|
:2
|
@ -0,0 +1,5 @@
|
|||||||
|
echo plugin.complete was called
|
||||||
|
Namespace: default
|
||||||
|
Num args received: 1
|
||||||
|
Args received:
|
||||||
|
:0
|
@ -0,0 +1,5 @@
|
|||||||
|
echo plugin.complete was called
|
||||||
|
Namespace: mynamespace
|
||||||
|
Num args received: 1
|
||||||
|
Args received:
|
||||||
|
:0
|
@ -0,0 +1,5 @@
|
|||||||
|
8
|
||||||
|
9
|
||||||
|
10
|
||||||
|
11
|
||||||
|
:0
|
@ -0,0 +1 @@
|
|||||||
|
:4
|
@ -0,0 +1,3 @@
|
|||||||
|
aramis
|
||||||
|
athos
|
||||||
|
:4
|
@ -0,0 +1 @@
|
|||||||
|
:4
|
@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
# Source: subchart1/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: subchart1
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: "subchart1-0.1.0"
|
||||||
|
app.kubernetes.io/instance: "RELEASE-NAME"
|
||||||
|
kube-version/major: "1"
|
||||||
|
kube-version/minor: "16"
|
||||||
|
kube-version/version: "v1.16.0"
|
||||||
|
kube-api-version/test: v1
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
name: nginx
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: subchart1
|
||||||
|
---
|
||||||
|
# Source: subchart1/charts/subcharta/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: subcharta
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: "subcharta-0.1.0"
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
name: apache
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: subcharta
|
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
# Source: subchart1/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: subchart1
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: "subchart1-0.1.0"
|
||||||
|
app.kubernetes.io/instance: "RELEASE-NAME"
|
||||||
|
kube-version/major: "1"
|
||||||
|
kube-version/minor: "16"
|
||||||
|
kube-version/version: "v1.16.0"
|
||||||
|
kube-api-version/test: v1
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
name: nginx
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: subchart1
|
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
# Source: chart-with-template-with-invalid-yaml/templates/alpine-pod.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: "RELEASE-NAME-my-alpine"
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: waiter
|
||||||
|
image: "alpine:3.9"
|
||||||
|
command: ["/bin/sleep","9000"]
|
||||||
|
invalid
|
||||||
|
Error: YAML parse error on chart-with-template-with-invalid-yaml/templates/alpine-pod.yaml: error converting YAML to JSON: yaml: line 11: could not find expected ':'
|
@ -0,0 +1,3 @@
|
|||||||
|
Error: YAML parse error on chart-with-template-with-invalid-yaml/templates/alpine-pod.yaml: error converting YAML to JSON: yaml: line 11: could not find expected ':'
|
||||||
|
|
||||||
|
Use --debug flag to render out invalid YAML
|
@ -1 +1 @@
|
|||||||
version.BuildInfo{Version:"v3.0", GitCommit:"", GitTreeState:"", GoVersion:""}
|
version.BuildInfo{Version:"v3.1", GitCommit:"", GitTreeState:"", GoVersion:""}
|
||||||
|
@ -1 +1 @@
|
|||||||
version.BuildInfo{Version:"v3.0", GitCommit:"", GitTreeState:"", GoVersion:""}
|
version.BuildInfo{Version:"v3.1", GitCommit:"", GitTreeState:"", GoVersion:""}
|
||||||
|
@ -1 +1 @@
|
|||||||
v3.0
|
v3.1
|
||||||
|
@ -1 +1 @@
|
|||||||
Version: v3.0
|
Version: v3.1
|
@ -1 +1 @@
|
|||||||
version.BuildInfo{Version:"v3.0", GitCommit:"", GitTreeState:"", GoVersion:""}
|
version.BuildInfo{Version:"v3.1", GitCommit:"", GitTreeState:"", GoVersion:""}
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
description: Chart with bad subcharts
|
||||||
|
name: chart-with-bad-subcharts
|
||||||
|
version: 0.0.1
|
@ -0,0 +1 @@
|
|||||||
|
description: Bad subchart
|
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
description: Good subchart
|
||||||
|
name: good-subchart
|
||||||
|
version: 0.0.1
|
@ -0,0 +1,5 @@
|
|||||||
|
dependencies:
|
||||||
|
- name: good-subchart
|
||||||
|
version: 0.0.1
|
||||||
|
- name: bad-subchart
|
||||||
|
version: 0.0.1
|
@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
description: Deploy a basic Alpine Linux pod
|
||||||
|
home: https://helm.sh/helm
|
||||||
|
name: chart-with-template-with-invalid-yaml
|
||||||
|
sources:
|
||||||
|
- https://github.com/helm/helm
|
||||||
|
version: 0.1.0
|
||||||
|
type: application
|
@ -0,0 +1,13 @@
|
|||||||
|
#Alpine: A simple Helm chart
|
||||||
|
|
||||||
|
Run a single pod of Alpine Linux.
|
||||||
|
|
||||||
|
This example was generated using the command `helm create alpine`.
|
||||||
|
|
||||||
|
The `templates/` directory contains a very simple pod resource with a
|
||||||
|
couple of parameters.
|
||||||
|
|
||||||
|
The `values.yaml` file contains the default values for the
|
||||||
|
`alpine-pod.yaml` template.
|
||||||
|
|
||||||
|
You can install this example using `helm install ./alpine`.
|
@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: "{{.Release.Name}}-{{.Values.Name}}"
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: waiter
|
||||||
|
image: "alpine:3.9"
|
||||||
|
command: ["/bin/sleep","9000"]
|
||||||
|
invalid
|
@ -0,0 +1 @@
|
|||||||
|
Name: my-alpine
|
@ -0,0 +1,22 @@
|
|||||||
|
# Patterns to ignore when building packages.
|
||||||
|
# This supports shell glob matching, relative path matching, and
|
||||||
|
# negation (prefixed with !). Only one pattern per line.
|
||||||
|
.DS_Store
|
||||||
|
# Common VCS dirs
|
||||||
|
.git/
|
||||||
|
.gitignore
|
||||||
|
.bzr/
|
||||||
|
.bzrignore
|
||||||
|
.hg/
|
||||||
|
.hgignore
|
||||||
|
.svn/
|
||||||
|
# Common backup files
|
||||||
|
*.swp
|
||||||
|
*.bak
|
||||||
|
*.tmp
|
||||||
|
*~
|
||||||
|
# Various IDEs
|
||||||
|
.project
|
||||||
|
.idea/
|
||||||
|
*.tmproj
|
||||||
|
.vscode/
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue