func()

in internal/flows/uninstall.go [57:113]


func (u *Uninstaller) uninstallDaemons(ctx context.Context) error {
	if u.Artifacts.Kubelet {
		u.Logger.Info("Uninstalling kubelet...")
		if err := u.DaemonManager.StopDaemon(kubelet.KubeletDaemonName); err != nil {
			return err
		}
		if err := kubelet.Uninstall(kubelet.UninstallOptions{}); err != nil {
			return err
		}
	}
	if u.Artifacts.Ssm {
		u.Logger.Info("Stopping SSM daemon...")
		if err := u.DaemonManager.StopDaemon(ssm.SsmDaemonName); err != nil {
			return err
		}

		ssmRegistration := ssm.NewSSMRegistration()
		region := ssmRegistration.GetRegion()
		opts := []func(*config.LoadOptions) error{}
		if region != "" {
			opts = append(opts, config.WithRegion(region))
		}

		awsConfig, err := config.LoadDefaultConfig(ctx, opts...)
		if err != nil {
			return err
		}

		if err := ssm.Uninstall(ctx, ssm.UninstallOptions{
			Logger:          u.Logger,
			SSMRegistration: ssmRegistration,
			PkgSource:       u.PackageManager,
			SSMClient:       awsSsm.NewFromConfig(awsConfig),
		}); err != nil {
			return fmt.Errorf("uninstalling SSM: %w", err)
		}
	}
	if u.Artifacts.IamRolesAnywhere {
		u.Logger.Info("Removing aws_signing_helper_update daemon...")
		if status, err := u.DaemonManager.GetDaemonStatus(iamrolesanywhere.DaemonName); err == nil || status != daemon.DaemonStatusUnknown {
			if err = u.DaemonManager.StopDaemon(iamrolesanywhere.DaemonName); err != nil {
				u.Logger.Info("Stopping aws_signing_helper_update daemon...")
				return err
			}
		}
	}
	if u.Artifacts.Containerd != string(containerd.ContainerdSourceNone) {
		u.Logger.Info("Uninstalling containerd...")
		if err := u.DaemonManager.StopDaemon(containerd.ContainerdDaemonName); err != nil {
			return err
		}
		if err := containerd.Uninstall(ctx, u.PackageManager); err != nil {
			return err
		}
	}
	return nil
}