Skip to content

Commit fc7ae88

Browse files
committed
Revert "revert(helm): Replace VFS with embed for Helm chart rendering (#14206)"
This reverts commit e3ea351.
1 parent ebc5b23 commit fc7ae88

34 files changed

+176
-337
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ web/app/js/locales/_build
1212
web/app/js/locales/**/*.js
1313
web/app/yarn-error.log
1414
vendor
15-
**/*.gogen*
1615
**/*.swp
1716
**/charts/**/charts
1817
package-lock.json

bin/build-cli-bin

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ rootdir=$( cd "$bindir"/.. && pwd )
1717
cd "$rootdir"
1818
cd "$(pwd -P)"
1919
target=target/cli/$(os)/linkerd
20-
# TODO: `go generate` does not honor -mod=readonly
21-
GO111MODULE=on go generate -mod=readonly ./pkg/charts/static
22-
GO111MODULE=on go generate -mod=readonly ./jaeger/static
23-
GO111MODULE=on go generate -mod=readonly ./multicluster/static
24-
GO111MODULE=on go generate -mod=readonly ./viz/static
25-
20+
2621
root_tag=$("$bindir"/root-tag)
2722
GO111MODULE=on CGO_ENABLED=0 go build -o "$target" -tags prod -mod=readonly -ldflags "-s -w -X github.com/linkerd/linkerd2/pkg/version.Version=$root_tag" ./cli
2823
echo "$target"

charts/templates.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package charts
2+
3+
import (
4+
"embed"
5+
)
6+
7+
//go:embed linkerd-control-plane linkerd-crds linkerd2-cni all:partials patch
8+
var Templates embed.FS

cli/Dockerfile

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,6 @@ COPY controller/api controller/api
2222
COPY controller/gen controller/gen
2323
COPY pkg pkg
2424

25-
# Generate static templates
26-
# TODO: `go generate` does not honor -mod=readonly
27-
RUN go generate -mod=readonly ./pkg/charts/static
28-
RUN go generate -mod=readonly ./jaeger/static
29-
RUN go generate -mod=readonly ./multicluster/static
30-
RUN go generate -mod=readonly ./viz/static
31-
3225
RUN mkdir -p /out
3326

3427
FROM go-gen AS linux-amd64-full

cli/cmd/install-cni-plugin.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"os"
77
"strings"
88

9-
"github.com/linkerd/linkerd2/pkg/charts"
9+
"github.com/linkerd/linkerd2/charts"
10+
chartspkg "github.com/linkerd/linkerd2/pkg/charts"
1011
cnicharts "github.com/linkerd/linkerd2/pkg/charts/cni"
11-
"github.com/linkerd/linkerd2/pkg/charts/static"
1212
"github.com/linkerd/linkerd2/pkg/cmd"
1313
"github.com/linkerd/linkerd2/pkg/flags"
1414
"github.com/linkerd/linkerd2/pkg/version"
@@ -249,13 +249,13 @@ func renderCNIPlugin(w io.Writer, valOpts values.Options, config *cniPluginOptio
249249
{Name: "templates/cni-plugin.yaml"},
250250
}
251251

252-
ch := &charts.Chart{
252+
ch := &chartspkg.Chart{
253253
Name: helmCNIDefaultChartName,
254254
Dir: helmCNIDefaultChartDir,
255255
Namespace: defaultCNINamespace,
256256
Values: mergedValues,
257257
Files: files,
258-
Fs: static.Templates,
258+
Fs: charts.Templates,
259259
}
260260

261261
buf, err := ch.RenderCNI()

cli/cmd/install.go

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import (
1313
"text/template"
1414
"time"
1515

16+
"github.com/linkerd/linkerd2/charts"
1617
"github.com/linkerd/linkerd2/cli/flag"
17-
"github.com/linkerd/linkerd2/pkg/charts"
18+
chartspkg "github.com/linkerd/linkerd2/pkg/charts"
1819
l5dcharts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
19-
"github.com/linkerd/linkerd2/pkg/charts/static"
2020
pkgcmd "github.com/linkerd/linkerd2/pkg/cmd"
2121
flagspkg "github.com/linkerd/linkerd2/pkg/flags"
2222
"github.com/linkerd/linkerd2/pkg/healthcheck"
@@ -331,14 +331,11 @@ func isRunAsRoot(values map[string]interface{}) bool {
331331
// them into a buffer. The coalesced values are also returned so that they may be rendered via
332332
// `renderOverrides` if appropriate.
333333
func renderChartToBuffer(files []*loader.BufferedFile, values map[string]interface{}, valuesOverrides map[string]interface{}) (*bytes.Buffer, chartutil.Values, error) {
334-
// Load the partials in addition to the main chart.
335-
var partials []*loader.BufferedFile
336-
for _, template := range charts.L5dPartials {
337-
partials = append(partials, &loader.BufferedFile{Name: template})
338-
}
339-
if err := charts.FilesReader(static.Templates, "", partials); err != nil {
334+
partials, err := chartspkg.LoadPartials()
335+
if err != nil {
340336
return nil, nil, err
341337
}
338+
342339
chart, err := loader.LoadFiles(append(files, partials...))
343340
if err != nil {
344341
return nil, nil, err
@@ -435,13 +432,13 @@ func renderCRDs(ctx context.Context, k *k8s.KubernetesAPI, w io.Writer, options
435432
for _, template := range TemplatesCrdFiles {
436433
files = append(files, &loader.BufferedFile{Name: template})
437434
}
438-
if err := charts.FilesReader(static.Templates, l5dcharts.HelmChartDirCrds+"/", files); err != nil {
435+
if err := chartspkg.FilesReader(charts.Templates, l5dcharts.HelmChartDirCrds+"/", files); err != nil {
439436
return err
440437
}
441438

442439
// Load defaults from values.yaml
443440
valuesFile := &loader.BufferedFile{Name: l5dcharts.HelmChartDirCrds + "/values.yaml"}
444-
if err := charts.ReadFile(static.Templates, "/", valuesFile); err != nil {
441+
if err := chartspkg.ReadFile(charts.Templates, "", valuesFile); err != nil {
445442
return err
446443
}
447444
// Ensure the map is not nil, even if the default `values.yaml` is empty ---
@@ -470,7 +467,7 @@ func renderCRDs(ctx context.Context, k *k8s.KubernetesAPI, w io.Writer, options
470467
}
471468

472469
defaultValues = updateDefaultValues(installed, defaultValues)
473-
finalValues := charts.MergeMaps(defaultValues, valuesOverrides)
470+
finalValues := chartspkg.MergeMaps(defaultValues, valuesOverrides)
474471

475472
if err := validateFinalValues(installed, finalValues); err != nil {
476473
return err
@@ -492,7 +489,7 @@ func renderControlPlane(w io.Writer, values *l5dcharts.Values, valuesOverrides m
492489
for _, template := range TemplatesControlPlane {
493490
files = append(files, &loader.BufferedFile{Name: template})
494491
}
495-
if err := charts.FilesReader(static.Templates, l5dcharts.HelmChartDirCP+"/", files); err != nil {
492+
if err := chartspkg.FilesReader(charts.Templates, l5dcharts.HelmChartDirCP+"/", files); err != nil {
496493
return err
497494
}
498495

cli/cmd/install_helm_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import (
55
"path/filepath"
66
"testing"
77

8-
"github.com/linkerd/linkerd2/pkg/charts"
8+
"github.com/linkerd/linkerd2/charts"
9+
chartspkg "github.com/linkerd/linkerd2/pkg/charts"
910
l5dcharts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
10-
"github.com/linkerd/linkerd2/pkg/charts/static"
1111
"github.com/linkerd/linkerd2/pkg/k8s"
1212
"github.com/linkerd/linkerd2/testutil"
1313
"helm.sh/helm/v3/pkg/chart"
@@ -227,7 +227,7 @@ func chartCrds(t *testing.T) *chart.Chart {
227227

228228
// Load defaults from values.yaml
229229
valuesFile := &loader.BufferedFile{Name: l5dcharts.HelmChartDirCrds + "/values.yaml"}
230-
if err := charts.ReadFile(static.Templates, "/", valuesFile); err != nil {
230+
if err := chartspkg.ReadFile(charts.Templates, "", valuesFile); err != nil {
231231
t.Fatal(err)
232232
}
233233
defaultValues := make(map[string]interface{})

controller/Dockerfile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,12 @@ FROM go-deps AS golang
1414
WORKDIR /linkerd-build
1515
COPY controller/gen controller/gen
1616
COPY pkg pkg
17+
COPY charts charts
1718
COPY controller controller
1819
COPY charts/patch charts/patch
1920
COPY charts/partials charts/partials
2021
COPY multicluster multicluster
2122

22-
# Generate static templates
23-
# TODO: `go generate` does not honor -mod=readonly
24-
RUN go generate -mod=readonly ./pkg/charts/static
2523
ARG TARGETARCH
2624
RUN CGO_ENABLED=0 GOOS=linux GOARCH=$TARGETARCH go build -o /out/controller -tags prod -mod=readonly -ldflags "-s -w" ./controller/cmd
2725

jaeger/charts/templates.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package charts
2+
3+
import (
4+
"embed"
5+
)
6+
7+
//go:embed linkerd-jaeger
8+
var Templates embed.FS

jaeger/cmd/install.go

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ import (
88
"path"
99
"time"
1010

11-
"github.com/linkerd/linkerd2/jaeger/static"
12-
"github.com/linkerd/linkerd2/pkg/charts"
13-
partials "github.com/linkerd/linkerd2/pkg/charts/static"
11+
"github.com/linkerd/linkerd2/jaeger/charts"
12+
chartspkg "github.com/linkerd/linkerd2/pkg/charts"
1413
pkgcmd "github.com/linkerd/linkerd2/pkg/cmd"
1514
"github.com/linkerd/linkerd2/pkg/flags"
1615
"github.com/linkerd/linkerd2/pkg/healthcheck"
@@ -126,20 +125,13 @@ func render(w io.Writer, valuesOverrides map[string]interface{}, registry string
126125
)
127126
}
128127

129-
var partialFiles []*loader.BufferedFile
130-
for _, template := range charts.L5dPartials {
131-
partialFiles = append(partialFiles,
132-
&loader.BufferedFile{Name: template},
133-
)
134-
}
135-
136128
// Load all jaeger chart files into buffer
137-
if err := charts.FilesReader(static.Templates, "linkerd-jaeger/", files); err != nil {
129+
if err := chartspkg.FilesReader(charts.Templates, "linkerd-jaeger/", files); err != nil {
138130
return err
139131
}
140132

141-
// Load all partial chart files into buffer
142-
if err := charts.FilesReader(partials.Templates, "", partialFiles); err != nil {
133+
partialFiles, err := chartspkg.LoadPartials()
134+
if err != nil {
143135
return err
144136
}
145137

@@ -154,7 +146,7 @@ func render(w io.Writer, valuesOverrides map[string]interface{}, registry string
154146
return err
155147
}
156148

157-
vals, err = charts.InsertVersionValues(vals)
149+
vals, err = chartspkg.InsertVersionValues(vals)
158150
if err != nil {
159151
return err
160152
}

0 commit comments

Comments
 (0)