From 8e8aae98dd835802f940854d7a4e184b8b0506de Mon Sep 17 00:00:00 2001 From: Andrew Rynhard Date: Tue, 16 Jul 2019 15:09:35 +0000 Subject: [PATCH] feat: add machined This commit splits our current init into init and machined. Signed-off-by: Andrew Rynhard --- .drone.yml | 12 + Dockerfile | 22 +- Makefile | 9 +- cmd/osctl/cmd/ls.go | 2 +- cmd/osctl/cmd/service.go | 2 +- cmd/osctl/pkg/client/client.go | 2 +- internal/app/init/main.go | 330 +---------------- .../{init => machined}/internal/reg/reg.go | 4 +- internal/app/machined/main.go | 338 ++++++++++++++++++ .../pkg/system/conditions/all.go | 0 .../pkg/system/conditions/all_test.go | 2 +- .../pkg/system/conditions/conditions.go | 0 .../pkg/system/conditions/files.go | 0 .../pkg/system/conditions/files_test.go | 2 +- .../pkg/system/conditions/none.go | 0 .../pkg/system/events/events.go | 2 +- .../pkg/system/events/events_test.go | 2 +- .../pkg/system/health/check.go | 0 .../pkg/system/health/health_test.go | 2 +- .../pkg/system/health/settings.go | 0 .../pkg/system/health/status.go | 2 +- .../{init => machined}/pkg/system/log/log.go | 0 .../pkg/system/mocks_test.go | 8 +- .../system/runner/containerd/containerd.go | 4 +- .../runner/containerd/containerd_test.go | 10 +- .../pkg/system/runner/containerd/import.go | 2 +- .../pkg/system/runner/containerd/opts.go | 0 .../pkg/system/runner/goroutine/goroutine.go | 6 +- .../system/runner/goroutine/goroutine_test.go | 6 +- .../pkg/system/runner/process/process.go | 6 +- .../pkg/system/runner/process/process_test.go | 8 +- .../pkg/system/runner/restart/restart.go | 4 +- .../pkg/system/runner/restart/restart_test.go | 4 +- .../pkg/system/runner/runner.go | 2 +- .../pkg/system/runner/runner_test.go | 0 .../{init => machined}/pkg/system/service.go | 6 +- .../pkg/system/service_events.go | 2 +- .../pkg/system/service_runner.go | 10 +- .../pkg/system/service_runner_test.go | 6 +- .../pkg/system/services/containerd.go | 12 +- .../pkg/system/services/kubeadm.go | 8 +- .../pkg/system/services/kubeadm/kubeadm.go | 2 +- .../system/services/kubeadm/kubeadm_test.go | 0 .../pkg/system/services/kubelet.go | 14 +- .../pkg/system/services/networkd.go | 8 +- .../pkg/system/services/ntpd.go | 8 +- .../pkg/system/services/osd.go | 12 +- .../pkg/system/services/proxyd.go | 12 +- .../pkg/system/services/trustd.go | 12 +- .../pkg/system/services/udevd.go | 8 +- .../pkg/system/services/udevd_trigger.go | 8 +- .../{init => machined}/pkg/system/system.go | 2 +- .../pkg/system/system_test.go | 2 +- .../app/{init => machined}/proto/api.proto | 0 internal/app/{init => machined}/shutdown.go | 0 internal/app/osd/internal/reg/init_client.go | 2 +- internal/app/osd/internal/reg/reg.go | 2 +- internal/app/proxyd/main.go | 2 +- .../containers/containerd/containerd_test.go | 8 +- internal/pkg/containers/cri/cri_test.go | 6 +- internal/pkg/cri/cri_test.go | 6 +- .../{app/init => }/pkg/network/constants.go | 0 internal/{app/init => }/pkg/network/dhcp.go | 0 .../init => }/pkg/network/network_test.go | 0 .../{app/init => }/pkg/network/networkd.go | 0 internal/{app/init => }/pkg/network/setup.go | 0 .../{app/init => }/pkg/network/setup_bond.go | 0 .../init => }/pkg/network/setup_single.go | 0 internal/{app/init => }/pkg/network/static.go | 0 .../init/internal => pkg}/rootfs/cni/cni.go | 0 .../internal => pkg}/rootfs/cni/cni_test.go | 0 .../init/internal => pkg}/rootfs/etc/etc.go | 0 .../internal => pkg}/rootfs/etc/etc_test.go | 0 .../internal => pkg}/rootfs/mount/mount.go | 4 +- .../rootfs/mount/mount_test.go | 0 .../init/internal => pkg}/rootfs/proc/proc.go | 0 .../internal => pkg}/rootfs/proc/proc_test.go | 0 .../init/internal => pkg}/rootfs/rootfs.go | 6 +- .../internal => pkg}/rootfs/rootfs_test.go | 0 .../init/internal => pkg}/security/cis/cis.go | 0 .../internal => pkg}/security/cis/cis_test.go | 0 .../internal => pkg}/security/kspp/kspp.go | 0 82 files changed, 509 insertions(+), 452 deletions(-) rename internal/app/{init => machined}/internal/reg/reg.go (97%) create mode 100644 internal/app/machined/main.go rename internal/app/{init => machined}/pkg/system/conditions/all.go (100%) rename internal/app/{init => machined}/pkg/system/conditions/all_test.go (96%) rename internal/app/{init => machined}/pkg/system/conditions/conditions.go (100%) rename internal/app/{init => machined}/pkg/system/conditions/files.go (100%) rename internal/app/{init => machined}/pkg/system/conditions/files_test.go (97%) rename internal/app/{init => machined}/pkg/system/conditions/none.go (100%) rename internal/app/{init => machined}/pkg/system/events/events.go (98%) rename internal/app/{init => machined}/pkg/system/events/events_test.go (96%) rename internal/app/{init => machined}/pkg/system/health/check.go (100%) rename internal/app/{init => machined}/pkg/system/health/health_test.go (98%) rename internal/app/{init => machined}/pkg/system/health/settings.go (100%) rename internal/app/{init => machined}/pkg/system/health/status.go (97%) rename internal/app/{init => machined}/pkg/system/log/log.go (100%) rename internal/app/{init => machined}/pkg/system/mocks_test.go (90%) rename internal/app/{init => machined}/pkg/system/runner/containerd/containerd.go (97%) rename internal/app/{init => machined}/pkg/system/runner/containerd/containerd_test.go (96%) rename internal/app/{init => machined}/pkg/system/runner/containerd/import.go (97%) rename internal/app/{init => machined}/pkg/system/runner/containerd/opts.go (100%) rename internal/app/{init => machined}/pkg/system/runner/goroutine/goroutine.go (92%) rename internal/app/{init => machined}/pkg/system/runner/goroutine/goroutine_test.go (94%) rename internal/app/{init => machined}/pkg/system/runner/process/process.go (93%) rename internal/app/{init => machined}/pkg/system/runner/process/process_test.go (93%) rename internal/app/{init => machined}/pkg/system/runner/restart/restart.go (96%) rename internal/app/{init => machined}/pkg/system/runner/restart/restart_test.go (95%) rename internal/app/{init => machined}/pkg/system/runner/runner.go (97%) rename internal/app/{init => machined}/pkg/system/runner/runner_test.go (100%) rename internal/app/{init => machined}/pkg/system/service.go (84%) rename internal/app/{init => machined}/pkg/system/service_events.go (94%) rename internal/app/{init => machined}/pkg/system/service_runner.go (96%) rename internal/app/{init => machined}/pkg/system/service_runner_test.go (96%) rename internal/app/{init => machined}/pkg/system/services/containerd.go (85%) rename internal/app/{init => machined}/pkg/system/services/kubeadm.go (95%) rename internal/app/{init => machined}/pkg/system/services/kubeadm/kubeadm.go (99%) rename internal/app/{init => machined}/pkg/system/services/kubeadm/kubeadm_test.go (100%) rename internal/app/{init => machined}/pkg/system/services/kubelet.go (91%) rename internal/app/{init => machined}/pkg/system/services/networkd.go (81%) rename internal/app/{init => machined}/pkg/system/services/ntpd.go (87%) rename internal/app/{init => machined}/pkg/system/services/osd.go (88%) rename internal/app/{init => machined}/pkg/system/services/proxyd.go (87%) rename internal/app/{init => machined}/pkg/system/services/trustd.go (87%) rename internal/app/{init => machined}/pkg/system/services/udevd.go (84%) rename internal/app/{init => machined}/pkg/system/services/udevd_trigger.go (83%) rename internal/app/{init => machined}/pkg/system/system.go (98%) rename internal/app/{init => machined}/pkg/system/system_test.go (94%) rename internal/app/{init => machined}/proto/api.proto (100%) rename internal/app/{init => machined}/shutdown.go (100%) rename internal/{app/init => }/pkg/network/constants.go (100%) rename internal/{app/init => }/pkg/network/dhcp.go (100%) rename internal/{app/init => }/pkg/network/network_test.go (100%) rename internal/{app/init => }/pkg/network/networkd.go (100%) rename internal/{app/init => }/pkg/network/setup.go (100%) rename internal/{app/init => }/pkg/network/setup_bond.go (100%) rename internal/{app/init => }/pkg/network/setup_single.go (100%) rename internal/{app/init => }/pkg/network/static.go (100%) rename internal/{app/init/internal => pkg}/rootfs/cni/cni.go (100%) rename internal/{app/init/internal => pkg}/rootfs/cni/cni_test.go (100%) rename internal/{app/init/internal => pkg}/rootfs/etc/etc.go (100%) rename internal/{app/init/internal => pkg}/rootfs/etc/etc_test.go (100%) rename internal/{app/init/internal => pkg}/rootfs/mount/mount.go (98%) rename internal/{app/init/internal => pkg}/rootfs/mount/mount_test.go (100%) rename internal/{app/init/internal => pkg}/rootfs/proc/proc.go (100%) rename internal/{app/init/internal => pkg}/rootfs/proc/proc_test.go (100%) rename internal/{app/init/internal => pkg}/rootfs/rootfs.go (95%) rename internal/{app/init/internal => pkg}/rootfs/rootfs_test.go (100%) rename internal/{app/init/internal => pkg}/security/cis/cis.go (100%) rename internal/{app/init/internal => pkg}/security/cis/cis_test.go (100%) rename internal/{app/init/internal => pkg}/security/kspp/kspp.go (100%) diff --git a/.drone.yml b/.drone.yml index 4d65b2bac..6d5b25289 100644 --- a/.drone.yml +++ b/.drone.yml @@ -46,6 +46,17 @@ steps: depends_on: - lint + - name: build-machined + image: autonomy/build-container:latest + pull: always + environment: + BUILDKIT_HOST: tcp://buildkitd.ci.svc:1234 + BINDIR: /usr/local/bin + commands: + - make machined + depends_on: + - lint + - name: build-osd image: autonomy/build-container:latest pull: always @@ -124,6 +135,7 @@ steps: - name: dockersock path: /var/run depends_on: + - build-machined - build-osd - build-proxyd - build-trustd diff --git a/Dockerfile b/Dockerfile index da3d0987f..70250e251 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,13 +29,13 @@ RUN protoc -I./proto --go_out=plugins=grpc:proto proto/api.proto WORKDIR /trustd COPY ./internal/app/trustd/proto ./proto RUN protoc -I./proto --go_out=plugins=grpc:proto proto/api.proto -WORKDIR /init -COPY ./internal/app/init/proto ./proto +WORKDIR /machined +COPY ./internal/app/machined/proto ./proto RUN protoc -I./proto --go_out=plugins=grpc:proto proto/api.proto FROM scratch AS generate COPY --from=generate-build /osd/proto/api.pb.go /internal/app/osd/proto/ COPY --from=generate-build /trustd/proto/api.pb.go /internal/app/trustd/proto/ -COPY --from=generate-build /init/proto/api.pb.go /internal/app/init/proto/ +COPY --from=generate-build /machined/proto/api.pb.go /internal/app/machined/proto/ # The base target provides a container that can be used to build all Talos # assets. @@ -64,6 +64,18 @@ RUN chmod +x /init FROM scratch AS init COPY --from=init-build /init /init +# The machined target builds the machined image. + +FROM base AS machined-build +ARG SHA +ARG TAG +ARG VERSION_PKG="github.com/talos-systems/talos/internal/pkg/version" +WORKDIR /src/internal/app/machined +RUN --mount=type=cache,target=/root/.cache go build -a -ldflags "-s -w -X ${VERSION_PKG}.Name=Server -X ${VERSION_PKG}.SHA=${SHA} -X ${VERSION_PKG}.Tag=${TAG}" -o /machined +RUN chmod +x /machined +FROM scratch AS machined +COPY --from=machined-build /machined /machined + # The ntpd target builds the ntpd image. FROM base AS ntpd-build @@ -192,6 +204,7 @@ COPY --from=docker.io/autonomy/base:f9a4941 /toolchain/lib/libblkid.* /rootfs/li COPY --from=docker.io/autonomy/base:f9a4941 /toolchain/lib/libuuid.* /rootfs/lib COPY --from=docker.io/autonomy/base:f9a4941 /toolchain/lib/libkmod.* /rootfs/lib COPY --from=docker.io/autonomy/kernel:ebaa167 /lib/modules /rootfs/lib/modules +COPY --from=machined /machined /rootfs/sbin/machined COPY images/*.tar /rootfs/usr/images COPY ./hack/cleanup.sh /toolchain/bin/cleanup.sh RUN cleanup.sh /rootfs @@ -212,8 +225,7 @@ COPY --from=rootfs-archive /rootfs.tar.gz /rootfs.tar.gz FROM scratch AS talos COPY --from=rootfs-base / / -COPY --from=init /init /sbin/init -ENTRYPOINT ["/sbin/init"] +ENTRYPOINT ["/sbin/machined"] # The installer target generates an image that can be used to install Talos to # various environments. diff --git a/Makefile b/Makefile index eccf7c5b3..ca234a246 100644 --- a/Makefile +++ b/Makefile @@ -138,7 +138,7 @@ initramfs: buildkitd $(COMMON_ARGS) .PHONY: rootfs -rootfs: buildkitd osd trustd proxyd ntpd +rootfs: buildkitd machined osd trustd proxyd ntpd @$(BINDIR)/buildctl --addr $(BUILDKIT_HOST) \ build \ --output type=local,dest=build \ @@ -249,6 +249,13 @@ osctl-darwin: buildkitd --opt target=$@ \ $(COMMON_ARGS) +.PHONY: machined +machined: buildkitd images + @$(BINDIR)/buildctl --addr $(BUILDKIT_HOST) \ + build \ + --opt target=$@ \ + $(COMMON_ARGS) + .PHONY: osd osd: buildkitd images @$(BINDIR)/buildctl --addr $(BUILDKIT_HOST) \ diff --git a/cmd/osctl/cmd/ls.go b/cmd/osctl/cmd/ls.go index 3f8867328..9f4144cb8 100644 --- a/cmd/osctl/cmd/ls.go +++ b/cmd/osctl/cmd/ls.go @@ -17,7 +17,7 @@ import ( "github.com/talos-systems/talos/cmd/osctl/pkg/client" "github.com/talos-systems/talos/cmd/osctl/pkg/helpers" - initproto "github.com/talos-systems/talos/internal/app/init/proto" + initproto "github.com/talos-systems/talos/internal/app/machined/proto" ) // lsCmd represents the ls command diff --git a/cmd/osctl/cmd/service.go b/cmd/osctl/cmd/service.go index 19a044132..f87a5e919 100644 --- a/cmd/osctl/cmd/service.go +++ b/cmd/osctl/cmd/service.go @@ -15,7 +15,7 @@ import ( "github.com/talos-systems/talos/cmd/osctl/pkg/client" "github.com/talos-systems/talos/cmd/osctl/pkg/helpers" - initproto "github.com/talos-systems/talos/internal/app/init/proto" + initproto "github.com/talos-systems/talos/internal/app/machined/proto" ) // serviceCmd represents the service command diff --git a/cmd/osctl/pkg/client/client.go b/cmd/osctl/pkg/client/client.go index d9e9b02df..24fc09d00 100644 --- a/cmd/osctl/pkg/client/client.go +++ b/cmd/osctl/pkg/client/client.go @@ -22,7 +22,7 @@ import ( "google.golang.org/grpc/status" "github.com/talos-systems/talos/cmd/osctl/pkg/client/config" - initproto "github.com/talos-systems/talos/internal/app/init/proto" + initproto "github.com/talos-systems/talos/internal/app/machined/proto" "github.com/talos-systems/talos/internal/app/osd/proto" "github.com/talos-systems/talos/internal/pkg/proc" ) diff --git a/internal/app/init/main.go b/internal/app/init/main.go index 9deccc3e4..1f5ab6364 100644 --- a/internal/app/init/main.go +++ b/internal/app/init/main.go @@ -5,51 +5,22 @@ package main import ( - "encoding/base64" - "flag" - "fmt" - "io/ioutil" "log" "os" - "os/signal" - "strings" - "syscall" - "time" "github.com/pkg/errors" "github.com/talos-systems/talos/internal/app/init/internal/platform" - "github.com/talos-systems/talos/internal/app/init/internal/reg" - "github.com/talos-systems/talos/internal/app/init/internal/rootfs" - "github.com/talos-systems/talos/internal/app/init/internal/rootfs/mount" - "github.com/talos-systems/talos/internal/app/init/internal/security/kspp" - "github.com/talos-systems/talos/internal/app/init/pkg/network" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/pkg/system/services" "github.com/talos-systems/talos/internal/pkg/constants" - "github.com/talos-systems/talos/internal/pkg/grpc/factory" "github.com/talos-systems/talos/internal/pkg/kernel" - "github.com/talos-systems/talos/internal/pkg/startup" + "github.com/talos-systems/talos/internal/pkg/network" + "github.com/talos-systems/talos/internal/pkg/rootfs" + "github.com/talos-systems/talos/internal/pkg/rootfs/mount" + "github.com/talos-systems/talos/internal/pkg/security/kspp" "github.com/talos-systems/talos/pkg/userdata" "golang.org/x/sys/unix" - - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" ) -var ( - switchRoot *bool - inContainer *bool - rebootFlag = unix.LINUX_REBOOT_CMD_RESTART - userdataArg *string -) - -func init() { - switchRoot = flag.Bool("switch-root", false, "perform a switch_root") - inContainer = flag.Bool("in-container", false, "run Talos in a container") - userdataArg = flag.String("userdata", "", "the base64 encoded userdata") - flag.Parse() -} - func kmsg(prefix string) (*os.File, error) { out, err := os.OpenFile("/dev/kmsg", os.O_RDWR|unix.O_CLOEXEC|unix.O_NONBLOCK|unix.O_NOCTTY, 0666) if err != nil { @@ -62,54 +33,6 @@ func kmsg(prefix string) (*os.File, error) { return out, nil } -func container() (err error) { - log.Println("preparing container based deploy") - - log.Println("remounting volumes as shared mounts") - targets := []string{"/", "/var/lib/kubelet", "/etc/cni"} - for _, t := range targets { - if err = unix.Mount("", t, "", unix.MS_SHARED, ""); err != nil { - return err - } - } - - if *userdataArg != "" { - log.Printf("writing the user data: %s\n", constants.UserDataPath) - var decoded []byte - if decoded, err = base64.StdEncoding.DecodeString(*userdataArg); err != nil { - return err - } - if err = ioutil.WriteFile(constants.UserDataPath, decoded, 0400); err != nil { - return err - } - } - - var data *userdata.UserData - if data, err = userdata.Open(constants.UserDataPath); err != nil { - return err - } - - // Workarounds for running in a container. - - data.Services.Kubeadm.IgnorePreflightErrors = []string{"FileContent--proc-sys-net-bridge-bridge-nf-call-iptables", "Swap", "SystemVerification"} - initConfiguration, ok := data.Services.Kubeadm.Configuration.(*kubeadmapi.InitConfiguration) - if ok { - initConfiguration.ClusterConfiguration.ComponentConfigs.Kubelet.FailSwapOn = false - // See https://github.com/kubernetes/kubernetes/issues/58610#issuecomment-359552443 - max := int32(0) - maxPerCore := int32(0) - initConfiguration.ClusterConfiguration.ComponentConfigs.KubeProxy.Conntrack.Max = &max - initConfiguration.ClusterConfiguration.ComponentConfigs.KubeProxy.Conntrack.MaxPerCore = &maxPerCore - } - - log.Println("preparing the root filesystem") - if err = rootfs.Prepare("", true, data); err != nil { - return err - } - - return nil -} - // nolint: gocyclo func initram() (err error) { var initializer *mount.Initializer @@ -189,250 +112,15 @@ func initram() (err error) { return nil } -func createOverlay(path string) error { - log.Printf("mounting overlay for %s\n", path) - - parts := strings.Split(path, "/") - prefix := strings.Join(parts[1:], "-") - diff := fmt.Sprintf("/var/%s-diff", prefix) - workdir := fmt.Sprintf("/var/%s-workdir", prefix) - - for _, s := range []string{diff, workdir} { - if err := os.MkdirAll(s, 0700); err != nil { - return err - } - } - - opts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", path, diff, workdir) - if err := unix.Mount("overlay", path, "overlay", 0, opts); err != nil { - return errors.Errorf("error creating overlay mount to %s: %v", path, err) - } - - return nil -} - -// nolint: gocyclo -func root() (err error) { - if !*inContainer { - // Setup logging to /dev/kmsg. - if _, err = kmsg("[talos]"); err != nil { - return fmt.Errorf("failed to setup logging to /dev/kmsg: %v", err) - } - - for _, overlay := range []string{"/etc/kubernetes", "/etc/cni", "/usr/libexec/kubernetes", "/usr/etc/udev", "/opt"} { - if err = createOverlay(overlay); err != nil { - return err - } - } - } - - // Read the user data. - log.Printf("reading the user data: %s\n", constants.UserDataPath) - var data *userdata.UserData - if data, err = userdata.Open(constants.UserDataPath); err != nil { - return err - } - - // Mount the extra partitions. - log.Printf("mounting the extra partitions") - if err = mount.ExtraDevices(data); err != nil { - return err - } - - // Write any user specified files to disk. - log.Println("writing the files specified in the user data to disk") - if err = data.WriteFiles(); err != nil { - return err - } - - // Set the requested environment variables. - log.Println("setting environment variables") - for key, val := range data.Env { - if err = os.Setenv(key, val); err != nil { - log.Printf("WARNING failed to set enivronment variable: %v", err) - } - } - - poweroffCh, err := listenForPowerButton() - if err != nil { - log.Printf("WARNING: power off events will be ignored: %+v", err) - } - - termCh := make(chan os.Signal, 1) - signal.Notify(termCh, syscall.SIGTERM) - - // Get a handle to the system services API. - svcs := system.Services(data) - defer svcs.Shutdown() - - // Instantiate internal init API - api := reg.NewRegistrator(data) - server := factory.NewServer(api) - listener, err := factory.NewListener( - factory.Network("unix"), - factory.SocketPath(constants.InitSocketPath), - ) - if err != nil { - panic(err) - } - defer server.Stop() - - go func() { - // nolint: errcheck - server.Serve(listener) - }() - - startSystemServices(data) - startKubernetesServices(data) - - select { - case <-api.ShutdownCh: - log.Printf("poweroff via API received") - // poweroff, proceed to shutdown but mark as poweroff - rebootFlag = unix.LINUX_REBOOT_CMD_POWER_OFF - case <-poweroffCh: - log.Printf("poweroff via ACPI") - // poweroff, proceed to shutdown but mark as poweroff - rebootFlag = unix.LINUX_REBOOT_CMD_POWER_OFF - case <-termCh: - log.Printf("SIGTERM received, rebooting...") - case <-api.RebootCh: - log.Printf("reboot via API received, rebooting...") - } - - return nil -} - -func startSystemServices(data *userdata.UserData) { - svcs := system.Services(data) - - log.Println("starting system services") - // Start the services common to all nodes. - svcs.Start( - &services.Networkd{}, - &services.Containerd{}, - &services.Udevd{}, - &services.UdevdTrigger{}, - &services.OSD{}, - &services.NTPd{}, - ) - // Start the services common to all master nodes. - if data.Services.Kubeadm.IsControlPlane() { - svcs.Start( - &services.Trustd{}, - &services.Proxyd{}, - ) - } - -} - -func startKubernetesServices(data *userdata.UserData) { - svcs := system.Services(data) - - log.Println("starting kubernetes services") - svcs.Start( - &services.Kubelet{}, - &services.Kubeadm{}, - ) -} - -func sync() { - syncdone := make(chan struct{}) - - go func() { - defer close(syncdone) - unix.Sync() - }() - - log.Printf("waiting for sync...") - - for i := 29; i >= 0; i-- { - select { - case <-syncdone: - log.Printf("sync done") - return - case <-time.After(time.Second): - } - if i != 0 { - log.Printf("waiting %d more seconds for sync to finish", i) - } - } - - log.Printf("sync hasn't completed in time, aborting...") -} - -func reboot() { - // See http://man7.org/linux/man-pages/man2/reboot.2.html. - sync() - - // nolint: errcheck - unix.Reboot(rebootFlag) - - if *inContainer { - return - } - - select {} -} - -func recovery() { - if r := recover(); r != nil { - log.Printf("recovered from: %+v\n", r) - for i := 10; i >= 0; i-- { - log.Printf("rebooting in %d seconds\n", i) - time.Sleep(1 * time.Second) - } - } -} - func main() { - // This is main entrypoint into init() execution, after kernel boot control is passsed - // to this function. - // - // When initram() finishes, it execs into itself with -switch-root flag, so control is passed - // once again into this function. - // - // When init() terminates either on normal shutdown (reboot, poweroff), or due to panic, control - // goes through recovery() and reboot() functions below, which finalize node state - sync buffers, - // initiate poweroff or reboot. Also on shutdown, other deferred function are called, for example - // services are gracefully shutdown. - - // on any return from init.main(), initiate host reboot or shutdown - defer reboot() - // handle any panics in the main goroutine, and proceed to reboot() above - defer recovery() - - if err := startup.RandSeed(); err != nil { - panic(err) - } - - // TODO(andrewrynhard): Remove this and be explicit. if err := os.Setenv("PATH", constants.PATH); err != nil { panic(errors.New("error setting PATH")) } - switch { - case *switchRoot: - if err := root(); err != nil { - panic(errors.Wrap(err, "boot failed")) - } - - // root() hangs until reboot - case *inContainer: - if err := container(); err != nil { - panic(errors.Wrap(err, "failed to prepare container based deploy")) - } - if err := root(); err != nil { - panic(errors.Wrap(err, "boot failed")) - } - - // root() hangs until reboot - default: - if err := initram(); err != nil { - panic(errors.Wrap(err, "early boot failed")) - } - - // We should never reach this point if things are working as intended. - panic(errors.New("unknown error")) + if err := initram(); err != nil { + panic(errors.Wrap(err, "early boot failed")) } + + // We should never reach this point if things are working as intended. + panic(errors.New("unknown error")) } diff --git a/internal/app/init/internal/reg/reg.go b/internal/app/machined/internal/reg/reg.go similarity index 97% rename from internal/app/init/internal/reg/reg.go rename to internal/app/machined/internal/reg/reg.go index c7cffb07e..f92797d5b 100644 --- a/internal/app/init/internal/reg/reg.go +++ b/internal/app/machined/internal/reg/reg.go @@ -17,8 +17,8 @@ import ( "github.com/pkg/errors" "google.golang.org/grpc" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/proto" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/proto" "github.com/talos-systems/talos/internal/pkg/archiver" "github.com/talos-systems/talos/internal/pkg/chunker/stream" "github.com/talos-systems/talos/internal/pkg/upgrade" diff --git a/internal/app/machined/main.go b/internal/app/machined/main.go new file mode 100644 index 000000000..8591f2a65 --- /dev/null +++ b/internal/app/machined/main.go @@ -0,0 +1,338 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package main + +import ( + "encoding/base64" + "flag" + "fmt" + "io/ioutil" + "log" + "os" + "os/signal" + "strings" + "syscall" + "time" + + "github.com/pkg/errors" + "github.com/talos-systems/talos/internal/app/machined/internal/reg" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/services" + "github.com/talos-systems/talos/internal/pkg/constants" + "github.com/talos-systems/talos/internal/pkg/grpc/factory" + "github.com/talos-systems/talos/internal/pkg/rootfs" + "github.com/talos-systems/talos/internal/pkg/rootfs/mount" + "github.com/talos-systems/talos/internal/pkg/startup" + "github.com/talos-systems/talos/pkg/userdata" + + "golang.org/x/sys/unix" + + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" +) + +var ( + inContainer *bool + rebootFlag = unix.LINUX_REBOOT_CMD_RESTART + userdataArg *string +) + +func init() { + inContainer = flag.Bool("in-container", false, "run Talos in a container") + userdataArg = flag.String("userdata", "", "the base64 encoded userdata") + flag.Parse() +} + +func kmsg(prefix string) (*os.File, error) { + out, err := os.OpenFile("/dev/kmsg", os.O_RDWR|unix.O_CLOEXEC|unix.O_NONBLOCK|unix.O_NOCTTY, 0666) + if err != nil { + return nil, errors.Wrap(err, "failed to open /dev/kmsg") + } + log.SetOutput(out) + log.SetPrefix(prefix + " ") + log.SetFlags(0) + + return out, nil +} + +func container() (err error) { + log.Println("preparing container based deploy") + + log.Println("remounting volumes as shared mounts") + targets := []string{"/", "/var/lib/kubelet", "/etc/cni"} + for _, t := range targets { + if err = unix.Mount("", t, "", unix.MS_SHARED, ""); err != nil { + return err + } + } + + if *userdataArg != "" { + log.Printf("writing the user data: %s\n", constants.UserDataPath) + var decoded []byte + if decoded, err = base64.StdEncoding.DecodeString(*userdataArg); err != nil { + return err + } + if err = ioutil.WriteFile(constants.UserDataPath, decoded, 0400); err != nil { + return err + } + } + + var data *userdata.UserData + if data, err = userdata.Open(constants.UserDataPath); err != nil { + return err + } + + // Workarounds for running in a container. + + data.Services.Kubeadm.IgnorePreflightErrors = []string{"FileContent--proc-sys-net-bridge-bridge-nf-call-iptables", "Swap", "SystemVerification"} + initConfiguration, ok := data.Services.Kubeadm.Configuration.(*kubeadmapi.InitConfiguration) + if ok { + initConfiguration.ClusterConfiguration.ComponentConfigs.Kubelet.FailSwapOn = false + // See https://github.com/kubernetes/kubernetes/issues/58610#issuecomment-359552443 + max := int32(0) + maxPerCore := int32(0) + initConfiguration.ClusterConfiguration.ComponentConfigs.KubeProxy.Conntrack.Max = &max + initConfiguration.ClusterConfiguration.ComponentConfigs.KubeProxy.Conntrack.MaxPerCore = &maxPerCore + } + + log.Println("preparing the root filesystem") + if err = rootfs.Prepare("", true, data); err != nil { + return err + } + + return nil +} + +func createOverlay(path string) error { + log.Printf("mounting overlay for %s\n", path) + + parts := strings.Split(path, "/") + prefix := strings.Join(parts[1:], "-") + diff := fmt.Sprintf("/var/%s-diff", prefix) + workdir := fmt.Sprintf("/var/%s-workdir", prefix) + + for _, s := range []string{diff, workdir} { + if err := os.MkdirAll(s, 0700); err != nil { + return err + } + } + + opts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", path, diff, workdir) + if err := unix.Mount("overlay", path, "overlay", 0, opts); err != nil { + return errors.Errorf("error creating overlay mount to %s: %v", path, err) + } + + return nil +} + +// nolint: gocyclo +func root() (err error) { + if !*inContainer { + // Setup logging to /dev/kmsg. + if _, err = kmsg("[talos]"); err != nil { + return fmt.Errorf("failed to setup logging to /dev/kmsg: %v", err) + } + + for _, overlay := range []string{"/etc/kubernetes", "/etc/cni", "/usr/libexec/kubernetes", "/usr/etc/udev", "/opt"} { + if err = createOverlay(overlay); err != nil { + return err + } + } + } + + // Read the user data. + log.Printf("reading the user data: %s\n", constants.UserDataPath) + var data *userdata.UserData + if data, err = userdata.Open(constants.UserDataPath); err != nil { + return err + } + + // Mount the extra partitions. + log.Printf("mounting the extra partitions") + if err = mount.ExtraDevices(data); err != nil { + return err + } + + // Write any user specified files to disk. + log.Println("writing the files specified in the user data to disk") + if err = data.WriteFiles(); err != nil { + return err + } + + // Set the requested environment variables. + log.Println("setting environment variables") + for key, val := range data.Env { + if err = os.Setenv(key, val); err != nil { + log.Printf("WARNING failed to set enivronment variable: %v", err) + } + } + + poweroffCh, err := listenForPowerButton() + if err != nil { + log.Printf("WARNING: power off events will be ignored: %+v", err) + } + + termCh := make(chan os.Signal, 1) + signal.Notify(termCh, syscall.SIGTERM) + + // Get a handle to the system services API. + svcs := system.Services(data) + defer svcs.Shutdown() + + // Instantiate internal init API + api := reg.NewRegistrator(data) + server := factory.NewServer(api) + listener, err := factory.NewListener( + factory.Network("unix"), + factory.SocketPath(constants.InitSocketPath), + ) + if err != nil { + panic(err) + } + defer server.Stop() + + go func() { + // nolint: errcheck + server.Serve(listener) + }() + + startSystemServices(data) + startKubernetesServices(data) + + select { + case <-api.ShutdownCh: + log.Printf("poweroff via API received") + // poweroff, proceed to shutdown but mark as poweroff + rebootFlag = unix.LINUX_REBOOT_CMD_POWER_OFF + case <-poweroffCh: + log.Printf("poweroff via ACPI") + // poweroff, proceed to shutdown but mark as poweroff + rebootFlag = unix.LINUX_REBOOT_CMD_POWER_OFF + case <-termCh: + log.Printf("SIGTERM received, rebooting...") + case <-api.RebootCh: + log.Printf("reboot via API received, rebooting...") + } + + return nil +} + +func startSystemServices(data *userdata.UserData) { + svcs := system.Services(data) + + log.Println("starting system services") + // Start the services common to all nodes. + svcs.Start( + &services.Networkd{}, + &services.Containerd{}, + &services.Udevd{}, + &services.UdevdTrigger{}, + &services.OSD{}, + &services.NTPd{}, + ) + // Start the services common to all master nodes. + if data.Services.Kubeadm.IsControlPlane() { + svcs.Start( + &services.Trustd{}, + &services.Proxyd{}, + ) + } + +} + +func startKubernetesServices(data *userdata.UserData) { + svcs := system.Services(data) + + log.Println("starting kubernetes services") + svcs.Start( + &services.Kubelet{}, + &services.Kubeadm{}, + ) +} + +func sync() { + syncdone := make(chan struct{}) + + go func() { + defer close(syncdone) + unix.Sync() + }() + + log.Printf("waiting for sync...") + + for i := 29; i >= 0; i-- { + select { + case <-syncdone: + log.Printf("sync done") + return + case <-time.After(time.Second): + } + if i != 0 { + log.Printf("waiting %d more seconds for sync to finish", i) + } + } + + log.Printf("sync hasn't completed in time, aborting...") +} + +func reboot() { + // See http://man7.org/linux/man-pages/man2/reboot.2.html. + sync() + + // nolint: errcheck + unix.Reboot(rebootFlag) + + if *inContainer { + return + } + + select {} +} + +func recovery() { + if r := recover(); r != nil { + log.Printf("recovered from: %+v\n", r) + for i := 10; i >= 0; i-- { + log.Printf("rebooting in %d seconds\n", i) + time.Sleep(1 * time.Second) + } + } +} + +func main() { + // This is main entrypoint into init() execution, after kernel boot control is passsed + // to this function. + // + // When initram() finishes, it execs into itself with -switch-root flag, so control is passed + // once again into this function. + // + // When init() terminates either on normal shutdown (reboot, poweroff), or due to panic, control + // goes through recovery() and reboot() functions below, which finalize node state - sync buffers, + // initiate poweroff or reboot. Also on shutdown, other deferred function are called, for example + // services are gracefully shutdown. + + // on any return from init.main(), initiate host reboot or shutdown + defer reboot() + // handle any panics in the main goroutine, and proceed to reboot() above + defer recovery() + + if err := startup.RandSeed(); err != nil { + panic(err) + } + + // TODO(andrewrynhard): Remove this and be explicit. + if err := os.Setenv("PATH", constants.PATH); err != nil { + panic(errors.New("error setting PATH")) + } + + if *inContainer { + if err := container(); err != nil { + panic(errors.Wrap(err, "failed to prepare container based deploy")) + } + } + + if err := root(); err != nil { + panic(errors.Wrap(err, "boot failed")) + } +} diff --git a/internal/app/init/pkg/system/conditions/all.go b/internal/app/machined/pkg/system/conditions/all.go similarity index 100% rename from internal/app/init/pkg/system/conditions/all.go rename to internal/app/machined/pkg/system/conditions/all.go diff --git a/internal/app/init/pkg/system/conditions/all_test.go b/internal/app/machined/pkg/system/conditions/all_test.go similarity index 96% rename from internal/app/init/pkg/system/conditions/all_test.go rename to internal/app/machined/pkg/system/conditions/all_test.go index 1effb800e..26c678ce3 100644 --- a/internal/app/init/pkg/system/conditions/all_test.go +++ b/internal/app/machined/pkg/system/conditions/all_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" ) type AllSuite struct { diff --git a/internal/app/init/pkg/system/conditions/conditions.go b/internal/app/machined/pkg/system/conditions/conditions.go similarity index 100% rename from internal/app/init/pkg/system/conditions/conditions.go rename to internal/app/machined/pkg/system/conditions/conditions.go diff --git a/internal/app/init/pkg/system/conditions/files.go b/internal/app/machined/pkg/system/conditions/files.go similarity index 100% rename from internal/app/init/pkg/system/conditions/files.go rename to internal/app/machined/pkg/system/conditions/files.go diff --git a/internal/app/init/pkg/system/conditions/files_test.go b/internal/app/machined/pkg/system/conditions/files_test.go similarity index 97% rename from internal/app/init/pkg/system/conditions/files_test.go rename to internal/app/machined/pkg/system/conditions/files_test.go index a22af1e0f..02fed0ab3 100644 --- a/internal/app/init/pkg/system/conditions/files_test.go +++ b/internal/app/machined/pkg/system/conditions/files_test.go @@ -14,7 +14,7 @@ import ( "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" ) type FilesSuite struct { diff --git a/internal/app/init/pkg/system/conditions/none.go b/internal/app/machined/pkg/system/conditions/none.go similarity index 100% rename from internal/app/init/pkg/system/conditions/none.go rename to internal/app/machined/pkg/system/conditions/none.go diff --git a/internal/app/init/pkg/system/events/events.go b/internal/app/machined/pkg/system/events/events.go similarity index 98% rename from internal/app/init/pkg/system/events/events.go rename to internal/app/machined/pkg/system/events/events.go index e66e99c87..c43433ac9 100644 --- a/internal/app/init/pkg/system/events/events.go +++ b/internal/app/machined/pkg/system/events/events.go @@ -9,7 +9,7 @@ import ( "github.com/golang/protobuf/ptypes" - "github.com/talos-systems/talos/internal/app/init/proto" + "github.com/talos-systems/talos/internal/app/machined/proto" ) // MaxEventsToKeep is maximum number of events to keep per service before dropping old entries diff --git a/internal/app/init/pkg/system/events/events_test.go b/internal/app/machined/pkg/system/events/events_test.go similarity index 96% rename from internal/app/init/pkg/system/events/events_test.go rename to internal/app/machined/pkg/system/events/events_test.go index b6fb32869..f212b399e 100644 --- a/internal/app/init/pkg/system/events/events_test.go +++ b/internal/app/machined/pkg/system/events/events_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" ) type EventsSuite struct { diff --git a/internal/app/init/pkg/system/health/check.go b/internal/app/machined/pkg/system/health/check.go similarity index 100% rename from internal/app/init/pkg/system/health/check.go rename to internal/app/machined/pkg/system/health/check.go diff --git a/internal/app/init/pkg/system/health/health_test.go b/internal/app/machined/pkg/system/health/health_test.go similarity index 98% rename from internal/app/init/pkg/system/health/health_test.go rename to internal/app/machined/pkg/system/health/health_test.go index b46fff4f3..55496edff 100644 --- a/internal/app/init/pkg/system/health/health_test.go +++ b/internal/app/machined/pkg/system/health/health_test.go @@ -13,7 +13,7 @@ import ( "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" ) type CheckSuite struct { diff --git a/internal/app/init/pkg/system/health/settings.go b/internal/app/machined/pkg/system/health/settings.go similarity index 100% rename from internal/app/init/pkg/system/health/settings.go rename to internal/app/machined/pkg/system/health/settings.go diff --git a/internal/app/init/pkg/system/health/status.go b/internal/app/machined/pkg/system/health/status.go similarity index 97% rename from internal/app/init/pkg/system/health/status.go rename to internal/app/machined/pkg/system/health/status.go index e14b3ca12..3a7fee70c 100644 --- a/internal/app/init/pkg/system/health/status.go +++ b/internal/app/machined/pkg/system/health/status.go @@ -10,7 +10,7 @@ import ( "github.com/golang/protobuf/ptypes" - "github.com/talos-systems/talos/internal/app/init/proto" + "github.com/talos-systems/talos/internal/app/machined/proto" ) // Status of the healthcheck diff --git a/internal/app/init/pkg/system/log/log.go b/internal/app/machined/pkg/system/log/log.go similarity index 100% rename from internal/app/init/pkg/system/log/log.go rename to internal/app/machined/pkg/system/log/log.go diff --git a/internal/app/init/pkg/system/mocks_test.go b/internal/app/machined/pkg/system/mocks_test.go similarity index 90% rename from internal/app/init/pkg/system/mocks_test.go rename to internal/app/machined/pkg/system/mocks_test.go index f243d5444..4c6150f58 100644 --- a/internal/app/init/pkg/system/mocks_test.go +++ b/internal/app/machined/pkg/system/mocks_test.go @@ -10,10 +10,10 @@ import ( "time" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/runner/containerd/containerd.go b/internal/app/machined/pkg/system/runner/containerd/containerd.go similarity index 97% rename from internal/app/init/pkg/system/runner/containerd/containerd.go rename to internal/app/machined/pkg/system/runner/containerd/containerd.go index 2a933dbf0..b6319e371 100644 --- a/internal/app/init/pkg/system/runner/containerd/containerd.go +++ b/internal/app/machined/pkg/system/runner/containerd/containerd.go @@ -17,8 +17,8 @@ import ( "github.com/containerd/containerd/oci" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/runner/containerd/containerd_test.go b/internal/app/machined/pkg/system/runner/containerd/containerd_test.go similarity index 96% rename from internal/app/init/pkg/system/runner/containerd/containerd_test.go rename to internal/app/machined/pkg/system/runner/containerd/containerd_test.go index f750eec68..c518f2429 100644 --- a/internal/app/init/pkg/system/runner/containerd/containerd_test.go +++ b/internal/app/machined/pkg/system/runner/containerd/containerd_test.go @@ -21,11 +21,11 @@ import ( "github.com/containerd/containerd/oci" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - containerdrunner "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + containerdrunner "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/runner/containerd/import.go b/internal/app/machined/pkg/system/runner/containerd/import.go similarity index 97% rename from internal/app/init/pkg/system/runner/containerd/import.go rename to internal/app/machined/pkg/system/runner/containerd/import.go index 7ce6730fb..f5fa3a3a0 100644 --- a/internal/app/init/pkg/system/runner/containerd/import.go +++ b/internal/app/machined/pkg/system/runner/containerd/import.go @@ -13,7 +13,7 @@ import ( "github.com/containerd/containerd/namespaces" multierror "github.com/hashicorp/go-multierror" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" "github.com/talos-systems/talos/internal/pkg/constants" ) diff --git a/internal/app/init/pkg/system/runner/containerd/opts.go b/internal/app/machined/pkg/system/runner/containerd/opts.go similarity index 100% rename from internal/app/init/pkg/system/runner/containerd/opts.go rename to internal/app/machined/pkg/system/runner/containerd/opts.go diff --git a/internal/app/init/pkg/system/runner/goroutine/goroutine.go b/internal/app/machined/pkg/system/runner/goroutine/goroutine.go similarity index 92% rename from internal/app/init/pkg/system/runner/goroutine/goroutine.go rename to internal/app/machined/pkg/system/runner/goroutine/goroutine.go index 23e15f36b..e2c22b631 100644 --- a/internal/app/init/pkg/system/runner/goroutine/goroutine.go +++ b/internal/app/machined/pkg/system/runner/goroutine/goroutine.go @@ -14,9 +14,9 @@ import ( "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/log" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/log" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/runner/goroutine/goroutine_test.go b/internal/app/machined/pkg/system/runner/goroutine/goroutine_test.go similarity index 94% rename from internal/app/init/pkg/system/runner/goroutine/goroutine_test.go rename to internal/app/machined/pkg/system/runner/goroutine/goroutine_test.go index bc4c0bdbe..0f1b2c558 100644 --- a/internal/app/init/pkg/system/runner/goroutine/goroutine_test.go +++ b/internal/app/machined/pkg/system/runner/goroutine/goroutine_test.go @@ -17,9 +17,9 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/goroutine" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/goroutine" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/runner/process/process.go b/internal/app/machined/pkg/system/runner/process/process.go similarity index 93% rename from internal/app/init/pkg/system/runner/process/process.go rename to internal/app/machined/pkg/system/runner/process/process.go index 5abf38bf0..0e4078e57 100644 --- a/internal/app/init/pkg/system/runner/process/process.go +++ b/internal/app/machined/pkg/system/runner/process/process.go @@ -14,9 +14,9 @@ import ( "time" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - processlogger "github.com/talos-systems/talos/internal/app/init/pkg/system/log" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + processlogger "github.com/talos-systems/talos/internal/app/machined/pkg/system/log" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/runner/process/process_test.go b/internal/app/machined/pkg/system/runner/process/process_test.go similarity index 93% rename from internal/app/init/pkg/system/runner/process/process_test.go rename to internal/app/machined/pkg/system/runner/process/process_test.go index a0a97706b..e9062cfbb 100644 --- a/internal/app/init/pkg/system/runner/process/process_test.go +++ b/internal/app/machined/pkg/system/runner/process/process_test.go @@ -16,10 +16,10 @@ import ( "time" "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/runner/restart/restart.go b/internal/app/machined/pkg/system/runner/restart/restart.go similarity index 96% rename from internal/app/init/pkg/system/runner/restart/restart.go rename to internal/app/machined/pkg/system/runner/restart/restart.go index d95873eb3..1214187a0 100644 --- a/internal/app/init/pkg/system/runner/restart/restart.go +++ b/internal/app/machined/pkg/system/runner/restart/restart.go @@ -9,8 +9,8 @@ import ( "fmt" "time" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" ) type restarter struct { diff --git a/internal/app/init/pkg/system/runner/restart/restart_test.go b/internal/app/machined/pkg/system/runner/restart/restart_test.go similarity index 95% rename from internal/app/init/pkg/system/runner/restart/restart_test.go rename to internal/app/machined/pkg/system/runner/restart/restart_test.go index 9996b2ace..c6cf56c91 100644 --- a/internal/app/init/pkg/system/runner/restart/restart_test.go +++ b/internal/app/machined/pkg/system/runner/restart/restart_test.go @@ -14,8 +14,8 @@ import ( "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" ) type RestartSuite struct { diff --git a/internal/app/init/pkg/system/runner/runner.go b/internal/app/machined/pkg/system/runner/runner.go similarity index 97% rename from internal/app/init/pkg/system/runner/runner.go rename to internal/app/machined/pkg/system/runner/runner.go index 575256f3f..1f5ad8560 100644 --- a/internal/app/init/pkg/system/runner/runner.go +++ b/internal/app/machined/pkg/system/runner/runner.go @@ -12,7 +12,7 @@ import ( "github.com/containerd/containerd" "github.com/containerd/containerd/oci" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" "github.com/talos-systems/talos/internal/pkg/constants" ) diff --git a/internal/app/init/pkg/system/runner/runner_test.go b/internal/app/machined/pkg/system/runner/runner_test.go similarity index 100% rename from internal/app/init/pkg/system/runner/runner_test.go rename to internal/app/machined/pkg/system/runner/runner_test.go diff --git a/internal/app/init/pkg/system/service.go b/internal/app/machined/pkg/system/service.go similarity index 84% rename from internal/app/init/pkg/system/service.go rename to internal/app/machined/pkg/system/service.go index 9b1b992d8..271b9cff5 100644 --- a/internal/app/init/pkg/system/service.go +++ b/internal/app/machined/pkg/system/service.go @@ -7,9 +7,9 @@ package system import ( "context" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/service_events.go b/internal/app/machined/pkg/system/service_events.go similarity index 94% rename from internal/app/init/pkg/system/service_events.go rename to internal/app/machined/pkg/system/service_events.go index 707c395fc..2b01f543b 100644 --- a/internal/app/init/pkg/system/service_events.go +++ b/internal/app/machined/pkg/system/service_events.go @@ -9,7 +9,7 @@ import ( "fmt" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" ) // StateEvent is a service event (e.g. 'up', 'down') diff --git a/internal/app/init/pkg/system/service_runner.go b/internal/app/machined/pkg/system/service_runner.go similarity index 96% rename from internal/app/init/pkg/system/service_runner.go rename to internal/app/machined/pkg/system/service_runner.go index 975412a2c..3de6a2dee 100644 --- a/internal/app/init/pkg/system/service_runner.go +++ b/internal/app/machined/pkg/system/service_runner.go @@ -12,11 +12,11 @@ import ( "time" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/proto" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/proto" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/service_runner_test.go b/internal/app/machined/pkg/system/service_runner_test.go similarity index 96% rename from internal/app/init/pkg/system/service_runner_test.go rename to internal/app/machined/pkg/system/service_runner_test.go index ed83d1a8a..fb7f555e2 100644 --- a/internal/app/init/pkg/system/service_runner_test.go +++ b/internal/app/machined/pkg/system/service_runner_test.go @@ -10,9 +10,9 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" ) type ServiceRunnerSuite struct { diff --git a/internal/app/init/pkg/system/services/containerd.go b/internal/app/machined/pkg/system/services/containerd.go similarity index 85% rename from internal/app/init/pkg/system/services/containerd.go rename to internal/app/machined/pkg/system/services/containerd.go index 83f63a29b..6d5a00ca7 100644 --- a/internal/app/init/pkg/system/services/containerd.go +++ b/internal/app/machined/pkg/system/services/containerd.go @@ -14,12 +14,12 @@ import ( "github.com/pkg/errors" "google.golang.org/grpc/health/grpc_health_v1" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/kubeadm.go b/internal/app/machined/pkg/system/services/kubeadm.go similarity index 95% rename from internal/app/init/pkg/system/services/kubeadm.go rename to internal/app/machined/pkg/system/services/kubeadm.go index c289b16cf..57990d0c5 100644 --- a/internal/app/init/pkg/system/services/kubeadm.go +++ b/internal/app/machined/pkg/system/services/kubeadm.go @@ -16,10 +16,10 @@ import ( criconstants "github.com/containerd/cri/pkg/constants" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/services/kubeadm" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/services/kubeadm" "github.com/talos-systems/talos/internal/app/trustd/proto" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" diff --git a/internal/app/init/pkg/system/services/kubeadm/kubeadm.go b/internal/app/machined/pkg/system/services/kubeadm/kubeadm.go similarity index 99% rename from internal/app/init/pkg/system/services/kubeadm/kubeadm.go rename to internal/app/machined/pkg/system/services/kubeadm/kubeadm.go index 12ae05c09..1698db049 100644 --- a/internal/app/init/pkg/system/services/kubeadm/kubeadm.go +++ b/internal/app/machined/pkg/system/services/kubeadm/kubeadm.go @@ -18,10 +18,10 @@ import ( "strings" "time" - "github.com/talos-systems/talos/internal/app/init/internal/security/cis" "github.com/talos-systems/talos/internal/app/trustd/proto" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/internal/pkg/grpc/middleware/auth/basic" + "github.com/talos-systems/talos/internal/pkg/security/cis" "github.com/talos-systems/talos/pkg/crypto/x509" "github.com/talos-systems/talos/pkg/userdata" "google.golang.org/grpc" diff --git a/internal/app/init/pkg/system/services/kubeadm/kubeadm_test.go b/internal/app/machined/pkg/system/services/kubeadm/kubeadm_test.go similarity index 100% rename from internal/app/init/pkg/system/services/kubeadm/kubeadm_test.go rename to internal/app/machined/pkg/system/services/kubeadm/kubeadm_test.go diff --git a/internal/app/init/pkg/system/services/kubelet.go b/internal/app/machined/pkg/system/services/kubelet.go similarity index 91% rename from internal/app/init/pkg/system/services/kubelet.go rename to internal/app/machined/pkg/system/services/kubelet.go index a5cb1fc26..a2c74ffcb 100644 --- a/internal/app/init/pkg/system/services/kubelet.go +++ b/internal/app/machined/pkg/system/services/kubelet.go @@ -17,14 +17,14 @@ import ( specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/internal/rootfs/cni" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/internal/pkg/constants" + "github.com/talos-systems/talos/internal/pkg/rootfs/cni" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/networkd.go b/internal/app/machined/pkg/system/services/networkd.go similarity index 81% rename from internal/app/init/pkg/system/services/networkd.go rename to internal/app/machined/pkg/system/services/networkd.go index aea21225a..d54890b2b 100644 --- a/internal/app/init/pkg/system/services/networkd.go +++ b/internal/app/machined/pkg/system/services/networkd.go @@ -7,10 +7,10 @@ package services import ( "context" - "github.com/talos-systems/talos/internal/app/init/pkg/network" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/goroutine" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/goroutine" + "github.com/talos-systems/talos/internal/pkg/network" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/ntpd.go b/internal/app/machined/pkg/system/services/ntpd.go similarity index 87% rename from internal/app/init/pkg/system/services/ntpd.go rename to internal/app/machined/pkg/system/services/ntpd.go index 4cd5e4777..58c3911fe 100644 --- a/internal/app/init/pkg/system/services/ntpd.go +++ b/internal/app/machined/pkg/system/services/ntpd.go @@ -12,10 +12,10 @@ import ( containerdapi "github.com/containerd/containerd" "github.com/containerd/containerd/oci" specs "github.com/opencontainers/runtime-spec/specs-go" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/osd.go b/internal/app/machined/pkg/system/services/osd.go similarity index 88% rename from internal/app/init/pkg/system/services/osd.go rename to internal/app/machined/pkg/system/services/osd.go index 701e018ae..3de114a3b 100644 --- a/internal/app/init/pkg/system/services/osd.go +++ b/internal/app/machined/pkg/system/services/osd.go @@ -13,12 +13,12 @@ import ( containerdapi "github.com/containerd/containerd" "github.com/containerd/containerd/oci" specs "github.com/opencontainers/runtime-spec/specs-go" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/proxyd.go b/internal/app/machined/pkg/system/services/proxyd.go similarity index 87% rename from internal/app/init/pkg/system/services/proxyd.go rename to internal/app/machined/pkg/system/services/proxyd.go index 07e9746d1..7c647bb0f 100644 --- a/internal/app/init/pkg/system/services/proxyd.go +++ b/internal/app/machined/pkg/system/services/proxyd.go @@ -13,12 +13,12 @@ import ( containerdapi "github.com/containerd/containerd" "github.com/containerd/containerd/oci" specs "github.com/opencontainers/runtime-spec/specs-go" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/trustd.go b/internal/app/machined/pkg/system/services/trustd.go similarity index 87% rename from internal/app/init/pkg/system/services/trustd.go rename to internal/app/machined/pkg/system/services/trustd.go index fa6dfeb3d..f14753963 100644 --- a/internal/app/init/pkg/system/services/trustd.go +++ b/internal/app/machined/pkg/system/services/trustd.go @@ -13,12 +13,12 @@ import ( containerdapi "github.com/containerd/containerd" "github.com/containerd/containerd/oci" specs "github.com/opencontainers/runtime-spec/specs-go" - "github.com/talos-systems/talos/internal/app/init/pkg/system" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/health" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/udevd.go b/internal/app/machined/pkg/system/services/udevd.go similarity index 84% rename from internal/app/init/pkg/system/services/udevd.go rename to internal/app/machined/pkg/system/services/udevd.go index 6c8b2d3a5..74319ad94 100644 --- a/internal/app/init/pkg/system/services/udevd.go +++ b/internal/app/machined/pkg/system/services/udevd.go @@ -9,10 +9,10 @@ import ( "fmt" "os/exec" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/services/udevd_trigger.go b/internal/app/machined/pkg/system/services/udevd_trigger.go similarity index 83% rename from internal/app/init/pkg/system/services/udevd_trigger.go rename to internal/app/machined/pkg/system/services/udevd_trigger.go index df5ffc9a3..d880a0755 100644 --- a/internal/app/init/pkg/system/services/udevd_trigger.go +++ b/internal/app/machined/pkg/system/services/udevd_trigger.go @@ -9,10 +9,10 @@ import ( "context" "fmt" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/restart" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/system.go b/internal/app/machined/pkg/system/system.go similarity index 98% rename from internal/app/init/pkg/system/system.go rename to internal/app/machined/pkg/system/system.go index 1fc7b8d3c..5aa012864 100644 --- a/internal/app/init/pkg/system/system.go +++ b/internal/app/machined/pkg/system/system.go @@ -11,7 +11,7 @@ import ( "sync" "time" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" "github.com/talos-systems/talos/pkg/userdata" ) diff --git a/internal/app/init/pkg/system/system_test.go b/internal/app/machined/pkg/system/system_test.go similarity index 94% rename from internal/app/init/pkg/system/system_test.go rename to internal/app/machined/pkg/system/system_test.go index 6416bea79..378c896b3 100644 --- a/internal/app/init/pkg/system/system_test.go +++ b/internal/app/machined/pkg/system/system_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" ) type SystemServicesSuite struct { diff --git a/internal/app/init/proto/api.proto b/internal/app/machined/proto/api.proto similarity index 100% rename from internal/app/init/proto/api.proto rename to internal/app/machined/proto/api.proto diff --git a/internal/app/init/shutdown.go b/internal/app/machined/shutdown.go similarity index 100% rename from internal/app/init/shutdown.go rename to internal/app/machined/shutdown.go diff --git a/internal/app/osd/internal/reg/init_client.go b/internal/app/osd/internal/reg/init_client.go index 6b4f11fa7..d9ba228cc 100644 --- a/internal/app/osd/internal/reg/init_client.go +++ b/internal/app/osd/internal/reg/init_client.go @@ -9,7 +9,7 @@ import ( "io" "github.com/golang/protobuf/ptypes/empty" - "github.com/talos-systems/talos/internal/app/init/proto" + "github.com/talos-systems/talos/internal/app/machined/proto" "github.com/talos-systems/talos/internal/pkg/constants" "google.golang.org/grpc" ) diff --git a/internal/app/osd/internal/reg/reg.go b/internal/app/osd/internal/reg/reg.go index 7bc4f4c06..739f8c67c 100644 --- a/internal/app/osd/internal/reg/reg.go +++ b/internal/app/osd/internal/reg/reg.go @@ -27,7 +27,7 @@ import ( "golang.org/x/sys/unix" "google.golang.org/grpc" - initproto "github.com/talos-systems/talos/internal/app/init/proto" + initproto "github.com/talos-systems/talos/internal/app/machined/proto" "github.com/talos-systems/talos/internal/app/osd/proto" "github.com/talos-systems/talos/internal/pkg/chunker" filechunker "github.com/talos-systems/talos/internal/pkg/chunker/file" diff --git a/internal/app/proxyd/main.go b/internal/app/proxyd/main.go index 5e6e2f6e6..8c3b89c7c 100644 --- a/internal/app/proxyd/main.go +++ b/internal/app/proxyd/main.go @@ -9,7 +9,7 @@ import ( "flag" "log" - "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions" "github.com/talos-systems/talos/internal/app/proxyd/internal/frontend" "github.com/talos-systems/talos/internal/pkg/startup" "github.com/talos-systems/talos/pkg/userdata" diff --git a/internal/pkg/containers/containerd/containerd_test.go b/internal/pkg/containers/containerd/containerd_test.go index 99baa640d..b01e6ba66 100644 --- a/internal/pkg/containers/containerd/containerd_test.go +++ b/internal/pkg/containers/containerd/containerd_test.go @@ -18,10 +18,10 @@ import ( "github.com/containerd/containerd/oci" "github.com/stretchr/testify/suite" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - containerdrunner "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + containerdrunner "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" "github.com/talos-systems/talos/internal/pkg/constants" ctrd "github.com/talos-systems/talos/internal/pkg/containers/containerd" "github.com/talos-systems/talos/pkg/userdata" diff --git a/internal/pkg/containers/cri/cri_test.go b/internal/pkg/containers/cri/cri_test.go index ec2abbe68..d6d46e1c5 100644 --- a/internal/pkg/containers/cri/cri_test.go +++ b/internal/pkg/containers/cri/cri_test.go @@ -17,9 +17,9 @@ import ( "github.com/stretchr/testify/suite" runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" "github.com/talos-systems/talos/internal/pkg/constants" ctrs "github.com/talos-systems/talos/internal/pkg/containers" "github.com/talos-systems/talos/internal/pkg/containers/cri" diff --git a/internal/pkg/cri/cri_test.go b/internal/pkg/cri/cri_test.go index 9fba56b12..2cfc7ca96 100644 --- a/internal/pkg/cri/cri_test.go +++ b/internal/pkg/cri/cri_test.go @@ -16,9 +16,9 @@ import ( "github.com/stretchr/testify/suite" runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" - "github.com/talos-systems/talos/internal/app/init/pkg/system/events" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/process" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" + "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/process" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/internal/pkg/cri" "github.com/talos-systems/talos/pkg/userdata" diff --git a/internal/app/init/pkg/network/constants.go b/internal/pkg/network/constants.go similarity index 100% rename from internal/app/init/pkg/network/constants.go rename to internal/pkg/network/constants.go diff --git a/internal/app/init/pkg/network/dhcp.go b/internal/pkg/network/dhcp.go similarity index 100% rename from internal/app/init/pkg/network/dhcp.go rename to internal/pkg/network/dhcp.go diff --git a/internal/app/init/pkg/network/network_test.go b/internal/pkg/network/network_test.go similarity index 100% rename from internal/app/init/pkg/network/network_test.go rename to internal/pkg/network/network_test.go diff --git a/internal/app/init/pkg/network/networkd.go b/internal/pkg/network/networkd.go similarity index 100% rename from internal/app/init/pkg/network/networkd.go rename to internal/pkg/network/networkd.go diff --git a/internal/app/init/pkg/network/setup.go b/internal/pkg/network/setup.go similarity index 100% rename from internal/app/init/pkg/network/setup.go rename to internal/pkg/network/setup.go diff --git a/internal/app/init/pkg/network/setup_bond.go b/internal/pkg/network/setup_bond.go similarity index 100% rename from internal/app/init/pkg/network/setup_bond.go rename to internal/pkg/network/setup_bond.go diff --git a/internal/app/init/pkg/network/setup_single.go b/internal/pkg/network/setup_single.go similarity index 100% rename from internal/app/init/pkg/network/setup_single.go rename to internal/pkg/network/setup_single.go diff --git a/internal/app/init/pkg/network/static.go b/internal/pkg/network/static.go similarity index 100% rename from internal/app/init/pkg/network/static.go rename to internal/pkg/network/static.go diff --git a/internal/app/init/internal/rootfs/cni/cni.go b/internal/pkg/rootfs/cni/cni.go similarity index 100% rename from internal/app/init/internal/rootfs/cni/cni.go rename to internal/pkg/rootfs/cni/cni.go diff --git a/internal/app/init/internal/rootfs/cni/cni_test.go b/internal/pkg/rootfs/cni/cni_test.go similarity index 100% rename from internal/app/init/internal/rootfs/cni/cni_test.go rename to internal/pkg/rootfs/cni/cni_test.go diff --git a/internal/app/init/internal/rootfs/etc/etc.go b/internal/pkg/rootfs/etc/etc.go similarity index 100% rename from internal/app/init/internal/rootfs/etc/etc.go rename to internal/pkg/rootfs/etc/etc.go diff --git a/internal/app/init/internal/rootfs/etc/etc_test.go b/internal/pkg/rootfs/etc/etc_test.go similarity index 100% rename from internal/app/init/internal/rootfs/etc/etc_test.go rename to internal/pkg/rootfs/etc/etc_test.go diff --git a/internal/app/init/internal/rootfs/mount/mount.go b/internal/pkg/rootfs/mount/mount.go similarity index 98% rename from internal/app/init/internal/rootfs/mount/mount.go rename to internal/pkg/rootfs/mount/mount.go index a89d0e66a..ea1b6f237 100644 --- a/internal/app/init/internal/rootfs/mount/mount.go +++ b/internal/pkg/rootfs/mount/mount.go @@ -234,8 +234,8 @@ func (i *Initializer) Switch() (err error) { return errors.Wrap(err, "error deleting initramfs") } - if err = unix.Exec("/proc/self/exe", []string{"exe", "--switch-root"}, []string{}); err != nil { - return errors.Wrap(err, "error executing /proc/self/exe") + if err = unix.Exec("/sbin/machined", []string{"/sbin/machined"}, []string{}); err != nil { + return errors.Wrap(err, "error executing /sbin/machined") } return nil diff --git a/internal/app/init/internal/rootfs/mount/mount_test.go b/internal/pkg/rootfs/mount/mount_test.go similarity index 100% rename from internal/app/init/internal/rootfs/mount/mount_test.go rename to internal/pkg/rootfs/mount/mount_test.go diff --git a/internal/app/init/internal/rootfs/proc/proc.go b/internal/pkg/rootfs/proc/proc.go similarity index 100% rename from internal/app/init/internal/rootfs/proc/proc.go rename to internal/pkg/rootfs/proc/proc.go diff --git a/internal/app/init/internal/rootfs/proc/proc_test.go b/internal/pkg/rootfs/proc/proc_test.go similarity index 100% rename from internal/app/init/internal/rootfs/proc/proc_test.go rename to internal/pkg/rootfs/proc/proc_test.go diff --git a/internal/app/init/internal/rootfs/rootfs.go b/internal/pkg/rootfs/rootfs.go similarity index 95% rename from internal/app/init/internal/rootfs/rootfs.go rename to internal/pkg/rootfs/rootfs.go index 40be7cb16..169ed6e7c 100644 --- a/internal/app/init/internal/rootfs/rootfs.go +++ b/internal/pkg/rootfs/rootfs.go @@ -13,11 +13,11 @@ import ( "time" "github.com/pkg/errors" - "github.com/talos-systems/talos/internal/app/init/internal/rootfs/cni" - "github.com/talos-systems/talos/internal/app/init/internal/rootfs/etc" - "github.com/talos-systems/talos/internal/app/init/internal/rootfs/proc" "github.com/talos-systems/talos/internal/pkg/constants" "github.com/talos-systems/talos/internal/pkg/grpc/gen" + "github.com/talos-systems/talos/internal/pkg/rootfs/cni" + "github.com/talos-systems/talos/internal/pkg/rootfs/etc" + "github.com/talos-systems/talos/internal/pkg/rootfs/proc" "github.com/talos-systems/talos/pkg/crypto/x509" "github.com/talos-systems/talos/pkg/userdata" yaml "gopkg.in/yaml.v2" diff --git a/internal/app/init/internal/rootfs/rootfs_test.go b/internal/pkg/rootfs/rootfs_test.go similarity index 100% rename from internal/app/init/internal/rootfs/rootfs_test.go rename to internal/pkg/rootfs/rootfs_test.go diff --git a/internal/app/init/internal/security/cis/cis.go b/internal/pkg/security/cis/cis.go similarity index 100% rename from internal/app/init/internal/security/cis/cis.go rename to internal/pkg/security/cis/cis.go diff --git a/internal/app/init/internal/security/cis/cis_test.go b/internal/pkg/security/cis/cis_test.go similarity index 100% rename from internal/app/init/internal/security/cis/cis_test.go rename to internal/pkg/security/cis/cis_test.go diff --git a/internal/app/init/internal/security/kspp/kspp.go b/internal/pkg/security/kspp/kspp.go similarity index 100% rename from internal/app/init/internal/security/kspp/kspp.go rename to internal/pkg/security/kspp/kspp.go