func (aci *Img) Push() { if config.GetConfig().Push.Type == "" { panic("Can't push, push is not configured in cnt global configuration file") } aci.CheckBuilt() if aci.args.Test { aci.args.Test = false aci.Test() } aci.tarAci(true) im := extractManifestFromAci(aci.target + PATH_IMAGE_ACI_ZIP) val, _ := im.Labels.Get("version") if err := utils.ExecCmd("curl", "-f", "-i", "-F", "r=releases", "-F", "hasPom=false", "-F", "e=aci", "-F", "g=com.blablacar.aci.linux.amd64", "-F", "p=aci", "-F", "v="+val, "-F", "a="+ShortNameId(im.Name), "-F", "file=@"+aci.target+PATH_IMAGE_ACI_ZIP, "-u", config.GetConfig().Push.Username+":"+config.GetConfig().Push.Password, config.GetConfig().Push.Url+"/service/local/artifact/maven/content"); err != nil { panic("Cannot push aci" + err.Error()) } }
func (p *Pod) Push() { log.Get().Info("Push POD", p.manifest.Name) p.Build() for _, e := range p.manifest.Pod.Apps { aci, err := NewAciWithManifest(p.path+"/"+e.Name, p.args, p.toAciManifest(e)) if err != nil { log.Get().Panic(err) } aci.PodName = &p.manifest.Name aci.Push() } utils.ExecCmd("curl", "-i", "-F", "r=releases", "-F", "hasPom=false", "-F", "e=pod", "-F", "g=com.blablacar.aci.linux.amd64", "-F", "p=pod", "-F", "v="+p.manifest.Name.Version(), "-F", "a="+p.manifest.Name.ShortName(), "-F", "file=@"+p.target+POD_TARGET_MANIFEST, "-u", config.GetConfig().Push.Username+":"+config.GetConfig().Push.Password, config.GetConfig().Push.Url+"/service/local/artifact/maven/content") }
func (p *Pod) Push() { log.Info("Push POD", p.manifest.Name) p.Build() checkVersion := make(chan bool, 1) for _, e := range p.manifest.Pod.Apps { aci, err := NewAciWithManifest(p.path+"/"+e.Name, p.args, p.toAciManifest(e), &checkVersion) if err != nil { panic(err) } aci.PodName = &p.manifest.Name aci.Push() } for range p.manifest.Pod.Apps { <-checkVersion } if err := utils.ExecCmd("curl", "-i", "-F", "r=releases", "-F", "hasPom=false", "-F", "e=service", "-F", "g=com.blablacar.aci.linux.amd64", "-F", "p=service", "-F", "v="+p.manifest.Name.Version(), "-F", "a="+p.manifest.Name.ShortName(), "-F", "file=@"+p.target+"/"+p.manifest.Name.ShortName()+"@.service", "-u", config.GetConfig().Push.Username+":"+config.GetConfig().Push.Password, config.GetConfig().Push.Url+"/service/local/artifact/maven/content"); err != nil { panic("Cannot push pod" + err.Error()) } }
func (cnt *Img) Push() { cnt.checkBuilt() if config.GetConfig().Push.Type == "" { log.Get().Panic("Can't push, push is not configured in cnt global configuration file") } im := extractManifestFromAci(cnt.target + "/image.aci") val, _ := im.Labels.Get("version") utils.ExecCmd("curl", "-i", "-F", "r=releases", "-F", "hasPom=false", "-F", "e=aci", "-F", "g=com.blablacar.aci.linux.amd64", "-F", "p=aci", "-F", "v="+val, "-F", "a="+ShortNameId(im.Name), "-F", "file=@"+cnt.target+"/image.aci", "-u", config.GetConfig().Push.Username+":"+config.GetConfig().Push.Password, config.GetConfig().Push.Url+"/service/local/artifact/maven/content") }
func Execute() { log.Logger = logger.NewLogger() checkRktVersion() var rootCmd = &cobra.Command{Use: "cnt"} rootCmd.PersistentFlags().BoolVarP(&buildArgs.Clean, "clean", "c", false, "Clean before doing anything") rootCmd.PersistentFlags().StringVarP(&buildArgs.TargetPath, "target-path", "p", "", "Set target path") rootCmd.AddCommand(buildCmd, cleanCmd, pushCmd, installCmd, testCmd, versionCmd, initCmd, updateCmd, graphCmd) config.GetConfig().Load() rootCmd.Execute() log.Info("Victory !") }
func Execute() { log.Set(logger.NewLogger()) currentAbsDir, err := filepath.Abs("") if err != nil { log.Get().Panic("Cannot find current absolute directory") } var rootCmd = &cobra.Command{Use: "cnt"} buildCmd.Flags().BoolVarP(&buildArgs.Zip, "nozip", "z", false, "Zip final image or not") rootCmd.PersistentFlags().BoolVarP(&buildArgs.Clean, "clean", "c", false, "Clean before doing anything") rootCmd.PersistentFlags().StringVarP(&buildArgs.TargetPath, "target-path", "t", currentAbsDir, "Set target path") rootCmd.AddCommand(buildCmd, cleanCmd, pushCmd, installCmd, testCmd, versionCmd, initCmd, updateCmd) config.GetConfig().Load() rootCmd.Execute() log.Get().Info("Victory !") }
func (cnt *Img) processFrom() { if cnt.manifest.From != "" { log.Get().Info("Prepare rootfs from " + cnt.manifest.From) app, err := discovery.NewAppFromString(string(cnt.manifest.From)) if app.Labels["os"] == "" { app.Labels["os"] = "linux" } if app.Labels["arch"] == "" { app.Labels["arch"] = "amd64" } endpoint, _, err := discovery.DiscoverEndpoints(*app, false) if err != nil { panic(err) } url := endpoint.ACIEndpoints[0].ACI aciPath := config.GetConfig().AciPath + "/" + string(cnt.manifest.From) if _, err := os.Stat(aciPath + "/image.aci"); cnt.args.ForceUpdate || os.IsNotExist(err) { if err := os.MkdirAll(aciPath, 0755); err != nil { log.Get().Panic(err) } if err = utils.ExecCmd("wget", "-O", aciPath+"/image.aci", url); err != nil { os.Remove(aciPath + "/image.aci") log.Get().Panic("Cannot download from image", err) } } else { log.Get().Info("Image " + cnt.manifest.From + " Already exists locally, will not be downloaded") } utils.ExecCmd("tar", "xpf", aciPath+"/image.aci", "-C", cnt.target) // utils.ExecCmd("rkt", "--insecure-skip-verify=true", "fetch", cnt.manifest.From) // utils.ExecCmd("rkt", "image", "export", "--overwrite", cnt.manifest.From, cnt.target + "/from.aci") // utils.ExecCmd("tar", "xf", cnt.target + "/from.aci", "-C", cnt.target) // os.Remove(cnt.target + "/from.aci") } }