Skip to content

Commit ac79c7d

Browse files
committed
Remove experimental pattern code (old plugin system)
Signed-off-by: Adrian Orive <[email protected]>
1 parent 5f037f4 commit ac79c7d

File tree

15 files changed

+18
-722
lines changed

15 files changed

+18
-722
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ test-unit: ## Run the unit tests
9797
.PHONY: test-coverage
9898
test-coverage: ## Run unit tests creating the output to report coverage
9999
- rm -rf *.out # Remove all coverage files if exists
100-
go test -race -failfast -tags=integration -coverprofile=coverage-all.out ./cmd/... ./pkg/... ./plugins/...
100+
go test -race -failfast -tags=integration -coverprofile=coverage-all.out ./cmd/... ./pkg/...
101101

102102
.PHONY: test-integration
103103
test-integration: ## Run the integration tests

pkg/model/plugin.go

-48
This file was deleted.

pkg/plugins/golang/v2/api.go

+1-38
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,23 @@ import (
2121
"errors"
2222
"fmt"
2323
"os"
24-
"strings"
2524

2625
"github.com/spf13/afero"
2726
"github.com/spf13/pflag"
2827

2928
"sigs.k8s.io/kubebuilder/v3/pkg/config"
30-
"sigs.k8s.io/kubebuilder/v3/pkg/model"
3129
"sigs.k8s.io/kubebuilder/v3/pkg/model/resource"
3230
"sigs.k8s.io/kubebuilder/v3/pkg/plugin"
3331
goPlugin "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang"
3432
"sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds"
3533
"sigs.k8s.io/kubebuilder/v3/pkg/plugins/internal/util"
36-
"sigs.k8s.io/kubebuilder/v3/plugins/addon"
3734
)
3835

3936
var _ plugin.CreateAPISubcommand = &createAPISubcommand{}
4037

4138
type createAPISubcommand struct {
4239
config config.Config
4340

44-
// pattern indicates that we should use a plugin to build according to a pattern
45-
pattern string
46-
4741
options *goPlugin.Options
4842

4943
resource *resource.Resource
@@ -91,11 +85,6 @@ After the scaffold is written, api will run make on the project.
9185
func (p *createAPISubcommand) BindFlags(fs *pflag.FlagSet) {
9286
fs.BoolVar(&p.runMake, "make", true, "if true, run `make generate` after generating files")
9387

94-
if os.Getenv("KUBEBUILDER_ENABLE_PLUGINS") != "" {
95-
fs.StringVar(&p.pattern, "pattern", "",
96-
"generates an API following an extension pattern (addon)")
97-
}
98-
9988
fs.BoolVar(&p.force, "force", false,
10089
"attempt to create resource even if it already exists")
10190

@@ -163,38 +152,12 @@ func (p *createAPISubcommand) InjectResource(res *resource.Resource) error {
163152
}
164153

165154
func (p *createAPISubcommand) Scaffold(fs afero.Fs) error {
166-
// Load the requested plugins
167-
plugins := make([]model.Plugin, 0)
168-
switch strings.ToLower(p.pattern) {
169-
case "":
170-
// Default pattern
171-
case "addon":
172-
plugins = append(plugins, &addon.Plugin{})
173-
default:
174-
return fmt.Errorf("unknown pattern %q", p.pattern)
175-
}
176-
177-
scaffolder := scaffolds.NewAPIScaffolder(p.config, *p.resource, p.force, plugins)
155+
scaffolder := scaffolds.NewAPIScaffolder(p.config, *p.resource, p.force)
178156
scaffolder.InjectFS(fs)
179157
return scaffolder.Scaffold()
180158
}
181159

182160
func (p *createAPISubcommand) PostScaffold() error {
183-
// Load the requested plugins
184-
switch strings.ToLower(p.pattern) {
185-
case "":
186-
// Default pattern
187-
case "addon":
188-
// Ensure that we are pinning sigs.k8s.io/kubebuilder-declarative-pattern version
189-
err := util.RunCmd("Get controller runtime", "go", "get",
190-
"sigs.k8s.io/kubebuilder-declarative-pattern@"+scaffolds.KbDeclarativePattern)
191-
if err != nil {
192-
return err
193-
}
194-
default:
195-
return fmt.Errorf("unknown pattern %q", p.pattern)
196-
}
197-
198161
if p.runMake && p.resource.HasAPI() {
199162
return util.RunCmd("Running make", "make", "generate")
200163
}

pkg/plugins/golang/v2/scaffolds/api.go

+3-8
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,6 @@ type apiScaffolder struct {
5353
// fs is the filesystem that will be used by the scaffolder
5454
fs afero.Fs
5555

56-
// plugins is the list of plugins we should allow to transform our generated scaffolding
57-
plugins []model.Plugin
58-
5956
// force indicates whether to scaffold controller files even if it exists or not
6057
force bool
6158
}
@@ -65,12 +62,10 @@ func NewAPIScaffolder(
6562
config config.Config,
6663
res resource.Resource,
6764
force bool,
68-
plugins []model.Plugin,
6965
) cmdutil.Scaffolder {
7066
return &apiScaffolder{
7167
config: config,
7268
resource: res,
73-
plugins: plugins,
7469
force: force,
7570
}
7671
}
@@ -117,7 +112,7 @@ func (s *apiScaffolder) Scaffold() error {
117112

118113
if doAPI {
119114

120-
if err := machinery.NewScaffold(s.fs, s.plugins...).Execute(
115+
if err := machinery.NewScaffold(s.fs).Execute(
121116
s.newUniverse(),
122117
&api.Types{Force: s.force},
123118
&api.Group{},
@@ -141,7 +136,7 @@ func (s *apiScaffolder) Scaffold() error {
141136
}
142137

143138
if doController {
144-
if err := machinery.NewScaffold(s.fs, s.plugins...).Execute(
139+
if err := machinery.NewScaffold(s.fs).Execute(
145140
s.newUniverse(),
146141
&controllers.SuiteTest{Force: s.force},
147142
&controllers.Controller{ControllerRuntimeVersion: ControllerRuntimeVersion, Force: s.force},
@@ -150,7 +145,7 @@ func (s *apiScaffolder) Scaffold() error {
150145
}
151146
}
152147

153-
if err := machinery.NewScaffold(s.fs, s.plugins...).Execute(
148+
if err := machinery.NewScaffold(s.fs).Execute(
154149
s.newUniverse(),
155150
&templates.MainUpdater{WireResource: doAPI, WireController: doController},
156151
); err != nil {

pkg/plugins/golang/v3/api.go

+1-40
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,16 @@ import (
2121
"errors"
2222
"fmt"
2323
"os"
24-
"strings"
2524

2625
"github.com/spf13/afero"
2726
"github.com/spf13/pflag"
2827

2928
"sigs.k8s.io/kubebuilder/v3/pkg/config"
30-
"sigs.k8s.io/kubebuilder/v3/pkg/model"
3129
"sigs.k8s.io/kubebuilder/v3/pkg/model/resource"
3230
"sigs.k8s.io/kubebuilder/v3/pkg/plugin"
3331
goPlugin "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang"
3432
"sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds"
3533
"sigs.k8s.io/kubebuilder/v3/pkg/plugins/internal/util"
36-
"sigs.k8s.io/kubebuilder/v3/plugins/addon"
3734
)
3835

3936
const (
@@ -54,9 +51,6 @@ var _ plugin.CreateAPISubcommand = &createAPISubcommand{}
5451
type createAPISubcommand struct {
5552
config config.Config
5653

57-
// pattern indicates that we should use a plugin to build according to a pattern
58-
pattern string
59-
6054
options *goPlugin.Options
6155

6256
resource *resource.Resource
@@ -104,12 +98,6 @@ After the scaffold is written, api will run make on the project.
10498
func (p *createAPISubcommand) BindFlags(fs *pflag.FlagSet) {
10599
fs.BoolVar(&p.runMake, "make", true, "if true, run `make generate` after generating files")
106100

107-
// TODO: remove this when a better solution for using addons is implemented.
108-
if os.Getenv("KUBEBUILDER_ENABLE_PLUGINS") != "" {
109-
fs.StringVar(&p.pattern, "pattern", "",
110-
"generates an API following an extension pattern (addon)")
111-
}
112-
113101
fs.BoolVar(&p.force, "force", false,
114102
"attempt to create resource even if it already exists")
115103

@@ -195,39 +183,12 @@ func (p *createAPISubcommand) PreScaffold(afero.Fs) error {
195183
}
196184

197185
func (p *createAPISubcommand) Scaffold(fs afero.Fs) error {
198-
// Load the requested plugins
199-
plugins := make([]model.Plugin, 0)
200-
switch strings.ToLower(p.pattern) {
201-
case "":
202-
// Default pattern
203-
case "addon":
204-
plugins = append(plugins, &addon.Plugin{})
205-
default:
206-
return fmt.Errorf("unknown pattern %q", p.pattern)
207-
}
208-
209-
scaffolder := scaffolds.NewAPIScaffolder(p.config, *p.resource, p.force, plugins)
186+
scaffolder := scaffolds.NewAPIScaffolder(p.config, *p.resource, p.force)
210187
scaffolder.InjectFS(fs)
211188
return scaffolder.Scaffold()
212189
}
213190

214191
func (p *createAPISubcommand) PostScaffold() error {
215-
// Load the requested plugins
216-
switch strings.ToLower(p.pattern) {
217-
case "":
218-
// Default pattern
219-
case "addon":
220-
// Ensure that we are pinning sigs.k8s.io/kubebuilder-declarative-pattern version
221-
// TODO: either find a better way to inject this version (ex. tools.go).
222-
err := util.RunCmd("Get kubebuilder-declarative-pattern dependency", "go", "get",
223-
"sigs.k8s.io/kubebuilder-declarative-pattern@"+KbDeclarativePatternVersion)
224-
if err != nil {
225-
return err
226-
}
227-
default:
228-
return fmt.Errorf("unknown pattern %q", p.pattern)
229-
}
230-
231192
if p.runMake && p.resource.HasAPI() {
232193
return util.RunCmd("Running make", "make", "generate")
233194
}

pkg/plugins/golang/v3/scaffolds/api.go

+3-8
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ type apiScaffolder struct {
4848
// fs is the filesystem that will be used by the scaffolder
4949
fs afero.Fs
5050

51-
// plugins is the list of plugins we should allow to transform our generated scaffolding
52-
plugins []model.Plugin
53-
5451
// force indicates whether to scaffold controller files even if it exists or not
5552
force bool
5653
}
@@ -60,12 +57,10 @@ func NewAPIScaffolder(
6057
config config.Config,
6158
res resource.Resource,
6259
force bool,
63-
plugins []model.Plugin,
6460
) cmdutil.Scaffolder {
6561
return &apiScaffolder{
6662
config: config,
6763
resource: res,
68-
plugins: plugins,
6964
force: force,
7065
}
7166
}
@@ -104,7 +99,7 @@ func (s *apiScaffolder) Scaffold() error {
10499

105100
if doAPI {
106101

107-
if err := machinery.NewScaffold(s.fs, s.plugins...).Execute(
102+
if err := machinery.NewScaffold(s.fs).Execute(
108103
s.newUniverse(),
109104
&api.Types{Force: s.force},
110105
&api.Group{},
@@ -128,7 +123,7 @@ func (s *apiScaffolder) Scaffold() error {
128123
}
129124

130125
if doController {
131-
if err := machinery.NewScaffold(s.fs, s.plugins...).Execute(
126+
if err := machinery.NewScaffold(s.fs).Execute(
132127
s.newUniverse(),
133128
&controllers.SuiteTest{Force: s.force},
134129
&controllers.Controller{ControllerRuntimeVersion: ControllerRuntimeVersion, Force: s.force},
@@ -137,7 +132,7 @@ func (s *apiScaffolder) Scaffold() error {
137132
}
138133
}
139134

140-
if err := machinery.NewScaffold(s.fs, s.plugins...).Execute(
135+
if err := machinery.NewScaffold(s.fs).Execute(
141136
s.newUniverse(),
142137
&templates.MainUpdater{WireResource: doAPI, WireController: doController},
143138
); err != nil {

pkg/plugins/internal/machinery/scaffold.go

+2-15
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,13 @@ type Scaffold interface {
4848

4949
// scaffold implements Scaffold interface
5050
type scaffold struct {
51-
// plugins is the list of plugins we should allow to transform our generated scaffolding
52-
plugins []model.Plugin
53-
5451
// fs allows to mock the file system for tests
5552
fs filesystem.FileSystem
5653
}
5754

5855
// NewScaffold returns a new Scaffold with the provided plugins
59-
func NewScaffold(fs afero.Fs, plugins ...model.Plugin) Scaffold {
60-
return &scaffold{
61-
plugins: plugins,
62-
fs: filesystem.New(fs),
63-
}
56+
func NewScaffold(fs afero.Fs) Scaffold {
57+
return &scaffold{fs: filesystem.New(fs)}
6458
}
6559

6660
// Execute implements Scaffold.Execute
@@ -99,13 +93,6 @@ func (s *scaffold) Execute(universe *model.Universe, files ...file.Builder) erro
9993
}
10094
}
10195

102-
// Execute plugins
103-
for _, plugin := range s.plugins {
104-
if err := plugin.Pipe(universe); err != nil {
105-
return model.NewPluginError(err)
106-
}
107-
}
108-
10996
// Persist the files to disk
11097
for _, f := range universe.Files {
11198
if err := s.writeFile(f); err != nil {

0 commit comments

Comments
 (0)