Skip to content

Commit cd0c142

Browse files
committed
All scaffold templates and machinery are housed under pkg/plugin since
that machinery directly and only relates to plugins. Scaffold templates are also versioned with plugin major version, ex. pkg/plugin/v2.
1 parent 44997bf commit cd0c142

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+66
-59
lines changed

cmd/edit.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ import (
2424

2525
"sigs.k8s.io/kubebuilder/internal/cmdutil"
2626
"sigs.k8s.io/kubebuilder/internal/config"
27-
"sigs.k8s.io/kubebuilder/pkg/scaffold"
27+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
28+
scaffolds "sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds"
2829
)
2930

3031
type editError struct {
@@ -80,7 +81,7 @@ func (o *editOptions) Validate() error {
8081
}
8182

8283
func (o *editOptions) GetScaffolder() (scaffold.Scaffolder, error) {
83-
return scaffold.NewEditScaffolder(&o.config.Config, o.multigroup), nil
84+
return scaffolds.NewEditScaffolder(&o.config.Config, o.multigroup), nil
8485
}
8586

8687
func (o *editOptions) PostScaffold() error {

internal/cmdutil/cmdutil.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limitations under the License.
1717
package cmdutil
1818

1919
import (
20-
"sigs.k8s.io/kubebuilder/pkg/scaffold"
20+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
2121
)
2222

2323
// RunOptions represent the types used to implement the different commands

pkg/scaffold/internal/machinery/scaffold.go renamed to pkg/plugin/internal/machinery/scaffold.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929

3030
"sigs.k8s.io/kubebuilder/pkg/model"
3131
"sigs.k8s.io/kubebuilder/pkg/model/file"
32-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/filesystem"
32+
"sigs.k8s.io/kubebuilder/pkg/plugin/internal/filesystem"
3333
)
3434

3535
var options = imports.Options{

pkg/scaffold/internal/machinery/scaffold_test.go renamed to pkg/plugin/internal/machinery/scaffold_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525

2626
"sigs.k8s.io/kubebuilder/pkg/model"
2727
"sigs.k8s.io/kubebuilder/pkg/model/file"
28-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/filesystem"
28+
"sigs.k8s.io/kubebuilder/pkg/plugin/internal/filesystem"
2929
)
3030

3131
func TestScaffold(t *testing.T) {

pkg/plugin/internal/exec.go renamed to pkg/plugin/internal/pluginutil/exec.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package internal
17+
package pluginutil
1818

1919
import (
2020
"fmt"

pkg/plugin/internal/go_version.go renamed to pkg/plugin/internal/pluginutil/go_version.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package internal
17+
package pluginutil
1818

1919
import (
2020
"fmt"

pkg/plugin/internal/go_version_test.go renamed to pkg/plugin/internal/pluginutil/go_version_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package internal
17+
package pluginutil
1818

1919
import (
2020
"testing"

pkg/plugin/internal/repository.go renamed to pkg/plugin/internal/pluginutil/repository.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package internal
17+
package pluginutil
1818

1919
import (
2020
"encoding/json"

pkg/plugin/internal/stdin.go renamed to pkg/plugin/internal/pluginutil/stdin.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package internal
17+
package pluginutil
1818

1919
import (
2020
"bufio"
File renamed without changes.

pkg/plugin/v2/api.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ import (
3232
"sigs.k8s.io/kubebuilder/pkg/model/config"
3333
"sigs.k8s.io/kubebuilder/pkg/model/resource"
3434
"sigs.k8s.io/kubebuilder/pkg/plugin"
35-
"sigs.k8s.io/kubebuilder/pkg/plugin/internal"
36-
"sigs.k8s.io/kubebuilder/pkg/scaffold"
35+
"sigs.k8s.io/kubebuilder/pkg/plugin/internal/pluginutil"
36+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
37+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds"
3738
"sigs.k8s.io/kubebuilder/plugins/addon"
3839
)
3940

@@ -133,11 +134,11 @@ func (p *createAPIPlugin) Validate() error {
133134
reader := bufio.NewReader(os.Stdin)
134135
if !p.resourceFlag.Changed {
135136
fmt.Println("Create Resource [y/n]")
136-
p.doResource = internal.YesNo(reader)
137+
p.doResource = pluginutil.YesNo(reader)
137138
}
138139
if !p.controllerFlag.Changed {
139140
fmt.Println("Create Controller [y/n]")
140-
p.doController = internal.YesNo(reader)
141+
p.doController = pluginutil.YesNo(reader)
141142
}
142143

143144
// In case we want to scaffold a resource API we need to do some checks
@@ -148,8 +149,7 @@ func (p *createAPIPlugin) Validate() error {
148149
}
149150

150151
// Check that the provided group can be added to the project
151-
if (p.config.IsV2() || p.config.IsV3()) && !p.config.MultiGroup &&
152-
len(p.config.Resources) != 0 && !p.config.HasGroup(p.resource.Group) {
152+
if !p.config.MultiGroup && len(p.config.Resources) != 0 && !p.config.HasGroup(p.resource.Group) {
153153
return fmt.Errorf("multiple groups are not allowed by default, to enable multi-group visit %s",
154154
"kubebuilder.io/migration/multi-group.html")
155155
}
@@ -178,7 +178,7 @@ func (p *createAPIPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
178178

179179
// Create the actual resource from the resource options
180180
res := p.resource.NewResource(p.config, p.doResource)
181-
return scaffold.NewAPIScaffolder(p.config, string(bp), res, p.doResource, p.doController, plugins), nil
181+
return scaffolds.NewAPIScaffolder(p.config, string(bp), res, p.doResource, p.doController, plugins), nil
182182
}
183183

184184
func (p *createAPIPlugin) PostScaffold() error {
@@ -188,8 +188,8 @@ func (p *createAPIPlugin) PostScaffold() error {
188188
// Default pattern
189189
case "addon":
190190
// Ensure that we are pinning sigs.k8s.io/kubebuilder-declarative-pattern version
191-
err := internal.RunCmd("Get controller runtime", "go", "get",
192-
"sigs.k8s.io/kubebuilder-declarative-pattern@"+scaffold.KbDeclarativePattern)
191+
err := pluginutil.RunCmd("Get controller runtime", "go", "get",
192+
"sigs.k8s.io/kubebuilder-declarative-pattern@"+scaffolds.KbDeclarativePattern)
193193
if err != nil {
194194
return err
195195
}
@@ -198,7 +198,7 @@ func (p *createAPIPlugin) PostScaffold() error {
198198
}
199199

200200
if p.runMake {
201-
return internal.RunCmd("Running make", "make")
201+
return pluginutil.RunCmd("Running make", "make")
202202
}
203203
return nil
204204
}

pkg/plugin/v2/init.go

+10-9
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ import (
2828
"sigs.k8s.io/kubebuilder/pkg/internal/validation"
2929
"sigs.k8s.io/kubebuilder/pkg/model/config"
3030
"sigs.k8s.io/kubebuilder/pkg/plugin"
31-
"sigs.k8s.io/kubebuilder/pkg/plugin/internal"
32-
"sigs.k8s.io/kubebuilder/pkg/scaffold"
31+
"sigs.k8s.io/kubebuilder/pkg/plugin/internal/pluginutil"
32+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
33+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds"
3334
)
3435

3536
type initPlugin struct {
@@ -107,7 +108,7 @@ func (p *initPlugin) Run() error {
107108
func (p *initPlugin) Validate() error {
108109
// Requires go1.11+
109110
if !p.skipGoVersionCheck {
110-
if err := internal.ValidateGoVersion(); err != nil {
111+
if err := pluginutil.ValidateGoVersion(); err != nil {
111112
return err
112113
}
113114
}
@@ -124,7 +125,7 @@ func (p *initPlugin) Validate() error {
124125

125126
// Try to guess repository if flag is not set.
126127
if p.config.Repo == "" {
127-
repoPath, err := internal.FindCurrentRepo()
128+
repoPath, err := pluginutil.FindCurrentRepo()
128129
if err != nil {
129130
return fmt.Errorf("error finding current repository: %v", err)
130131
}
@@ -135,7 +136,7 @@ func (p *initPlugin) Validate() error {
135136
}
136137

137138
func (p *initPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
138-
return scaffold.NewInitScaffolder(p.config, p.license, p.owner), nil
139+
return scaffolds.NewInitScaffolder(p.config, p.license, p.owner), nil
139140
}
140141

141142
func (p *initPlugin) PostScaffold() error {
@@ -146,18 +147,18 @@ func (p *initPlugin) PostScaffold() error {
146147

147148
// Ensure that we are pinning controller-runtime version
148149
// xref: https://github.com/kubernetes-sigs/kubebuilder/issues/997
149-
err := internal.RunCmd("Get controller runtime", "go", "get",
150-
"sigs.k8s.io/controller-runtime@"+scaffold.ControllerRuntimeVersion)
150+
err := pluginutil.RunCmd("Get controller runtime", "go", "get",
151+
"sigs.k8s.io/controller-runtime@"+scaffolds.ControllerRuntimeVersion)
151152
if err != nil {
152153
return err
153154
}
154155

155-
err = internal.RunCmd("Update go.mod", "go", "mod", "tidy")
156+
err = pluginutil.RunCmd("Update go.mod", "go", "mod", "tidy")
156157
if err != nil {
157158
return err
158159
}
159160

160-
err = internal.RunCmd("Running make", "make")
161+
err = pluginutil.RunCmd("Running make", "make")
161162
if err != nil {
162163
return err
163164
}

pkg/scaffold/api.go renamed to pkg/plugin/v2/scaffolds/api.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,26 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package scaffold
17+
package scaffolds
1818

1919
import (
2020
"fmt"
2121

2222
"sigs.k8s.io/kubebuilder/pkg/model"
2323
"sigs.k8s.io/kubebuilder/pkg/model/config"
2424
"sigs.k8s.io/kubebuilder/pkg/model/resource"
25-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/machinery"
26-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates"
27-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/controller"
28-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/crd"
25+
"sigs.k8s.io/kubebuilder/pkg/plugin/internal/machinery"
26+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
27+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates"
28+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/controller"
29+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/crd"
2930
)
3031

3132
// (used only to gen api with --pattern=addon)
3233
// KbDeclarativePattern is the sigs.k8s.io/kubebuilder-declarative-pattern version
3334
const KbDeclarativePattern = "v0.0.0-20200522144838-848d48e5b073"
3435

35-
var _ Scaffolder = &apiScaffolder{}
36+
var _ scaffold.Scaffolder = &apiScaffolder{}
3637

3738
// apiScaffolder contains configuration for generating scaffolding for Go type
3839
// representing the API and controller that implements the behavior for the API.
@@ -55,7 +56,7 @@ func NewAPIScaffolder(
5556
res *resource.Resource,
5657
doResource, doController bool,
5758
plugins []model.Plugin,
58-
) Scaffolder {
59+
) scaffold.Scaffolder {
5960
return &apiScaffolder{
6061
config: config,
6162
boilerplate: boilerplate,

pkg/scaffold/doc.go renamed to pkg/plugin/v2/scaffolds/doc.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ limitations under the License.
1515
*/
1616

1717
// Package scaffold contains libraries for scaffolding code to use with controller-runtime
18-
package scaffold
18+
package scaffolds

pkg/scaffold/edit.go renamed to pkg/plugin/v2/scaffolds/edit.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,26 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package scaffold
17+
package scaffolds
1818

1919
import (
2020
"fmt"
2121
"io/ioutil"
2222
"strings"
2323

2424
"sigs.k8s.io/kubebuilder/pkg/model/config"
25+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
2526
)
2627

27-
var _ Scaffolder = &editScaffolder{}
28+
var _ scaffold.Scaffolder = &editScaffolder{}
2829

2930
type editScaffolder struct {
3031
config *config.Config
3132
multigroup bool
3233
}
3334

3435
// NewEditScaffolder returns a new Scaffolder for configuration edit operations
35-
func NewEditScaffolder(config *config.Config, multigroup bool) Scaffolder {
36+
func NewEditScaffolder(config *config.Config, multigroup bool) scaffold.Scaffolder {
3637
return &editScaffolder{
3738
config: config,
3839
multigroup: multigroup,

pkg/scaffold/init.go renamed to pkg/plugin/v2/scaffolds/init.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package scaffold
17+
package scaffolds
1818

1919
import (
2020
"fmt"
@@ -23,13 +23,14 @@ import (
2323

2424
"sigs.k8s.io/kubebuilder/pkg/model"
2525
"sigs.k8s.io/kubebuilder/pkg/model/config"
26-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/machinery"
27-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates"
28-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/certmanager"
29-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/manager"
30-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/metricsauth"
31-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/prometheus"
32-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/webhook"
26+
"sigs.k8s.io/kubebuilder/pkg/plugin/internal/machinery"
27+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
28+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates"
29+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/certmanager"
30+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/manager"
31+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/metricsauth"
32+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/prometheus"
33+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/webhook"
3334
)
3435

3536
const (
@@ -43,7 +44,7 @@ const (
4344
imageName = "controller:latest"
4445
)
4546

46-
var _ Scaffolder = &initScaffolder{}
47+
var _ scaffold.Scaffolder = &initScaffolder{}
4748

4849
type initScaffolder struct {
4950
config *config.Config
@@ -53,7 +54,7 @@ type initScaffolder struct {
5354
}
5455

5556
// NewInitScaffolder returns a new Scaffolder for project initialization operations
56-
func NewInitScaffolder(config *config.Config, license, owner string) Scaffolder {
57+
func NewInitScaffolder(config *config.Config, license, owner string) scaffold.Scaffolder {
5758
return &initScaffolder{
5859
config: config,
5960
boilerplatePath: filepath.Join("hack", "boilerplate.go.txt"),

pkg/scaffold/webhook.go renamed to pkg/plugin/v2/scaffolds/webhook.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,21 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package scaffold
17+
package scaffolds
1818

1919
import (
2020
"fmt"
2121

2222
"sigs.k8s.io/kubebuilder/pkg/model"
2323
"sigs.k8s.io/kubebuilder/pkg/model/config"
2424
"sigs.k8s.io/kubebuilder/pkg/model/resource"
25-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/machinery"
26-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates"
27-
"sigs.k8s.io/kubebuilder/pkg/scaffold/internal/templates/webhook"
25+
"sigs.k8s.io/kubebuilder/pkg/plugin/internal/machinery"
26+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
27+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates"
28+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds/internal/templates/webhook"
2829
)
2930

30-
var _ Scaffolder = &webhookScaffolder{}
31+
var _ scaffold.Scaffolder = &webhookScaffolder{}
3132

3233
type webhookScaffolder struct {
3334
config *config.Config
@@ -46,7 +47,7 @@ func NewWebhookScaffolder(
4647
defaulting bool,
4748
validation bool,
4849
conversion bool,
49-
) Scaffolder {
50+
) scaffold.Scaffolder {
5051
return &webhookScaffolder{
5152
config: config,
5253
boilerplate: boilerplate,

pkg/plugin/v2/webhook.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ import (
2727
"sigs.k8s.io/kubebuilder/pkg/model/config"
2828
"sigs.k8s.io/kubebuilder/pkg/model/resource"
2929
"sigs.k8s.io/kubebuilder/pkg/plugin"
30-
"sigs.k8s.io/kubebuilder/pkg/scaffold"
30+
"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
31+
"sigs.k8s.io/kubebuilder/pkg/plugin/v2/scaffolds"
3132
)
3233

3334
type createWebhookPlugin struct {
@@ -107,7 +108,7 @@ func (p *createWebhookPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
107108

108109
// Create the actual resource from the resource options
109110
res := p.resource.NewResource(p.config, false)
110-
return scaffold.NewWebhookScaffolder(p.config, string(bp), res, p.defaulting, p.validation, p.conversion), nil
111+
return scaffolds.NewWebhookScaffolder(p.config, string(bp), res, p.defaulting, p.validation, p.conversion), nil
111112
}
112113

113114
func (p *createWebhookPlugin) PostScaffold() error {

0 commit comments

Comments
 (0)