@@ -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 }
0 commit comments