From 37920761a402ce824cbdfccf94292eaacfebfedf Mon Sep 17 00:00:00 2001 From: Rodrigue Cloutier Date: Fri, 2 Dec 2016 10:07:58 -0500 Subject: [PATCH] fix(helm): added support for compressed charts containing \ in file paths --- pkg/chartutil/chartfile_test.go | 8 ++++---- pkg/chartutil/load.go | 13 ++++++++++-- pkg/chartutil/load_test.go | 19 +++++++++++++++++- .../testdata/frobnitz_backslash-1.2.3.tgz | Bin 0 -> 3517 bytes .../testdata/frobnitz_backslash/.helmignore | 1 + .../testdata/frobnitz_backslash/Chart.yaml | 17 ++++++++++++++++ .../testdata/frobnitz_backslash/INSTALL.txt | 1 + .../testdata/frobnitz_backslash/LICENSE | 1 + .../testdata/frobnitz_backslash/README.md | 11 ++++++++++ .../frobnitz_backslash/charts/_ignore_me | 1 + .../charts/alpine/Chart.yaml | 4 ++++ .../charts/alpine/README.md | 9 +++++++++ .../charts/alpine/charts/mast1/Chart.yaml | 4 ++++ .../charts/alpine/charts/mast1/values.yaml | 4 ++++ .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 0 -> 325 bytes .../charts/alpine/templates/alpine-pod.yaml | 16 +++++++++++++++ .../charts/alpine/values.yaml | 2 ++ .../charts/mariner-4.3.2.tgz | Bin 0 -> 1034 bytes .../frobnitz_backslash/docs/README.md | 1 + .../testdata/frobnitz_backslash/icon.svg | 8 ++++++++ .../testdata/frobnitz_backslash/ignore/me.txt | 0 .../frobnitz_backslash/requirements.lock | 8 ++++++++ .../frobnitz_backslash/requirements.yaml | 7 +++++++ .../frobnitz_backslash/templates/template.tpl | 1 + .../testdata/frobnitz_backslash/values.yaml | 6 ++++++ 25 files changed, 135 insertions(+), 7 deletions(-) mode change 100644 => 100755 pkg/chartutil/chartfile_test.go mode change 100644 => 100755 pkg/chartutil/load_test.go create mode 100755 pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/.helmignore create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/Chart.yaml create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/INSTALL.txt create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/LICENSE create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/README.md create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/_ignore_me create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/README.md create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/values.yaml create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/templates/alpine-pod.yaml create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/values.yaml create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/docs/README.md create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/icon.svg create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/ignore/me.txt create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/requirements.lock create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/requirements.yaml create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/templates/template.tpl create mode 100755 pkg/chartutil/testdata/frobnitz_backslash/values.yaml diff --git a/pkg/chartutil/chartfile_test.go b/pkg/chartutil/chartfile_test.go old mode 100644 new mode 100755 index 4ccddd3d7..643d80052 --- a/pkg/chartutil/chartfile_test.go +++ b/pkg/chartutil/chartfile_test.go @@ -30,10 +30,10 @@ func TestLoadChartfile(t *testing.T) { t.Errorf("Failed to open %s: %s", testfile, err) return } - verifyChartfile(t, f) + verifyChartfile(t, f, "frobnitz") } -func verifyChartfile(t *testing.T, f *chart.Metadata) { +func verifyChartfile(t *testing.T, f *chart.Metadata, name string) { if f == nil { t.Fatal("Failed verifyChartfile because f is nil") @@ -44,8 +44,8 @@ func verifyChartfile(t *testing.T, f *chart.Metadata) { t.Errorf("Expected API Version %q, got %q", ApiVersionV1, f.ApiVersion) } - if f.Name != "frobnitz" { - t.Errorf("Expected frobnitz, got %s", f.Name) + if f.Name != name { + t.Errorf("Expected %s, got %s", name, f.Name) } if f.Description != "This is a frobnitz." { diff --git a/pkg/chartutil/load.go b/pkg/chartutil/load.go index 87ee8820c..1eb1bb3b2 100755 --- a/pkg/chartutil/load.go +++ b/pkg/chartutil/load.go @@ -84,8 +84,17 @@ func LoadArchive(in io.Reader) (*chart.Chart, error) { continue } - parts := strings.Split(hd.Name, "/") - n := strings.Join(parts[1:], "/") + // Archive could contain \ if generated on Windows + delimiter := "/" + if strings.ContainsRune(hd.Name, '\\') { + delimiter = "\\" + } + + parts := strings.Split(hd.Name, delimiter) + n := strings.Join(parts[1:], delimiter) + + // Normalize the path to the / delimiter + n = strings.Replace(n, delimiter, "/", -1) if parts[0] == "Chart.yaml" { return nil, errors.New("chart yaml not in base directory") diff --git a/pkg/chartutil/load_test.go b/pkg/chartutil/load_test.go old mode 100644 new mode 100755 index 9586e3036..606996ba4 --- a/pkg/chartutil/load_test.go +++ b/pkg/chartutil/load_test.go @@ -42,6 +42,18 @@ func TestLoadFile(t *testing.T) { verifyRequirements(t, c) } +// Packaging the chart on a Windows machine will produce an +// archive that has \\ as delimiters. Test that we support these archives +func TestLoadFileBackslash(t *testing.T) { + c, err := Load("testdata/frobnitz_backslash-1.2.3.tgz") + if err != nil { + t.Fatalf("Failed to load testdata: %s", err) + } + verifyChartFileAndTemplate(t, c, "frobnitz_backslash") + verifyChart(t, c) + verifyRequirements(t, c) +} + func verifyChart(t *testing.T, c *chart.Chart) { if c.Metadata.Name == "" { t.Fatalf("No chart metadata found on %v", c) @@ -142,7 +154,12 @@ func verifyRequirementsLock(t *testing.T, c *chart.Chart) { } func verifyFrobnitz(t *testing.T, c *chart.Chart) { - verifyChartfile(t, c.Metadata) + verifyChartFileAndTemplate(t, c, "frobnitz") +} + +func verifyChartFileAndTemplate(t *testing.T, c *chart.Chart, name string) { + + verifyChartfile(t, c.Metadata, name) if len(c.Templates) != 1 { t.Fatalf("Expected 1 template, got %d", len(c.Templates)) diff --git a/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz b/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz new file mode 100755 index 0000000000000000000000000000000000000000..dbd48feb0ba2f4309a75d29a1313f4f26ad136d7 GIT binary patch literal 3517 zcmV;u4MOrCiwG0|32ul0|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PLK5d=q85$EzYpG%B=gajWn;MHhiiCU8R_{+Hj>IiEQuVt0S;1>a4*TRQLQ6_APB43 zto$bkBJ@9DHW(USE7$cVtHBfnTB-RTmJ3Ow7)202ww}-rcbkZGGGn2L7=cd&ZoP(v zh!Pp6q`V*PU=UysAVK}N1lKqO4kiMJBsmjxI+#y#P8Q;nz-bstE+QwO>r-?VQ@+K7 zJ9)b%4|+X6u3SOT z*+^02uD^eJ+<+T3w|YcxOfB&5CRrCmtvCUM<6m#GhVXCJTg)o|kx)EH1%UwvxeN;d zB`D+}`9&^ccZsAt7vNfrHpmGkvjc{a9K_^{2vW*qp>1FblhXjh0}=!iG3{*z#ji-s z`JaHx6D?!s1rfGR8{zmT^!jG}TdgYpkx*cqbt<91QnkQ;#;{SNQ-==4rF^M%+6c?P z)u`_OZ;=}I_&i{EB#|r&Xn}HZke6^}V@dOp-ZpaEwc}F2%86=2+4qSpFVEA027eEjK$pL{RI1^Yo4T#VwAVv~IuR0t3q-ueG zWyH~hNr9u`B<@FB0mAXGCqnIi7L&=K@*fE)AR~w1VrgK5ATZ`Muz3|AS%IXX*bCTP zffIn7gQr**4e5Y|uYPv8)gMFEP3rskCs`-M!wIe64GhbFGyA{QVpaK%hyphIz*uXq zcmEB9PFC;&64*$@P#{&w1BNoZD<3!oTHEOOB5*xUXq)&3QKC+l*BjxCpmRW$Q|E`D zt-|u(3a5c^{G0Wm{(q~%pq~FDB4z!r-|Krw1niK9A}K){xDdnJm2Chea2(0gAV-E7 zP$DEH7@RY5@W62Zf*c8QPL`A)(&Ye}5g{dS-y0o@BydB~3lO6;zI{qe|7|1Q(#1SU;tvHzaTi0w24Hc@)*h0U%xDUAWaFd2((@=${4`<8x8_4MCvx-tH5E;J|{ z{|3D^lz+2Tuks%W#e;#(*G*-xajho4NeJM$)Tf3f!L!=WnQu zu={_)9Kyd|J`$+>M?hWY-V?Pde(cjxcbz?0HTgv%rtSG>uf@!+KKjP$5hp7T;cW~4 z>$9|MBD?6BLr1a}ZkW5lKY!kabDo9E9(=1RW8R=Xlm4}?$oAEsAsXtDbiA~8@%-*f z`;VQuIy0l!?xo%|!`c6N^Aj&T@lNOCweAaNhaK^p_~-u3)eBw2&V6Hfwte)4vZ^Oe zUyOymnDQlM=@Z9vJ)wK)zN`1@ci~_6nfAn{aUE72`p2ee#r~34jt*Zv19szM z;;vNJb}gUw?(5Umb*uJg&beB^-M?+=AKXP9ucXzDwEWHA(N>p!AnWrLzB{gz`q8*I zYW<(A%)R8#{9t*z$~9|hV)DR7-|(0|pZ95c<34=Vd-t|K#h#Dqe(MIW6%>~LhWUCz z$T{l&-$pq8E#^@E4OWwS{*Q>RkN?+d@)({@1j7YdtKpzT(xgN-iR~>Yz(+zBk_h6% zNDdYjCKMFlfkR>7y_}ULZIDGuDF7T$WF*plec4e^bTd>iI|v*xhSfI^T3s-`p_dI= zf>*#4@SIDKg1Jea7bGQSxxNROe0s-`Ll>}H&{!hCn)GEf!^s_@1fE8Pg_u@@oRCtA zictP)NW%q|p}cat^%e$f7<5As19&jUB&U)k(1D;$0*Zn56M}cnLoyN+13h9m<%VDZ zpc0L^5et6MfSn}~jK_2~hSwn$LMPS>>q8I(Ht{Ff9fjq;6`lqN$3I~TiT^VYdV^8r zKN5;pg8ZBUt$a@#g8VseLSX#WJ^3$N-_Jisit;p;V8V^K;fDA8O%;ZJnf7M(f1^d^ zKN6Dn|HV^l<^BJX0yZY?;a$2VqbGKq_VSzU-6J;+8BlY1+w9`nWaJ1>pyHF$9EG_3tg|vf=bpM&QZr!GAIlC-ig9I4%UIx=IHFT&+2cLLsC!nVyoxsM{Pz9jGy8)S z%?I7Z_(Ov`{`K7fIbD|gVd%XBw=THDc7NM{t|30MV1GOQc?Wmx?_-|*>M{ISe)^g< z$MDO?iMmH;`fA3w{~mo;?AQKMux7*KdwoxLnwVQRslCQWeYVIzY?%Mlzeeu*@Q-!t zhuDvot$Vr0MgNco(=zDv1&`?G$9);Ky4|LM({np_Jo5oQv0c=lj9unAFYbSIKInF8 z){NARcV=fqf74-?ruYJIq}VxKX6XMLi3`h%UK_c?R}+Ds_%XBGQ1o~q@b;8{RDN^_;QuyRwe|xU=TX&O={o^PfS}Q$8(! zKvTTz?%(|GzSzCiHkl`quRNJtdtl3m?iyR$Z|iKGcWR3U&#dhQ=D~x@_RhPO`Fcg_ z&X+o0-BA>02ko_I?)-B4pWi>T`BMI@r^;5o5z{uU=LKK+iV?pri~IZheQ2G3|Kl?{ z&U)L+*o$>zu&vqt?p3S zIjYq6G(0@5ZvUzDB6GHX#>#j7{vQ2Z6`fw#{_3j5ZSc6-@18lGlr!kS`^MR)EtTg# zS@_=JEh*cD)G@P?Bnf4%{lE+M3#P0iz3aZ5V{un-g=uDLt#}+;zoO zTm6UMS#B*pmwoBV_D)CEm5$$9b9|8}=|tcC!?(c79gDkE=C2r0u`T!7H|IR}O^uy; z&6roS`-(4m`4}p1=1R8W(^cnA?%iypd^=vAS###|z4@TBY6lvhw0>FTb3GsWy2?_s z=_@wzi1Xy!;ygpn;RToD+U=_9``W43lAQi5tF~_I*2#yj6mNfj)>!Ujm+wwypZ&I` z%g9-k%MS_%cb^{qZ~lBi`TA9*vEOo=eJ@vSXjlF4cIf-$*#92=@agEJnO)buQ?aOG z&%=cWyt}VHdeU7iela^b;elOcuNR^cpEJF@>+D^zue?2}_puLa;#T<$@t>XFF|Rs$ z8|SFHH~!eCD{CvJ71CdH$lKFXyHGgM#m;7*zp%pf!V%q~lKa}exFd(?to(a@cFG-# z|2it`Hb2Cwx@onr{?h`5S~Unb?Ec>zy8fGu>iQoUH5&MvJOQ9M0qP$Es(%3ZR`*oZ zPoWn0XDETkk=x#CZG_|BY;E@Zk6GnEGU}U>&#@rr&QHelIDw_~(`x!6w;kkjERPbA z+n$UCfAGWO@!%dKE{JxWfglJSa@(;$wjazAuxpBHI z3@tg5F@xEH0S9F44k`GCp_4HQA_?m!7wbzyMDU2sG9r>N zke`ehFyK}G1{*LDjrCgy4CFE_n~d?K+l%Q!DnW|XP^m?4R;n?DsYZmfQcGX?w)Fcs z%&9H#FT&?sj0okqAK|P(<^9+;!trlx_WZxaWK!dQA|e_(Ax}e|V&L@#>-v!3CL|^T zOmP4Q`D}bfr{&-M3D}XE))_P@g;uIqm~OCAnz2J9B?5+blPp9398kI~6^{Sb_!XdV z{2Q!9GyW~A{XZhQUHQM&_wARW7Wi-U_%{SfOU@rN34}fWhx-5YR+B}I|BHwQLzWdl rL4o3M2U8lN=rNBVvNTp$sG_Dyl`2)gNc~>`00960Byh^k09XJ3bP)Mp literal 0 HcmV?d00001 diff --git a/pkg/chartutil/testdata/frobnitz_backslash/.helmignore b/pkg/chartutil/testdata/frobnitz_backslash/.helmignore new file mode 100755 index 000000000..9973a57b8 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/.helmignore @@ -0,0 +1 @@ +ignore/ diff --git a/pkg/chartutil/testdata/frobnitz_backslash/Chart.yaml b/pkg/chartutil/testdata/frobnitz_backslash/Chart.yaml new file mode 100755 index 000000000..8b3e295c7 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/Chart.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +name: frobnitz_backslash +description: This is a frobnitz. +version: "1.2.3" +keywords: + - frobnitz + - sprocket + - dodad +maintainers: + - name: The Helm Team + email: helm@example.com + - name: Someone Else + email: nobody@example.com +sources: + - https://example.com/foo/bar +home: http://example.com +icon: https://example.com/64x64.png diff --git a/pkg/chartutil/testdata/frobnitz_backslash/INSTALL.txt b/pkg/chartutil/testdata/frobnitz_backslash/INSTALL.txt new file mode 100755 index 000000000..2010438c2 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/INSTALL.txt @@ -0,0 +1 @@ +This is an install document. The client may display this. diff --git a/pkg/chartutil/testdata/frobnitz_backslash/LICENSE b/pkg/chartutil/testdata/frobnitz_backslash/LICENSE new file mode 100755 index 000000000..6121943b1 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/LICENSE @@ -0,0 +1 @@ +LICENSE placeholder. diff --git a/pkg/chartutil/testdata/frobnitz_backslash/README.md b/pkg/chartutil/testdata/frobnitz_backslash/README.md new file mode 100755 index 000000000..8cf4cc3d7 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/README.md @@ -0,0 +1,11 @@ +# Frobnitz + +This is an example chart. + +## Usage + +This is an example. It has no usage. + +## Development + +For developer info, see the top-level repository. diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/_ignore_me b/pkg/chartutil/testdata/frobnitz_backslash/charts/_ignore_me new file mode 100755 index 000000000..2cecca682 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/_ignore_me @@ -0,0 +1 @@ +This should be ignored by the loader, but may be included in a chart. diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml new file mode 100755 index 000000000..38a4aaa54 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml @@ -0,0 +1,4 @@ +name: alpine +description: Deploy a basic Alpine Linux pod +version: 0.1.0 +home: https://k8s.io/helm diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/README.md b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/README.md new file mode 100755 index 000000000..a7c84fc41 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/README.md @@ -0,0 +1,9 @@ +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.toml` file contains the default values for the +`alpine-pod.yaml` template. + +You can install this example using `helm install docs/examples/alpine`. diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml new file mode 100755 index 000000000..171e36156 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml @@ -0,0 +1,4 @@ +name: mast1 +description: A Helm chart for Kubernetes +version: 0.1.0 +home: "" diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/values.yaml b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/values.yaml new file mode 100755 index 000000000..42c39c262 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/values.yaml @@ -0,0 +1,4 @@ +# Default values for mast1. +# This is a YAML-formatted file. +# Declare name/value pairs to be passed into your templates. +# name = "value" diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz new file mode 100755 index 0000000000000000000000000000000000000000..ced5a4a6adf946f76033b6ee584affc12433cb78 GIT binary patch literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB literal 0 HcmV?d00001 diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/templates/alpine-pod.yaml b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/templates/alpine-pod.yaml new file mode 100755 index 000000000..08cf3c2c1 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/templates/alpine-pod.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Pod +metadata: + name: {{.Release.Name}}-{{.Chart.Name}} + labels: + heritage: {{.Release.Service}} + chartName: {{.Chart.Name}} + chartVersion: {{.Chart.Version | quote}} + annotations: + "helm.sh/created": "{{.Release.Time.Seconds}}" +spec: + restartPolicy: {{default "Never" .restart_policy}} + containers: + - name: waiter + image: "alpine:3.3" + command: ["/bin/sleep","9000"] diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/values.yaml b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/values.yaml new file mode 100755 index 000000000..6c2aab7ba --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/values.yaml @@ -0,0 +1,2 @@ +# The pod name +name: "my-alpine" diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz b/pkg/chartutil/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz new file mode 100755 index 0000000000000000000000000000000000000000..3af333e76a3c268ce6d23f5ae8ba59387a75a38a GIT binary patch literal 1034 zcmV+l1oitLiwFRoe*ISf1MQf5Y!pQt$1j*vT_1mmq6v0Vv`Rzw_Pu%yR;*Eys*pfJ z2%2>6ZtiaDKCZKKh4VpUVhPw(Vq+5%p#1{`AAuCqVmyct4N85WAVyGp#n=>Wj1n4S z;p*((BjusRcz0-+&)sGA_I7u6_dCDuclIoZ4IANLpo|EDpsOnITP@cLl9Frl08!F) zQI-`+mw+HDk|+d#TF#Ryka7vc^i(WJNH|3z353tP9o;Mz`UG2>HDDfLsOK$)?XBLPk%{~bzM;vs=p>GasUXWKb3R2#PzqKg+d@d3b-h8BiKk1 z!?8nP9+;0z3q-t;0b&jY&8aZLHX_L7+7WjBjTBzyB`)E3N2#gdF81Xx{vn0>_f>Yw z69X6O|EeIVvL?{_R~21m{$B|S`eW3VGBC1`P25t)z?A;4N@wN2u8Au1|4I-=Nn}Tn z9Wjs_;sB@zxkP|w7!vHbE?oxzMoGsth=bE1kRT-KhJrz~0$NEE@e#)gp6Md~F2#hX z5qOaoSTy`MDJVw}6%*2EFGB=ep#M*v|4Cl`Gyg9?1^wHhnL;IZ{v1>Jzocru{;DFY zvZ8zXD}u!QzY@#>_o5g~nFQoUfIrdC4+@@}1r{d^7tl8ZOXofKKt27{yHO|#Vg~j8 zVi?2?l1PR9EFg|$)|=3d`%9eHLBxa@`N5JKXCMg;>;mF|u(#~G^mv9%zowlO21P6K z`p>0NjlUbqkkWIm|I;Rd5{?vdH?_;X^S7q6M{?qA4k~LcYf~K+m|0+Ut*A;=jm8X{kE*t&)SnE4r zM%A}7hwC=o@X3?4*}Ff!Z$VXtJ9Kn&ORKnfAk%L&Pun>D;)phO*KK{PKizeFOIz=n zy*o!wAB(P@-@O0Xt)Vxb?^^Wuz7^Z9s$0DG<(79l=RDI;yJg+Mmmb}CrBT z-!}KT=4?9KaOjJkYcgQjk@g!0$KO1e>6trl|4%m!{=B?u+4!Emw}w`2=pOv&TJ81s z9#V$gq1JEK%Ii?$Zt#20ucxXP^=-QPiQlpZ?i{{l`pMzO-oRHAJB1&st=E><&K!N! zdCK`A=yslR;D-|}568cpeRH7ta7WJ{hsPI;tY0|c!1o)c|1u-g@WGDm6TNL{-wPw* z(Wd>^e|==&5o^vX4U=!@9%pP?@baZ~f!i;ZpbQ3s!C){L3 + + Example icon + + + diff --git a/pkg/chartutil/testdata/frobnitz_backslash/ignore/me.txt b/pkg/chartutil/testdata/frobnitz_backslash/ignore/me.txt new file mode 100755 index 000000000..e69de29bb diff --git a/pkg/chartutil/testdata/frobnitz_backslash/requirements.lock b/pkg/chartutil/testdata/frobnitz_backslash/requirements.lock new file mode 100755 index 000000000..6fcc2ed9f --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/requirements.lock @@ -0,0 +1,8 @@ +dependencies: + - name: alpine + version: "0.1.0" + repository: https://example.com/charts + - name: mariner + version: "4.3.2" + repository: https://example.com/charts +digest: invalid diff --git a/pkg/chartutil/testdata/frobnitz_backslash/requirements.yaml b/pkg/chartutil/testdata/frobnitz_backslash/requirements.yaml new file mode 100755 index 000000000..5eb0bc98b --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/requirements.yaml @@ -0,0 +1,7 @@ +dependencies: + - name: alpine + version: "0.1.0" + repository: https://example.com/charts + - name: mariner + version: "4.3.2" + repository: https://example.com/charts diff --git a/pkg/chartutil/testdata/frobnitz_backslash/templates/template.tpl b/pkg/chartutil/testdata/frobnitz_backslash/templates/template.tpl new file mode 100755 index 000000000..c651ee6a0 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/templates/template.tpl @@ -0,0 +1 @@ +Hello {{.Name | default "world"}} diff --git a/pkg/chartutil/testdata/frobnitz_backslash/values.yaml b/pkg/chartutil/testdata/frobnitz_backslash/values.yaml new file mode 100755 index 000000000..61f501258 --- /dev/null +++ b/pkg/chartutil/testdata/frobnitz_backslash/values.yaml @@ -0,0 +1,6 @@ +# A values file contains configuration. + +name: "Some Name" + +section: + name: "Name in a section"