Skip to content

Commit eef955c

Browse files
Ankita Thomastimflannagan
authored andcommitted
set default for flag --skip-tls=false
Upstream-repository: operator-registry Upstream-commit: 36ce1c63fdca491362c3e4e0aff87a59fcdd3b86
1 parent 9115397 commit eef955c

File tree

18 files changed

+105
-147
lines changed

18 files changed

+105
-147
lines changed

staging/operator-registry/cmd/opm/index/add.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ func addIndexAddCmd(parent *cobra.Command) {
5353
if err := indexCmd.MarkFlagRequired("bundles"); err != nil {
5454
logrus.Panic("Failed to set required `bundles` flag for `index add`")
5555
}
56-
indexCmd.Flags().Bool("skip-tls", false, "skip TLS certificate verification for container image registries while pulling bundles or index")
5756
indexCmd.Flags().StringP("binary-image", "i", "", "container image for on-image `opm` command")
5857
indexCmd.Flags().StringP("container-tool", "c", "", "tool to interact with container images (save, build, etc.). One of: [docker, podman]")
5958
indexCmd.Flags().StringP("build-tool", "u", "", "tool to build container images. One of: [docker, podman]. Defaults to podman. Overrides part of container-tool.")
@@ -108,13 +107,9 @@ func runIndexAddCmdFunc(cmd *cobra.Command, args []string) error {
108107
return err
109108
}
110109

111-
var skipTLS *bool
112-
if cmd.Flags().Changed("skip-tls") {
113-
skipTLSVal, err := cmd.Flags().GetBool("skip-tls")
114-
if err != nil {
115-
return err
116-
}
117-
skipTLS = &skipTLSVal
110+
skipTLS, err := cmd.Flags().GetBool("skip-tls")
111+
if err != nil {
112+
return err
118113
}
119114

120115
mode, err := cmd.Flags().GetString("mode")

staging/operator-registry/cmd/opm/index/cmd.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,15 @@ func AddCommand(parent *cobra.Command) {
1818
}
1919
return nil
2020
},
21+
PersistentPreRun: func(cmd *cobra.Command, args []string) {
22+
if skipTLS, err := cmd.Flags().GetBool("skip-tls"); err == nil && skipTLS {
23+
logrus.Warn("--skip-tls flag is set: this mode is insecure and meant for development purposes only.")
24+
}
25+
},
2126
}
2227

2328
parent.AddCommand(cmd)
29+
parent.PersistentFlags().Bool("skip-tls", false, "skip TLS certificate verification for container image registries while pulling bundles or index")
2430
cmd.AddCommand(newIndexDeleteCmd())
2531
addIndexAddCmd(cmd)
2632
cmd.AddCommand(newIndexExportCmd())

staging/operator-registry/cmd/opm/index/delete.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ func newIndexDeleteCmd() *cobra.Command {
4141
indexCmd.Flags().StringP("pull-tool", "p", "", "tool to pull container images. One of: [none, docker, podman]. Defaults to none. Overrides part of container-tool.")
4242
indexCmd.Flags().StringP("tag", "t", "", "custom tag for container image being built")
4343
indexCmd.Flags().Bool("permissive", false, "allow registry load errors")
44-
indexCmd.Flags().Bool("skip-tls", false, "skip TLS certificate verification for container image registries while pulling index")
4544

4645
if err := indexCmd.Flags().MarkHidden("debug"); err != nil {
4746
logrus.Panic(err.Error())
@@ -92,13 +91,9 @@ func runIndexDeleteCmdFunc(cmd *cobra.Command, args []string) error {
9291
return err
9392
}
9493

95-
var skipTLS *bool
96-
if cmd.Flags().Changed("skip-tls") {
97-
skipTLSVal, err := cmd.Flags().GetBool("skip-tls")
98-
if err != nil {
99-
return err
100-
}
101-
skipTLS = &skipTLSVal
94+
skipTLS, err := cmd.Flags().GetBool("skip-tls")
95+
if err != nil {
96+
return err
10297
}
10398

10499
logger := logrus.WithFields(logrus.Fields{"operators": operators})

staging/operator-registry/cmd/opm/index/deprecate.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ func newIndexDeprecateTruncateCmd() *cobra.Command {
5757
indexCmd.Flags().StringP("pull-tool", "p", "", "tool to pull container images. One of: [none, docker, podman]. Defaults to none. Overrides part of container-tool.")
5858
indexCmd.Flags().StringP("tag", "t", "", "custom tag for container image being built")
5959
indexCmd.Flags().Bool("permissive", false, "allow registry load errors")
60-
indexCmd.Flags().Bool("skip-tls", false, "skip TLS certificate verification for container image registries while pulling index")
6160
if err := indexCmd.Flags().MarkHidden("debug"); err != nil {
6261
logrus.Panic(err.Error())
6362
}
@@ -106,13 +105,9 @@ func runIndexDeprecateTruncateCmdFunc(cmd *cobra.Command, args []string) error {
106105
return err
107106
}
108107

109-
var skipTLS *bool
110-
if cmd.Flags().Changed("skip-tls") {
111-
skipTLSVal, err := cmd.Flags().GetBool("skip-tls")
112-
if err != nil {
113-
return err
114-
}
115-
skipTLS = &skipTLSVal
108+
skipTLS, err := cmd.Flags().GetBool("skip-tls")
109+
if err != nil {
110+
return err
116111
}
117112

118113
logger := logrus.WithFields(logrus.Fields{"bundles": bundles})

staging/operator-registry/cmd/opm/index/export.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ func newIndexExportCmd() *cobra.Command {
4646
}
4747
indexCmd.Flags().StringP("download-folder", "f", "downloaded", "directory where downloaded operator bundle(s) will be stored")
4848
indexCmd.Flags().StringP("container-tool", "c", "none", "tool to interact with container images (save, build, etc.). One of: [none, docker, podman]")
49-
indexCmd.Flags().Bool("skip-tls", false, "skip TLS certificate verification for container image registries while pulling index")
5049
if err := indexCmd.Flags().MarkHidden("debug"); err != nil {
5150
logrus.Panic(err.Error())
5251
}
@@ -76,13 +75,9 @@ func runIndexExportCmdFunc(cmd *cobra.Command, args []string) error {
7675
return err
7776
}
7877

79-
var skipTLS *bool
80-
if cmd.Flags().Changed("skip-tls") {
81-
skipTLSVal, err := cmd.Flags().GetBool("skip-tls")
82-
if err != nil {
83-
return err
84-
}
85-
skipTLS = &skipTLSVal
78+
skipTLS, err := cmd.Flags().GetBool("skip-tls")
79+
if err != nil {
80+
return err
8681
}
8782

8883
logger := logrus.WithFields(logrus.Fields{"index": index, "package": packageName})
@@ -96,7 +91,7 @@ func runIndexExportCmdFunc(cmd *cobra.Command, args []string) error {
9691
Package: packageName,
9792
DownloadPath: downloadPath,
9893
ContainerTool: containertools.NewContainerTool(containerTool, containertools.NoneTool),
99-
SkipTLS: skipTLS,
94+
SkipTLS: skipTLS,
10095
}
10196

10297
err = indexExporter.ExportFromIndex(request)

staging/operator-registry/cmd/opm/index/prune.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ func newIndexPruneCmd() *cobra.Command {
4141
indexCmd.Flags().StringP("container-tool", "c", "podman", "tool to interact with container images (save, build, etc.). One of: [docker, podman]")
4242
indexCmd.Flags().StringP("tag", "t", "", "custom tag for container image being built")
4343
indexCmd.Flags().Bool("permissive", false, "allow registry load errors")
44-
indexCmd.Flags().Bool("skip-tls", false, "skip TLS certificate verification for container image registries while pulling index")
4544

4645
if err := indexCmd.Flags().MarkHidden("debug"); err != nil {
4746
logrus.Panic(err.Error())
@@ -96,13 +95,9 @@ func runIndexPruneCmdFunc(cmd *cobra.Command, args []string) error {
9695
return err
9796
}
9897

99-
var skipTLS *bool
100-
if cmd.Flags().Changed("skip-tls") {
101-
skipTLSVal, err := cmd.Flags().GetBool("skip-tls")
102-
if err != nil {
103-
return err
104-
}
105-
skipTLS = &skipTLSVal
98+
skipTLS, err := cmd.Flags().GetBool("skip-tls")
99+
if err != nil {
100+
return err
106101
}
107102

108103
logger := logrus.WithFields(logrus.Fields{"packages": packages})

staging/operator-registry/cmd/opm/index/prunestranded.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ func newIndexPruneStrandedCmd() *cobra.Command {
3636
indexCmd.Flags().StringP("binary-image", "i", "", "container image for on-image `opm` command")
3737
indexCmd.Flags().StringP("container-tool", "c", "podman", "tool to interact with container images (save, build, etc.). One of: [docker, podman]")
3838
indexCmd.Flags().StringP("tag", "t", "", "custom tag for container image being built")
39-
indexCmd.Flags().Bool("skip-tls", false, "skip TLS certificate verification for container image registries while pulling index")
4039

4140
if err := indexCmd.Flags().MarkHidden("debug"); err != nil {
4241
logrus.Panic(err.Error())
@@ -81,13 +80,9 @@ func runIndexPruneStrandedCmdFunc(cmd *cobra.Command, args []string) error {
8180
return err
8281
}
8382

84-
var skipTLS *bool
85-
if cmd.Flags().Changed("skip-tls") {
86-
skipTLSVal, err := cmd.Flags().GetBool("skip-tls")
87-
if err != nil {
88-
return err
89-
}
90-
skipTLS = &skipTLSVal
83+
skipTLS, err := cmd.Flags().GetBool("skip-tls")
84+
if err != nil {
85+
return err
9186
}
9287

9388
logger := logrus.WithFields(logrus.Fields{})

staging/operator-registry/cmd/opm/registry/add.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,9 @@ func addFunc(cmd *cobra.Command, args []string) error {
4141
if err != nil {
4242
return err
4343
}
44-
var skipTLS *bool
45-
if cmd.Flags().Changed("skip-tls") {
46-
skipTLSVal, err := cmd.Flags().GetBool("skip-tls")
47-
if err != nil {
48-
return err
49-
}
50-
skipTLS = &skipTLSVal
44+
skipTLS, err := cmd.Flags().GetBool("skip-tls")
45+
if err != nil {
46+
return err
5147
}
5248
fromFilename, err := cmd.Flags().GetString("database")
5349
if err != nil {
@@ -81,6 +77,10 @@ func addFunc(cmd *cobra.Command, args []string) error {
8177

8278
logger := logrus.WithFields(logrus.Fields{"bundles": bundleImages})
8379

80+
if skipTLS {
81+
logger.Warn("--skip-tls flag is set: this mode is insecure and meant for development purposes only.")
82+
}
83+
8484
logger.Info("adding to the registry")
8585

8686
registryAdder := registry.NewRegistryAdder(logger)

staging/operator-registry/pkg/containertools/factory_docker.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@ func (d *DockerCommandFactory) BuildCommand(o BuildOptions) (*exec.Cmd, error) {
2222
args = append(args, "-t", tag)
2323
}
2424

25-
if o.secure {
26-
args = append(args, "--tls")
27-
}
28-
2925
if o.context == "" {
3026
return nil, fmt.Errorf("context not provided")
3127
}

staging/operator-registry/pkg/containertools/factory_podman.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ func (p *PodmanCommandFactory) BuildCommand(o BuildOptions) (*exec.Cmd, error) {
2424
args = append(args, "-t", tag)
2525
}
2626

27-
if !o.secure {
28-
args = append(args, "--tls-verify=false")
29-
}
30-
3127
if o.context == "" {
3228
return nil, fmt.Errorf("context not provided")
3329
}

staging/operator-registry/pkg/containertools/factory_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func TestBuildCommand(t *testing.T) {
7777
Factory: &PodmanCommandFactory{},
7878
Options: DefaultBuildOptions(),
7979
Args: []string{
80-
"podman", "build", "--format", "docker", "--tls-verify=false", ".",
80+
"podman", "build", "--format", "docker", ".",
8181
},
8282
},
8383
{
@@ -88,7 +88,7 @@ func TestBuildCommand(t *testing.T) {
8888
format: "oci",
8989
},
9090
Args: []string{
91-
"podman", "build", "--format", "oci", "--tls-verify=false", ".",
91+
"podman", "build", "--format", "oci", ".",
9292
},
9393
},
9494
{
@@ -98,7 +98,7 @@ func TestBuildCommand(t *testing.T) {
9898
context: "foo",
9999
},
100100
Args: []string{
101-
"podman", "build", "--format", "docker", "--tls-verify=false", "foo",
101+
"podman", "build", "--format", "docker", "foo",
102102
},
103103
},
104104
{
@@ -109,7 +109,7 @@ func TestBuildCommand(t *testing.T) {
109109
dockerfile: "foo",
110110
},
111111
Args: []string{
112-
"podman", "build", "--format", "docker", "-f", "foo", "--tls-verify=false", ".",
112+
"podman", "build", "--format", "docker", "-f", "foo", ".",
113113
},
114114
},
115115
{
@@ -120,7 +120,7 @@ func TestBuildCommand(t *testing.T) {
120120
tags: []string{"foo"},
121121
},
122122
Args: []string{
123-
"podman", "build", "--format", "docker", "-t", "foo", "--tls-verify=false", ".",
123+
"podman", "build", "--format", "docker", "-t", "foo", ".",
124124
},
125125
},
126126
{
@@ -131,7 +131,7 @@ func TestBuildCommand(t *testing.T) {
131131
tags: []string{"foo", "bar"},
132132
},
133133
Args: []string{
134-
"podman", "build", "--format", "docker", "-t", "foo", "-t", "bar", "--tls-verify=false", ".",
134+
"podman", "build", "--format", "docker", "-t", "foo", "-t", "bar", ".",
135135
},
136136
},
137137
{

staging/operator-registry/pkg/containertools/option_build.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ type BuildOptions struct {
55
tags []string
66
dockerfile string
77
context string
8-
secure bool
98
}
109

1110
func (o *BuildOptions) SetFormatDocker() {
@@ -28,10 +27,6 @@ func (o *BuildOptions) SetContext(context string) {
2827
o.context = context
2928
}
3029

31-
func (o *BuildOptions) SetSkipTLS(skipTLS bool) {
32-
o.secure = !skipTLS
33-
}
34-
3530
func DefaultBuildOptions() BuildOptions {
3631
var o BuildOptions
3732
o.SetFormatDocker()

staging/operator-registry/pkg/containertools/runner.go

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,9 @@ type RunnerConfig struct {
3131

3232
type RunnerOption func(config *RunnerConfig)
3333

34-
func SkipTLS(skip *bool) RunnerOption {
34+
func SkipTLS(skip bool) RunnerOption {
3535
return func(config *RunnerConfig) {
36-
if skip != nil {
37-
config.SkipTLS = *skip
38-
}
36+
config.SkipTLS = skip
3937
}
4038
}
4139

@@ -45,52 +43,32 @@ func (r *RunnerConfig) apply(options []RunnerOption) {
4543
}
4644
}
4745

48-
func (r *ContainerCommandRunner) argsForCmd(cmd string, args... string) []string {
46+
func (r *ContainerCommandRunner) argsForCmd(cmd string, args ...string) []string {
4947
cmdArgs := []string{cmd}
5048
switch r.containerTool {
5149
case PodmanTool:
5250
switch cmd {
53-
case "build", "pull", "push", "login", "search":
51+
case "pull", "push", "login", "search":
5452
// --tls-verify is a valid flag for these podman subcommands
5553
if r.config.SkipTLS {
5654
cmdArgs = append(cmdArgs, "--tls-verify=false")
5755
}
5856
}
59-
case DockerTool:
60-
if !r.config.SkipTLS {
61-
cmdArgs = append(cmdArgs, "--tls")
62-
}
6357
default:
6458
}
6559
cmdArgs = append(cmdArgs, args...)
6660
return cmdArgs
6761
}
6862

69-
func defaultConfig(toolName string) *RunnerConfig {
70-
switch toolName {
71-
case "docker":
72-
// docker disables tls verify by default, mimic that behavior
73-
return &RunnerConfig{
74-
SkipTLS: true,
75-
}
76-
case "podman":
77-
return &RunnerConfig{
78-
SkipTLS: false,
79-
}
80-
default:
81-
return &RunnerConfig{}
82-
}
83-
}
84-
8563
// NewCommandRunner takes the containerTool as an input string and returns a
8664
// CommandRunner to run commands with that cli tool
87-
func NewCommandRunner(containerTool ContainerTool, logger *logrus.Entry, opts... RunnerOption) *ContainerCommandRunner {
88-
config := defaultConfig(containerTool.String())
65+
func NewCommandRunner(containerTool ContainerTool, logger *logrus.Entry, opts ...RunnerOption) *ContainerCommandRunner {
66+
var config RunnerConfig
8967
config.apply(opts)
9068
r := &ContainerCommandRunner{
9169
logger: logger,
9270
containerTool: containerTool,
93-
config: config,
71+
config: &config,
9472
}
9573
return r
9674
}
@@ -126,7 +104,6 @@ func (r *ContainerCommandRunner) Build(dockerfile, tag string) error {
126104
}
127105
o.SetDockerfile(dockerfile)
128106
o.SetContext(".")
129-
o.SetSkipTLS(r.config.SkipTLS)
130107
command, err := r.containerTool.CommandFactory().BuildCommand(o)
131108
if err != nil {
132109
return fmt.Errorf("unable to perform build: %v", err)
@@ -160,7 +137,7 @@ func (r *ContainerCommandRunner) Unpack(image, src, dst string) error {
160137
}
161138

162139
id := strings.TrimSuffix(string(out), "\n")
163-
args = r.argsForCmd("cp", id + ":" + src, dst)
140+
args = r.argsForCmd("cp", id+":"+src, dst)
164141
command = exec.Command(r.containerTool.String(), args...)
165142

166143
r.logger.Infof("running %s cp", r.containerTool)

staging/operator-registry/pkg/image/execregistry/registry.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ type Registry struct {
2626
var _ image.Registry = &Registry{}
2727

2828
// NewRegistry instantiates and returns a new registry which manipulates images via exec podman/docker commands.
29-
func NewRegistry(tool containertools.ContainerTool, logger *logrus.Entry, opts... containertools.RunnerOption) (registry *Registry, err error) {
29+
func NewRegistry(tool containertools.ContainerTool, logger *logrus.Entry, opts ...containertools.RunnerOption) (registry *Registry, err error) {
3030
return &Registry{
3131
log: logger,
3232
cmd: containertools.NewCommandRunner(tool, logger, opts...),

0 commit comments

Comments
 (0)