Skip to content

Commit f4f67be

Browse files
committed
fixed: enable --skip-tls-verify during the build phase
1 parent f4f89c5 commit f4f67be

File tree

4 files changed

+25
-21
lines changed

4 files changed

+25
-21
lines changed

Diff for: build/kubefile/parser/kubefile.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,17 @@ type KubefileParser struct {
8787
imageEngine imageengine.Interface
8888
}
8989

90-
func (kp *KubefileParser) ParseKubefile(rwc io.Reader) (*KubefileResult, error) {
90+
func (kp *KubefileParser) ParseKubefile(rwc io.Reader, skipTLSVerify bool) (*KubefileResult, error) {
9191
result, err := parse(rwc)
9292
if err != nil {
9393
return nil, fmt.Errorf("failed to parse dockerfile: %v", err)
9494
}
9595

9696
mainNode := result.AST
97-
return kp.generateResult(mainNode)
97+
return kp.generateResult(mainNode, skipTLSVerify)
9898
}
9999

100-
func (kp *KubefileParser) generateResult(mainNode *Node) (*KubefileResult, error) {
100+
func (kp *KubefileParser) generateResult(mainNode *Node, skipTLSVerify bool) (*KubefileResult, error) {
101101
var (
102102
result = &KubefileResult{
103103
Applications: map[string]version.VersionedApplication{},
@@ -141,7 +141,7 @@ func (kp *KubefileParser) generateResult(mainNode *Node) (*KubefileResult, error
141141
case command.From:
142142
// process FROM aims to pull the image, and merge the applications from
143143
// the FROM image.
144-
if err = kp.processFrom(node, result); err != nil {
144+
if err = kp.processFrom(node, result, skipTLSVerify); err != nil {
145145
return nil, fmt.Errorf("failed to process from: %v", err)
146146
}
147147
case command.Launch:
@@ -429,7 +429,7 @@ func (kp *KubefileParser) processLaunch(node *Node, result *KubefileResult) erro
429429
return nil
430430
}
431431

432-
func (kp *KubefileParser) processFrom(node *Node, result *KubefileResult) error {
432+
func (kp *KubefileParser) processFrom(node *Node, result *KubefileResult, skipTLSVerify bool) error {
433433
var (
434434
platform = parse2.DefaultPlatform()
435435
flags = node.Flags
@@ -455,9 +455,10 @@ func (kp *KubefileParser) processFrom(node *Node, result *KubefileResult) error
455455
}
456456

457457
id, err := kp.imageEngine.Pull(&options.PullOptions{
458-
PullPolicy: kp.pullPolicy,
459-
Image: image,
460-
Platform: platform,
458+
PullPolicy: kp.pullPolicy,
459+
Image: image,
460+
Platform: platform,
461+
SkipTLSVerify: skipTLSVerify,
461462
})
462463
if err != nil {
463464
return fmt.Errorf("failed to pull image %s: %v", image, err)

Diff for: build/kubefile/parser/parse_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ LAUNCH ["%s"]
6565
)
6666

6767
reader := bytes.NewReader([]byte(text))
68-
result, err := testParser.ParseKubefile(reader)
68+
result, err := testParser.ParseKubefile(reader, true)
6969
if err != nil {
7070
t.Fatalf("failed to parse kubefile: %s", err)
7171
}
@@ -128,7 +128,7 @@ LAUNCH %s
128128
)
129129

130130
reader := bytes.NewReader([]byte(text))
131-
result, err := testParser.ParseKubefile(reader)
131+
result, err := testParser.ParseKubefile(reader, true)
132132
if err != nil {
133133
t.Fatalf("failed to parse kubefile: %s", err)
134134
}
@@ -187,7 +187,7 @@ CMDS ["%s", "%s"]
187187
)
188188

189189
reader := bytes.NewReader([]byte(text))
190-
result, err := testParser.ParseKubefile(reader)
190+
result, err := testParser.ParseKubefile(reader, true)
191191
if err != nil {
192192
t.Fatalf("failed to parse kubefile: %s", err)
193193
}
@@ -241,7 +241,7 @@ LAUNCH ["app1"]`, appFilePath)
241241
)
242242

243243
reader := bytes.NewReader([]byte(text))
244-
result, err := testParser.ParseKubefile(reader)
244+
result, err := testParser.ParseKubefile(reader, true)
245245
if err != nil {
246246
t.Fatalf("failed to parse kubefile: %s", err)
247247
}

Diff for: cmd/sealer/cmd/image/build.go

+10-8
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ func NewBuildCmd() *cobra.Command {
9797
}
9898
// if its value is default platforms, build image as single sealer image.
9999
if ok := platforms.Default().Match(p); ok {
100-
return buildSingleSealerImage(engine, buildFlags.Tag, "", buildFlags.Platforms[0])
100+
return buildSingleSealerImage(engine, buildFlags.Tag, "", buildFlags.Platforms[0], buildFlags.SkipTLSVerify)
101101
}
102102
}
103103

104-
return buildMultiPlatformSealerImage(engine)
104+
return buildMultiPlatformSealerImage(engine, buildFlags.SkipTLSVerify)
105105
},
106106
}
107107
buildCmd.Flags().StringVarP(&buildFlags.Kubefile, "file", "f", "Kubefile", "Kubefile filepath")
@@ -118,6 +118,7 @@ func NewBuildCmd() *cobra.Command {
118118
buildCmd.Flags().StringSliceVar(&buildFlags.Labels, "label", []string{getSealerLabel()}, "add labels for image. Format like --label key=[value]")
119119
buildCmd.Flags().BoolVar(&buildFlags.NoCache, "no-cache", false, "do not use existing cached images for building. Build from the start with a new set of cached layers.")
120120
buildCmd.Flags().StringVar(&buildFlags.BuildMode, "build-mode", options.WithAllMode, "whether to download container image during the build process. default is `all`.")
121+
buildCmd.Flags().BoolVar(&buildFlags.SkipTLSVerify, "skip-tls-verify", true, "default is requiring HTTPS and verify certificates when accessing the registry.")
121122

122123
supportedImageType := map[string]struct{}{v12.KubeInstaller: {}, v12.AppInstaller: {}}
123124
if _, ok := supportedImageType[buildFlags.ImageType]; !ok {
@@ -132,7 +133,7 @@ func NewBuildCmd() *cobra.Command {
132133
return buildCmd
133134
}
134135

135-
func buildMultiPlatformSealerImage(engine imageengine.Interface) error {
136+
func buildMultiPlatformSealerImage(engine imageengine.Interface, skipTLSVerify bool) error {
136137
var (
137138
// use buildFlags.Tag as manifest name for multi arch build
138139
manifest = buildFlags.Tag
@@ -146,7 +147,7 @@ func buildMultiPlatformSealerImage(engine imageengine.Interface) error {
146147

147148
// build multi platform
148149
for _, p := range buildFlags.Platforms {
149-
err = buildSingleSealerImage(engine, "", manifest, p)
150+
err = buildSingleSealerImage(engine, "", manifest, p, skipTLSVerify)
150151
if err != nil {
151152
// clean manifest
152153
_ = engine.DeleteManifests([]string{manifest}, &options.ManifestDeleteOpts{})
@@ -157,9 +158,10 @@ func buildMultiPlatformSealerImage(engine imageengine.Interface) error {
157158
return nil
158159
}
159160

160-
func buildSingleSealerImage(engine imageengine.Interface, imageName string, manifest string, platformStr string) error {
161+
func buildSingleSealerImage(engine imageengine.Interface, imageName string, manifest string, platformStr string, skipTLSVerify bool) error {
162+
// parse Kubefile & try pull image in "from" syntax
161163
kubefileParser := parser.NewParser(rootfs.GlobalManager.App().Root(), buildFlags, engine, platformStr)
162-
result, err := getKubefileParseResult(buildFlags.ContextDir, buildFlags.Kubefile, kubefileParser)
164+
result, err := getKubefileParseResult(buildFlags.ContextDir, buildFlags.Kubefile, kubefileParser, skipTLSVerify)
163165
if err != nil {
164166
return err
165167
}
@@ -483,7 +485,7 @@ func buildImageExtensionOnResult(result *parser.KubefileResult, imageType string
483485
return extension
484486
}
485487

486-
func getKubefileParseResult(contextDir, file string, kubefileParser *parser.KubefileParser) (*parser.KubefileResult, error) {
488+
func getKubefileParseResult(contextDir, file string, kubefileParser *parser.KubefileParser, skipTLSVerify bool) (*parser.KubefileResult, error) {
487489
kubefile, err := getKubefile(contextDir, file)
488490
if err != nil {
489491
return nil, err
@@ -497,7 +499,7 @@ func getKubefileParseResult(contextDir, file string, kubefileParser *parser.Kube
497499
_ = kfr.Close()
498500
}()
499501

500-
kr, err := kubefileParser.ParseKubefile(kfr)
502+
kr, err := kubefileParser.ParseKubefile(kfr, skipTLSVerify)
501503
if err != nil {
502504
return nil, err
503505
}

Diff for: pkg/define/options/options.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ type BuildOptions struct {
4545

4646
//BuildMode means whether to download container image during the build process
4747
// default value is download all container images.
48-
BuildMode string
48+
BuildMode string
49+
SkipTLSVerify bool
4950
}
5051

5152
type FromOptions struct {

0 commit comments

Comments
 (0)