1
1
package kustomize
2
2
3
3
import (
4
+ "bytes"
4
5
"path/filepath"
6
+ "strings"
7
+
8
+ fleet "github.com/rancher/fleet/pkg/apis/fleet.cattle.io/v1alpha1"
5
9
6
10
"github.com/rancher/fleet/pkg/content"
7
11
"github.com/rancher/fleet/pkg/manifest"
@@ -11,7 +15,7 @@ import (
11
15
"k8s.io/apimachinery/pkg/runtime"
12
16
"sigs.k8s.io/kustomize/api/filesys"
13
17
"sigs.k8s.io/kustomize/api/krusty"
14
- "sigs.k8s.io/kustomize/api/types "
18
+ "sigs.k8s.io/kustomize/kustomize/v4/commands/build "
15
19
"sigs.k8s.io/yaml"
16
20
)
17
21
@@ -20,7 +24,8 @@ const (
20
24
ManifestsYAML = "fleet-manifests.yaml"
21
25
)
22
26
23
- func Process (m * manifest.Manifest , content []byte , dir string ) ([]runtime.Object , bool , error ) {
27
+ func Process (m * manifest.Manifest , content []byte , options fleet.KustomizeOptions ) ([]runtime.Object , bool , error ) {
28
+ dir := options .Dir
24
29
if dir == "" {
25
30
dir = "."
26
31
}
@@ -41,7 +46,7 @@ func Process(m *manifest.Manifest, content []byte, dir string) ([]runtime.Object
41
46
}
42
47
}
43
48
44
- objs , err := kustomize (fs , dir )
49
+ objs , err := kustomize (fs , dir , options . BuildOptions )
45
50
return objs , true , err
46
51
}
47
52
@@ -90,13 +95,17 @@ func toFilesystem(m *manifest.Manifest, dir string, manifestsContent []byte) (fi
90
95
return f , err
91
96
}
92
97
93
- func kustomize (fs filesys.FileSystem , dir string ) (result []runtime.Object , err error ) {
94
- pcfg := types .DisabledPluginConfig ()
95
- kust := krusty .MakeKustomizer (& krusty.Options {
96
- LoadRestrictions : types .LoadRestrictionsRootOnly ,
97
- PluginConfig : pcfg ,
98
- })
99
- resMap , err := kust .Run (fs , dir )
98
+ func kustomize (fs filesys.FileSystem , dir string , buildOptions string ) (result []runtime.Object , err error ) {
99
+ buildOpts := strings .Split (buildOptions , " " )
100
+ cmd := build .NewCmdBuild (fs , build .MakeHelp ("kustomize" , "build" ), new (bytes.Buffer ))
101
+ cmd .Flags ().Parse (buildOpts )
102
+ if err := build .Validate ([]string {dir }); err != nil {
103
+ return nil , err
104
+ }
105
+ k := krusty .MakeKustomizer (
106
+ build .HonorKustomizeFlags (krusty .MakeDefaultOptions ()),
107
+ )
108
+ resMap , err := k .Run (fs , dir )
100
109
if err != nil {
101
110
return nil , err
102
111
}
0 commit comments