@@ -25,16 +25,15 @@ import (
25
25
"sigs.k8s.io/kubebuilder/pkg/model"
26
26
"sigs.k8s.io/kubebuilder/pkg/model/file"
27
27
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/machinery"
28
- "sigs.k8s.io/kubebuilder/pkg/scaffold/project"
29
- scaffoldv1 "sigs.k8s.io/kubebuilder/pkg/scaffold/v1"
30
- managerv1 "sigs.k8s.io/kubebuilder/pkg/scaffold/v1/manager"
31
- metricsauthv1 "sigs.k8s.io/kubebuilder/pkg/scaffold/v1/metricsauth"
32
- scaffoldv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/v2"
33
- certmanagerv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/v2/certmanager"
34
- managerv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/v2/manager"
35
- metricsauthv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/v2/metricsauth"
36
- prometheusv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/v2/prometheus"
37
- webhookv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/v2/webhook"
28
+ templatesv1 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v1"
29
+ managerv1 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v1/manager"
30
+ metricsauthv1 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v1/metricsauth"
31
+ templatesv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v2"
32
+ certmanagerv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v2/certmanager"
33
+ managerv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v2/manager"
34
+ metricsauthv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v2/metricsauth"
35
+ prometheusv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v2/prometheus"
36
+ webhookv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/v2/webhook"
38
37
)
39
38
40
39
const (
@@ -49,7 +48,6 @@ const (
49
48
type initScaffolder struct {
50
49
config * config.Config
51
50
boilerplatePath string
52
- boilerplate string
53
51
license string
54
52
owner string
55
53
}
@@ -63,10 +61,10 @@ func NewInitScaffolder(config *config.Config, license, owner string) Scaffolder
63
61
}
64
62
}
65
63
66
- func (s * initScaffolder ) newUniverse () * model.Universe {
64
+ func (s * initScaffolder ) newUniverse (boilerplate string ) * model.Universe {
67
65
return model .NewUniverse (
68
66
model .WithConfig (& s .config .Config ),
69
- model .WithBoilerplate (s . boilerplate ),
67
+ model .WithBoilerplate (boilerplate ),
70
68
)
71
69
}
72
70
@@ -77,9 +75,20 @@ func (s *initScaffolder) Scaffold() error {
77
75
return err
78
76
}
79
77
78
+ switch {
79
+ case s .config .IsV1 ():
80
+ return s .scaffoldV1 ()
81
+ case s .config .IsV2 ():
82
+ return s .scaffoldV2 ()
83
+ default :
84
+ return fmt .Errorf ("unknown project version %v" , s .config .Version )
85
+ }
86
+ }
87
+
88
+ func (s * initScaffolder ) scaffoldV1 () error {
80
89
if err := machinery .NewScaffold ().Execute (
81
- s .newUniverse (), // Boilerplate is still empty by this call as desired
82
- & project .Boilerplate {
90
+ s .newUniverse ("" ),
91
+ & templatesv1 .Boilerplate {
83
92
Input : file.Input {Path : s .boilerplatePath },
84
93
License : s .license ,
85
94
Owner : s .owner ,
@@ -88,45 +97,27 @@ func (s *initScaffolder) Scaffold() error {
88
97
return err
89
98
}
90
99
91
- boilerplateBytes , err := ioutil .ReadFile (s .boilerplatePath ) // nolint:gosec
100
+ boilerplate , err := ioutil .ReadFile (s .boilerplatePath ) // nolint:gosec
92
101
if err != nil {
93
102
return err
94
103
}
95
- s .boilerplate = string (boilerplateBytes )
96
-
97
- if err := machinery .NewScaffold ().Execute (
98
- s .newUniverse (),
99
- & project.GitIgnore {},
100
- & project.AuthProxyRole {},
101
- & project.AuthProxyRoleBinding {},
102
- ); err != nil {
103
- return err
104
- }
105
-
106
- switch {
107
- case s .config .IsV1 ():
108
- return s .scaffoldV1 ()
109
- case s .config .IsV2 ():
110
- return s .scaffoldV2 ()
111
- default :
112
- return fmt .Errorf ("unknown project version %v" , s .config .Version )
113
- }
114
- }
115
104
116
- func (s * initScaffolder ) scaffoldV1 () error {
117
105
return machinery .NewScaffold ().Execute (
118
- s .newUniverse (),
119
- & project.KustomizeRBAC {},
120
- & scaffoldv1.KustomizeImagePatch {},
106
+ s .newUniverse (string (boilerplate )),
107
+ & templatesv1.GitIgnore {},
108
+ & templatesv1.AuthProxyRole {},
109
+ & templatesv1.AuthProxyRoleBinding {},
110
+ & templatesv1.KustomizeRBAC {},
111
+ & templatesv1.KustomizeImagePatch {},
121
112
& metricsauthv1.KustomizePrometheusMetricsPatch {},
122
113
& metricsauthv1.KustomizeAuthProxyPatch {},
123
- & scaffoldv1 .AuthProxyService {},
114
+ & templatesv1 .AuthProxyService {},
124
115
& managerv1.Config {Image : ImageName },
125
- & project .Makefile {Image : ImageName },
126
- & project .GopkgToml {},
116
+ & templatesv1 .Makefile {Image : ImageName },
117
+ & templatesv1 .GopkgToml {},
127
118
& managerv1.Dockerfile {},
128
- & project .Kustomize {},
129
- & project .KustomizeManager {},
119
+ & templatesv1 .Kustomize {},
120
+ & templatesv1 .KustomizeManager {},
130
121
& managerv1.APIs {BoilerplatePath : s .boilerplatePath },
131
122
& managerv1.Controller {},
132
123
& managerv1.Webhook {},
@@ -135,26 +126,45 @@ func (s *initScaffolder) scaffoldV1() error {
135
126
}
136
127
137
128
func (s * initScaffolder ) scaffoldV2 () error {
129
+ if err := machinery .NewScaffold ().Execute (
130
+ s .newUniverse ("" ),
131
+ & templatesv2.Boilerplate {
132
+ Input : file.Input {Path : s .boilerplatePath },
133
+ License : s .license ,
134
+ Owner : s .owner ,
135
+ },
136
+ ); err != nil {
137
+ return err
138
+ }
139
+
140
+ boilerplate , err := ioutil .ReadFile (s .boilerplatePath ) // nolint:gosec
141
+ if err != nil {
142
+ return err
143
+ }
144
+
138
145
return machinery .NewScaffold ().Execute (
139
- s .newUniverse (),
146
+ s .newUniverse (string (boilerplate )),
147
+ & templatesv2.GitIgnore {},
148
+ & templatesv2.AuthProxyRole {},
149
+ & templatesv2.AuthProxyRoleBinding {},
140
150
& metricsauthv2.AuthProxyPatch {},
141
151
& metricsauthv2.AuthProxyService {},
142
152
& metricsauthv2.ClientClusterRole {},
143
153
& managerv2.Config {Image : ImageName },
144
- & scaffoldv2 .Main {},
145
- & scaffoldv2 .GoMod {ControllerRuntimeVersion : ControllerRuntimeVersion },
146
- & scaffoldv2 .Makefile {
154
+ & templatesv2 .Main {},
155
+ & templatesv2 .GoMod {ControllerRuntimeVersion : ControllerRuntimeVersion },
156
+ & templatesv2 .Makefile {
147
157
Image : ImageName ,
148
158
BoilerplatePath : s .boilerplatePath ,
149
159
ControllerToolsVersion : ControllerToolsVersion ,
150
160
},
151
- & scaffoldv2 .Dockerfile {},
152
- & scaffoldv2 .Kustomize {},
153
- & scaffoldv2 .ManagerWebhookPatch {},
154
- & scaffoldv2 .ManagerRoleBinding {},
155
- & scaffoldv2 .LeaderElectionRole {},
156
- & scaffoldv2 .LeaderElectionRoleBinding {},
157
- & scaffoldv2 .KustomizeRBAC {},
161
+ & templatesv2 .Dockerfile {},
162
+ & templatesv2 .Kustomize {},
163
+ & templatesv2 .ManagerWebhookPatch {},
164
+ & templatesv2 .ManagerRoleBinding {},
165
+ & templatesv2 .LeaderElectionRole {},
166
+ & templatesv2 .LeaderElectionRoleBinding {},
167
+ & templatesv2 .KustomizeRBAC {},
158
168
& managerv2.Kustomization {},
159
169
& webhookv2.Kustomization {},
160
170
& webhookv2.KustomizeConfigWebhook {},
0 commit comments