func Teardown(fsc *fs.FsClient, sc *systemd.SystemdClient, distributionPath string, stopDaemon bool) error { vLogger("\n# call rkt.Teardown()") for _, u := range units { exists, err := sc.Exists(u) if err != nil { return maskAny(err) } if !exists || !stopDaemon { continue } if err := sc.Stop(u); err != nil { return maskAny(err) } if err := fsc.Remove(rktSystemdPath + u); err != nil { return maskAny(err) } } // reload unit files, that is, `systemctl daemon-reload` if err := sc.Reload(); err != nil { return maskAny(err) } if err := fsc.Remove(distributionPath + "/rkt"); err != nil { return maskAny(err) } return nil }
func Teardown(fsc *fs.FsClient, sc *systemd.SystemdClient) error { vLogger("\n# call iptables.Teardown()") for _, s := range services { exists, err := sc.Exists(s) if err != nil { return maskAny(err) } if !exists { continue } if err := sc.Stop(s); err != nil { return maskAny(err) } } for _, p := range paths { if err := fsc.Remove(p); err != nil { return maskAny(err) } } if err := sc.Reload(); err != nil { return maskAny(err) } return nil }
func Teardown(fsc *fs.FsClient, sc *systemd.SystemdClient, distributionPath, overlayWorkdir, overlayMountPoint string) error { vLogger("\n# call overlay.Teardown()") exists, err := sc.Exists(overlayMount) if err != nil { return maskAny(err) } if exists { if err := sc.Stop(overlayMount); err != nil { return maskAny(err) } } if err := fsc.Remove(overlayMountPath); err != nil && !fs.IsNotExist(err) { return maskAny(err) } if err := sc.Reload(); err != nil { return maskAny(err) } if err := fsc.Remove(overlayWorkdir); err != nil && !fs.IsNotExist(err) { return maskAny(err) } return nil }
func Teardown(fsc *fs.FsClient, sc *systemd.SystemdClient, stopDaemon bool) error { vLogger("\n# call docker.Teardown()") for _, s := range services { exists, err := sc.Exists(s) if err != nil { return maskAny(err) } if !exists || !stopDaemon { continue } if err := sc.Stop(s); err != nil { return maskAny(err) } } for _, p := range paths { if err := fsc.Remove(p); err != nil { return maskAny(err) } } // reload unit files, that is, `systemctl daemon-reload` if err := sc.Reload(); err != nil { return maskAny(err) } return nil }
func createRktGarbageService(fsc *fs.FsClient, useOverlay bool) error { opts := rktOptions{ UseOverlay: useOverlay, } b, err := templates.Render(rktGarbageServiceTemplate, opts) if err != nil { return maskAny(err) } if err := fsc.Write(rktSystemdPath+rktGarbageServiceName, b.Bytes(), unitFileMode); err != nil { return maskAny(err) } rktGarbageTimer, err := templates.Asset(rktGarbageTimerTemplate) if err != nil { return maskAny(err) } if err := fsc.Write(rktSystemdPath+rktGarbageTimerName, rktGarbageTimer, unitFileMode); err != nil { return maskAny(err) } return nil }
func Teardown(fsc *fs.FsClient, distributionPath string) error { vLogger("\n# call distribution.Teardown()") if err := fsc.Remove(distributionPath); err != nil { return maskAny(err) } return nil }
func Setup(fsc *fs.FsClient, distributionPath string) error { vLogger("\n# call distribution.Setup()") if err := fsc.MkdirAll(distributionPath, fileMode); err != nil { return maskAny(err) } return nil }
func setupRules(fsc *fs.FsClient, subnet, dockerSubnet, gateway string, useDockerRules bool) error { rulesBytes, err := RenderRulesFromTemplate(subnet, dockerSubnet, gateway, useDockerRules) if err != nil { return maskAny(err) } if err := fsc.Write(rulesPath, rulesBytes, fileMode); err != nil { return maskAny(err) } return nil }
func setupRules(fsClient *fs.FsClient) error { rulesBytes, err := RenderRulesFromTemplate() if err != nil { return maskAny(err) } if err := fsClient.Write(rulesPath, rulesBytes, fileMode); err != nil { return maskAny(err) } return nil }
func setupService(fsc *fs.FsClient) error { iptablesService, err := templates.Asset(serviceTemplate) if err != nil { return maskAny(err) } if err := fsc.Write(servicePath, iptablesService, fileMode); err != nil { return maskAny(err) } return nil }
func setupNetfilter(fsc *fs.FsClient) error { netfilterService, err := templates.Asset(netfilterTemplate) if err != nil { return maskAny(err) } if err := fsc.Write(netfilterPath, netfilterService, fileMode); err != nil { return maskAny(err) } return nil }
func Setup(fsc *fs.FsClient, fc fetchclient.FetchClient, distributionPath, k8sVersion string) error { vLogger("\n# call k8s.Setup()") k8sRaw, err := fc.Get("k8s/" + k8sVersion + "/kubectl") if err != nil { return maskAny(err) } if err := fsc.Write(distributionPath+"/kubectl", k8sRaw, fileMode); err != nil { return maskAny(err) } return nil }
func createFleetService(fsc *fs.FsClient, useOverlay bool) error { opts := fleetOptions{ UseOverlay: useOverlay, } b, err := templates.Render(fleetServiceTemplate, opts) if err != nil { return maskAny(err) } if err := fsc.Write(fleetServicePath, b.Bytes(), fileMode); err != nil { return maskAny(err) } return nil }
func Teardown(fsc *fs.FsClient, sc *systemd.SystemdClient, distributionPath string, stopDaemon bool) error { vLogger("\n# call fleet.Teardown()") exists, err := sc.Exists(fleetServiceName) if err != nil { return maskAny(err) } if exists && stopDaemon { if err := sc.Stop(fleetServiceName); err != nil { return maskAny(err) } } if err := fsc.Remove(distributionPath + "/fleet"); err != nil { return maskAny(err) } if err := fsc.Remove(distributionPath + "/fleetd"); err != nil { return maskAny(err) } if err := fsc.Remove(distributionPath + "/fleetctl"); err != nil { return maskAny(err) } if err := sc.Reload(); err != nil { return maskAny(err) } return nil }
func Setup(fsc *fs.FsClient, sc *systemd.SystemdClient, fc fetchclient.FetchClient, distributionPath, etcdVersion string, startDaemon bool, useOverlay bool) error { vLogger("\n# call etcd.Setup()") etcdRaw, err := fc.Get("etcd/" + etcdVersion + "/etcd") if err != nil { return maskAny(err) } if err := fsc.Write(distributionPath+"/etcd2", etcdRaw, fileMode); err != nil { return maskAny(err) } etcdctlRaw, err := fc.Get("etcd/" + etcdVersion + "/etcdctl") if err != nil { return maskAny(err) } if err := fsc.Write(distributionPath+"/etcdctl", etcdctlRaw, fileMode); err != nil { return maskAny(err) } err = createEtcdService(fsc, useOverlay) if err != nil { return maskAny(err) } if err := sc.Reload(); err != nil { return maskAny(err) } if startDaemon { if err := sc.Start(etcdServiceName); err != nil { return maskAny(err) } } return nil }
func createDockerService(fsc *fs.FsClient, dockerVersion string, privateRegistry []string, useIPTables bool, useOverlay bool) error { opts := dockerOptions{ PrivateRegistry: privateRegistry, StorageEngine: getStorageEngine(dockerFolder), UseIPTables: useIPTables, UseOverlay: useOverlay, DockerExecArgs: make([]string, 0), } options := addVersionSpecificArguments(&opts, dockerVersion) opts = *options b, err := templates.Render(serviceTemplate, opts) if err != nil { return maskAny(err) } if err := fsc.Write(servicePath, b.Bytes(), fileMode); err != nil { return maskAny(err) } return nil }
func Setup(fsc *fs.FsClient, sc *systemd.SystemdClient, fc fetchclient.FetchClient, distributionPath, rktVersion string, startDaemon, useOverlay bool) error { vLogger("\n# call rkt.Setup()") rktRaw, err := fc.Get("rkt/" + rktVersion + "/rkt") if err != nil { return maskAny(err) } if err := fsc.Write(distributionPath+"/rkt", rktRaw, binaryFileMode); err != nil { return maskAny(err) } err = createRktGarbageService(fsc, useOverlay) if err != nil { return maskAny(err) } err = createRktMetadataService(fsc, useOverlay) if err != nil { return maskAny(err) } if err := sc.Reload(); err != nil { return maskAny(err) } if startDaemon { if err := sc.Start(rktGarbageTimerName); err != nil { return maskAny(err) } if err := sc.Start(rktMetadataServiceName); err != nil { return maskAny(err) } } return nil }
func Setup(fsc *fs.FsClient, sc *systemd.SystemdClient, distributionPath, overlayWorkdir, overlayMountPoint string) error { vLogger("\n# call overlay.Setup()") if err := fsc.MkdirAll(overlayWorkdir, fileMode); err != nil { return maskAny(err) } opts := struct { OverlayUpperdir string OverlayWorkdir string MountPoint string }{ distributionPath, overlayWorkdir, overlayMountPoint, } b, err := templates.Render(overlayMountTemplate, opts) if err != nil { return maskAny(err) } if err := fsc.Write(overlayMountPath, b.Bytes(), fileMode); err != nil { return maskAny(err) } if err := sc.Reload(); err != nil { return maskAny(err) } if err := sc.Start(overlayMount); err != nil { return maskAny(err) } return nil }
func Setup(fsc *fs.FsClient, sc *systemd.SystemdClient, fc fetchclient.FetchClient, distributionPath, fleetVersion string, startDaemon bool, useOverlay bool) error { vLogger("\n# call fleet.Setup()") fleetdRaw, err := fc.Get("fleet/" + fleetVersion + "/fleetd") if err != nil { return maskAny(err) } if err := fsc.Write(distributionPath+"/fleet", fleetdRaw, fileMode); err != nil { return maskAny(err) } if err := fsc.Symlink(distributionPath+"/fleet", distributionPath+"/fleetd"); err != nil { return maskAny(err) } fleetctlRaw, err := fc.Get("fleet/" + fleetVersion + "/fleetctl") if err != nil { return maskAny(err) } if err := fsc.Write(distributionPath+"/fleetctl", fleetctlRaw, fileMode); err != nil { return maskAny(err) } err = createFleetService(fsc, useOverlay) if err != nil { return maskAny(err) } if err := sc.Reload(); err != nil { return maskAny(err) } if startDaemon { if err := sc.Start(fleetServiceName); err != nil { return maskAny(err) } } return nil }
func Setup(fsc *fs.FsClient, sc *systemd.SystemdClient, fc fetchclient.FetchClient, distributionPath, dockerVersion string, privateRegistry []string, useIPTables, restartDaemon bool, useOverlay bool) error { vLogger("\n# call docker.Setup()") // This is the version where Docker split into multiple binaries. dockerMultipleBinariesVersion, _ := semver.NewVersion("1.11.0") semverDockerVersion, err := semver.NewVersion(dockerVersion) if err != nil { return maskAny(err) } dockerBinariesToGetAndWrite := []string{} if semverDockerVersion.LessThan(*dockerMultipleBinariesVersion) { dockerBinariesToGetAndWrite = []string{"docker"} } else { dockerBinariesToGetAndWrite = []string{ "docker", "docker-containerd", "docker-containerd-ctr", "docker-containerd-shim", "docker-runc", } } for _, dockerBinaryName := range dockerBinariesToGetAndWrite { dockerRaw, err := fc.Get("docker/" + dockerVersion + "/" + dockerBinaryName) if err != nil { return maskAny(err) } if err := fsc.Write(distributionPath+"/"+dockerBinaryName, dockerRaw, fileMode); err != nil { return maskAny(err) } } err = createDockerService(fsc, dockerVersion, privateRegistry, useIPTables, useOverlay) if err != nil { return maskAny(err) } dockerTcpSocket, err := templates.Asset(socketTemplate) if err != nil { return maskAny(err) } // write docker-tcp.socket unit to host if err := fsc.Write(socketPath, dockerTcpSocket, fileMode); err != nil { return maskAny(err) } // reload unit files, that is, `systemctl daemon-reload` if err := sc.Reload(); err != nil { return maskAny(err) } if restartDaemon { // start docker-tcp.socket unit if err := sc.Start(socketName); err != nil { return maskAny(err) } // start docker.service unit if err := sc.Start(serviceName); err != nil { // If there is a dependency error, we just log it. This only happens in case // the provisioner is restarted. Then systemd throws an error when starting // docker, even though the only dependency (docker-tcp.socket) does not // fail. if systemd.IsJobDependency(err) { vLogger(err.Error()) } else { return maskAny(err) } } } return nil }