Skip to content

Commit d29a78a

Browse files
committed
initial jump to go 1.13
1 parent 8bdd7c5 commit d29a78a

File tree

26 files changed

+130
-572
lines changed

26 files changed

+130
-572
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ cache:
1515
- $HOME/.cache/go-build
1616

1717
go:
18-
- 1.12.x
18+
- 1.13.x
1919

2020
# The `x_base_steps` top-level key is unknown to travis,
2121
# so we can use it to create a bunch of common build step

Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ SCORECARD_PROXY_IMAGE ?= $(SCORECARD_PROXY_BASE_IMAGE)
2727
HELM_ARCHES:="amd64" "ppc64le"
2828

2929
export CGO_ENABLED:=0
30-
export GO111MODULE:=on
31-
export GOPROXY?=https://proxy.golang.org/
3230

3331
all: format test build/operator-sdk
3432

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The following workflow is for a new **Helm** operator:
4141
## Prerequisites
4242

4343
- [git][git_tool]
44-
- [go][go_tool] version v1.12+.
44+
- [go][go_tool] version v1.13+.
4545
- [mercurial][mercurial_tool] version 3.9+
4646
- [docker][docker_tool] version 17.03+.
4747
- Alternatively [podman][podman_tool] `v1.2.0+` or [buildah][buildah_tool] `v1.7+`

ci/dockerfiles/builder.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openshift/origin-release:golang-1.12
1+
FROM openshift/origin-release:golang-1.13
22

33
WORKDIR /go/src/github.com/operator-framework/operator-sdk
44
ENV GOPATH=/go PATH=/go/src/github.com/operator-framework/operator-sdk/build:$PATH GOPROXY=https://proxy.golang.org/ GO111MODULE=on

cmd/operator-sdk/build/cmd.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ func buildFunc(cmd *cobra.Command, args []string) error {
119119
PackagePath: path.Join(projutil.GetGoPkg(), filepath.ToSlash(scaffold.ManagerDir)),
120120
Args: args,
121121
Env: goBuildEnv,
122-
GoMod: projutil.IsDepManagerGoMod(),
123122
}
124123
if err := projutil.GoBuild(opts); err != nil {
125124
return fmt.Errorf("failed to build operator binary: (%v)", err)

cmd/operator-sdk/main.go

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func main() {
5656
log.SetLevel(log.DebugLevel)
5757
log.Debug("Debug logging is set")
5858
}
59-
if err := checkDepManagerForCmd(cmd); err != nil {
59+
if err := checkGoModulesForCmd(cmd); err != nil {
6060
log.Fatal(err)
6161
}
6262
},
@@ -87,7 +87,7 @@ func main() {
8787
}
8888
}
8989

90-
func checkDepManagerForCmd(cmd *cobra.Command) (err error) {
90+
func checkGoModulesForCmd(cmd *cobra.Command) (err error) {
9191
// Certain commands are able to be run anywhere or handle this check
9292
// differently in their CLI code.
9393
if skipCheckForCmd(cmd) {
@@ -105,11 +105,7 @@ func checkDepManagerForCmd(cmd *cobra.Command) (err error) {
105105
return nil
106106
}
107107

108-
dm, err := projutil.GetDepManagerType()
109-
if err != nil {
110-
return err
111-
}
112-
return checkDepManager(dm)
108+
return checkGoModules()
113109
}
114110

115111
var commandsToSkip = map[string]struct{}{
@@ -137,27 +133,14 @@ func skipCheckForCmd(cmd *cobra.Command) (skip bool) {
137133
return skip
138134
}
139135

140-
func checkDepManager(dm projutil.DepManagerType) error {
141-
switch dm {
142-
case projutil.DepManagerGoMod:
143-
goModOn, err := projutil.GoModOn()
144-
if err != nil {
145-
return err
146-
}
147-
if !goModOn {
148-
return fmt.Errorf(`dependency manager "modules" requires working directory to be in $GOPATH/src` +
149-
` and GO111MODULE=on, or outside of $GOPATH/src and GO111MODULE="on", "auto", or unset. More info: https://github.com/operator-framework/operator-sdk/blob/master/doc/user-guide.md#go-modules`)
150-
}
151-
case projutil.DepManagerDep:
152-
inGopathSrc, err := projutil.WdInGoPathSrc()
153-
if err != nil {
154-
return err
155-
}
156-
if !inGopathSrc {
157-
return fmt.Errorf(`dependency manager "dep" requires working directory to be in $GOPATH/src`)
158-
}
159-
default:
160-
return projutil.ErrInvalidDepManager(dm)
136+
func checkGoModules() error {
137+
goModOn, err := projutil.GoModOn()
138+
if err != nil {
139+
return err
140+
}
141+
if !goModOn {
142+
return fmt.Errorf(`dependency manager "modules" requires GO111MODULE="on", "auto", or unset.` +
143+
` More info: https://github.com/operator-framework/operator-sdk/blob/master/doc/user-guide.md#go-modules`)
161144
}
162145
return nil
163146
}

cmd/operator-sdk/migrate/cmd.go

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,11 @@ import (
2525
"github.com/operator-framework/operator-sdk/internal/pkg/scaffold/input"
2626
"github.com/operator-framework/operator-sdk/internal/util/projutil"
2727

28-
"github.com/pkg/errors"
2928
log "github.com/sirupsen/logrus"
3029
"github.com/spf13/cobra"
3130
)
3231

3332
var (
34-
depManager string
3533
headerFile string
3634
repo string
3735
)
@@ -45,7 +43,6 @@ func NewCmd() *cobra.Command {
4543
RunE: migrateRun,
4644
}
4745

48-
newCmd.Flags().StringVar(&depManager, "dep-manager", "modules", `Dependency manager the new project will use (choices: "dep", "modules")`)
4946
newCmd.Flags().StringVar(&headerFile, "header-file", "", "Path to file containing headers for generated Go files. Copied to hack/boilerplate.go.txt")
5047
newCmd.Flags().StringVar(&repo, "repo", "", "Project repository path. Used as the project's Go import path. This must be set if outside of $GOPATH/src with Go modules, and cannot be set if --dep-manager=dep")
5148

@@ -76,7 +73,7 @@ func migrateRun(cmd *cobra.Command, args []string) error {
7673
}
7774

7875
func verifyFlags() error {
79-
err := projutil.CheckDepManagerWithRepo(projutil.DepManagerType(depManager), repo)
76+
err := projutil.CheckRepo(repo)
8077
if err != nil {
8178
return err
8279
}
@@ -119,11 +116,9 @@ func migrateAnsible() error {
119116
s.BoilerplatePath = headerFile
120117
}
121118

122-
if err := scaffoldAnsibleDepManager(s, cfg); err != nil {
123-
return errors.Wrap(err, "migrate Ansible dependency manager file scaffold failed")
124-
}
125-
126119
err = s.Execute(cfg,
120+
&ansible.GoMod{},
121+
&scaffold.Tools{},
127122
&ansible.Main{},
128123
&dockerfile,
129124
&ansible.Entrypoint{},
@@ -160,11 +155,9 @@ func migrateHelm() error {
160155
s.BoilerplatePath = headerFile
161156
}
162157

163-
if err := scaffoldHelmDepManager(s, cfg); err != nil {
164-
return errors.Wrap(err, "migrate Helm dependency manager file scaffold failed")
165-
}
166-
167158
err := s.Execute(cfg,
159+
&helm.GoMod{},
160+
&scaffold.Tools{},
168161
&helm.Main{},
169162
&helm.DockerfileHybrid{
170163
Watches: true,
@@ -189,29 +182,3 @@ func renameDockerfile() error {
189182
log.Infof("Renamed Dockerfile to %s and replaced with newer version. Compare the new Dockerfile to your old one and manually migrate any customizations", newDockerfilePath)
190183
return nil
191184
}
192-
193-
func scaffoldHelmDepManager(s *scaffold.Scaffold, cfg *input.Config) error {
194-
var files []input.File
195-
switch m := projutil.DepManagerType(depManager); m {
196-
case projutil.DepManagerDep:
197-
files = append(files, &helm.GopkgToml{})
198-
case projutil.DepManagerGoMod:
199-
files = append(files, &helm.GoMod{}, &scaffold.Tools{})
200-
default:
201-
return projutil.ErrInvalidDepManager(depManager)
202-
}
203-
return s.Execute(cfg, files...)
204-
}
205-
206-
func scaffoldAnsibleDepManager(s *scaffold.Scaffold, cfg *input.Config) error {
207-
var files []input.File
208-
switch m := projutil.DepManagerType(depManager); m {
209-
case projutil.DepManagerDep:
210-
files = append(files, &ansible.GopkgToml{})
211-
case projutil.DepManagerGoMod:
212-
files = append(files, &ansible.GoMod{}, &scaffold.Tools{})
213-
default:
214-
return projutil.ErrInvalidDepManager(depManager)
215-
}
216-
return s.Execute(cfg, files...)
217-
}

cmd/operator-sdk/new/cmd.go

Lines changed: 36 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ generates a skeletal app-operator application in $HOME/projects/example.com/app-
5656
newCmd.Flags().StringVar(&apiVersion, "api-version", "", "Kubernetes apiVersion and has a format of $GROUP_NAME/$VERSION (e.g app.example.com/v1alpha1) - used with \"ansible\" or \"helm\" types")
5757
newCmd.Flags().StringVar(&kind, "kind", "", "Kubernetes CustomResourceDefintion kind. (e.g AppService) - used with \"ansible\" or \"helm\" types")
5858
newCmd.Flags().StringVar(&operatorType, "type", "go", "Type of operator to initialize (choices: \"go\", \"ansible\" or \"helm\")")
59-
newCmd.Flags().StringVar(&depManager, "dep-manager", "modules", `Dependency manager the new project will use (choices: "dep", "modules")`)
6059
newCmd.Flags().StringVar(&repo, "repo", "", "Project repository path for Go operators. Used as the project's Go import path. This must be set if outside of $GOPATH/src with Go modules, and cannot be set if --dep-manager=dep (e.g. github.com/example-inc/my-opertor)")
6160
newCmd.Flags().BoolVar(&gitInit, "git-init", false, "Initialize the project directory as a git repository (default false)")
6261
newCmd.Flags().StringVar(&headerFile, "header-file", "", "Path to file containing headers for generated Go files. Copied to hack/boilerplate.go.txt")
@@ -76,7 +75,6 @@ var (
7675
kind string
7776
operatorType string
7877
projectName string
79-
depManager string
8078
headerFile string
8179
repo string
8280
gitInit bool
@@ -180,26 +178,17 @@ func doGoScaffold() error {
180178
s.BoilerplatePath = headerFile
181179
}
182180

183-
var err error
184-
switch m := projutil.DepManagerType(depManager); m {
185-
case projutil.DepManagerDep:
186-
err = s.Execute(cfg, &scaffold.GopkgToml{})
187-
case projutil.DepManagerGoMod:
188-
if goModOn, merr := projutil.GoModOn(); merr != nil {
189-
return merr
190-
} else if !goModOn {
191-
return errors.New(`dependency manager "modules" requires working directory to be in $GOPATH/src` +
192-
` and GO111MODULE=on, or outside of $GOPATH/src and GO111MODULE="on", "auto", or unset. More info: https://github.com/operator-framework/operator-sdk/blob/master/doc/user-guide.md#go-modules`)
193-
}
194-
err = s.Execute(cfg, &scaffold.GoMod{}, &scaffold.Tools{})
195-
default:
196-
err = projutil.ErrNoDepManager
181+
if goModOn, merr := projutil.GoModOn(); merr != nil {
182+
return merr
183+
} else if !goModOn {
184+
return errors.New(`dependency manager "modules" requires GO111MODULE="on", "auto", or unset.` +
185+
` More info: https://github.com/operator-framework/operator-sdk/blob/master/doc/user-guide.md#go-modules`)
197186
}
198-
if err != nil {
187+
if err := s.Execute(cfg, &scaffold.GoMod{}, &scaffold.Tools{}); err != nil {
199188
return fmt.Errorf("dependency manager file scaffold failed: (%v)", err)
200189
}
201190

202-
err = s.Execute(cfg,
191+
err := s.Execute(cfg,
203192
&scaffold.Cmd{},
204193
&scaffold.Dockerfile{},
205194
&scaffold.Entrypoint{},
@@ -384,12 +373,7 @@ func verifyFlags() error {
384373
return fmt.Errorf("operators of type Go do not use --api-version or --kind")
385374
}
386375

387-
dm := projutil.DepManagerType(depManager)
388-
if !makeVendor && dm == projutil.DepManagerDep {
389-
log.Warnf("--dep-manager=dep requires a vendor directory; ignoring --vendor=false")
390-
}
391-
err := projutil.CheckDepManagerWithRepo(dm, repo)
392-
if err != nil {
376+
if err := projutil.CheckRepo(repo); err != nil {
393377
return err
394378
}
395379
}
@@ -424,30 +408,20 @@ func execProjCmd(cmd string, args ...string) error {
424408
}
425409

426410
func getDeps() error {
427-
switch m := projutil.DepManagerType(depManager); m {
428-
case projutil.DepManagerDep:
429-
log.Info("Running dep ensure")
430-
if err := execProjCmd("dep", "ensure", "-v"); err != nil {
431-
return err
432-
}
433-
case projutil.DepManagerGoMod:
434-
// Only when a user requests a vendor directory be created should
435-
// "go mod vendor" be run during project initialization.
436-
if makeVendor {
437-
log.Info("Running go mod vendor")
438-
opts := projutil.GoCmdOptions{
439-
Args: []string{"-v"},
440-
Dir: filepath.Join(projutil.MustGetwd(), projectName),
441-
}
442-
if err := projutil.GoCmd("mod vendor", opts); err != nil {
443-
return err
444-
}
445-
} else {
446-
// Avoid done message.
447-
return nil
448-
}
449-
default:
450-
return projutil.ErrInvalidDepManager(depManager)
411+
412+
// Only when a user requests a vendor directory be created should
413+
// "go mod vendor" be run during project initialization.
414+
if !makeVendor {
415+
return nil
416+
}
417+
418+
log.Info("Running go mod vendor")
419+
opts := projutil.GoCmdOptions{
420+
Args: []string{"-v"},
421+
Dir: filepath.Join(projutil.MustGetwd(), projectName),
422+
}
423+
if err := projutil.GoCmd("mod vendor", opts); err != nil {
424+
return err
451425
}
452426
log.Info("Done getting dependencies")
453427
return nil
@@ -463,24 +437,20 @@ func initGit() error {
463437
}
464438

465439
func validateProject() error {
466-
switch projutil.DepManagerType(depManager) {
467-
case projutil.DepManagerGoMod:
468-
log.Info("Validating project")
469-
// Run "go build ./..." to make sure all packages can be built
470-
// correctly. From "go help build":
471-
//
472-
// When compiling multiple packages or a single non-main package,
473-
// build compiles the packages but discards the resulting object,
474-
// serving only as a check that the packages can be built.
475-
opts := projutil.GoCmdOptions{
476-
PackagePath: "./...",
477-
Dir: filepath.Join(projutil.MustGetwd(), projectName),
478-
}
479-
if err := projutil.GoBuild(opts); err != nil {
480-
return err
481-
}
482-
log.Info("Project validation successful.")
440+
log.Info("Validating project")
441+
// Run "go build ./..." to make sure all packages can be built
442+
// correctly. From "go help build":
443+
//
444+
// When compiling multiple packages or a single non-main package,
445+
// build compiles the packages but discards the resulting object,
446+
// serving only as a check that the packages can be built.
447+
opts := projutil.GoCmdOptions{
448+
PackagePath: "./...",
449+
Dir: filepath.Join(projutil.MustGetwd(), projectName),
450+
}
451+
if err := projutil.GoBuild(opts); err != nil {
452+
return err
483453
}
484-
454+
log.Info("Project validation successful.")
485455
return nil
486456
}

0 commit comments

Comments
 (0)