mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
move initsystem to kubeadm
Signed-off-by: Yassine TIJANI <ytijani@vmware.com>
This commit is contained in:
parent
e91556c62f
commit
c3904bbce6
@ -78,7 +78,6 @@
|
||||
"k8s.io/kubernetes/pkg/util/conntrack",
|
||||
"k8s.io/kubernetes/pkg/util/dbus",
|
||||
"k8s.io/kubernetes/pkg/util/hash",
|
||||
"k8s.io/kubernetes/pkg/util/initsystem",
|
||||
"k8s.io/kubernetes/pkg/util/ipset",
|
||||
"k8s.io/kubernetes/pkg/util/iptables",
|
||||
"k8s.io/kubernetes/pkg/util/ipvs",
|
||||
|
@ -20,9 +20,9 @@ go_library(
|
||||
"//cmd/kubeadm/app/phases/etcd:go_default_library",
|
||||
"//cmd/kubeadm/app/phases/uploadconfig:go_default_library",
|
||||
"//cmd/kubeadm/app/preflight:go_default_library",
|
||||
"//cmd/kubeadm/app/util/initsystem:go_default_library",
|
||||
"//cmd/kubeadm/app/util/runtime:go_default_library",
|
||||
"//cmd/kubeadm/app/util/staticpod:go_default_library",
|
||||
"//pkg/util/initsystem:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||
"//vendor/k8s.io/klog:go_default_library",
|
||||
|
@ -28,8 +28,8 @@ import (
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
|
||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/initsystem"
|
||||
utilruntime "k8s.io/kubernetes/cmd/kubeadm/app/util/runtime"
|
||||
"k8s.io/kubernetes/pkg/util/initsystem"
|
||||
utilsexec "k8s.io/utils/exec"
|
||||
)
|
||||
|
||||
|
@ -17,8 +17,8 @@ go_library(
|
||||
"//cmd/kubeadm/app/images:go_default_library",
|
||||
"//cmd/kubeadm/app/util:go_default_library",
|
||||
"//cmd/kubeadm/app/util/apiclient:go_default_library",
|
||||
"//cmd/kubeadm/app/util/initsystem:go_default_library",
|
||||
"//pkg/kubelet/apis/config:go_default_library",
|
||||
"//pkg/util/initsystem:go_default_library",
|
||||
"//pkg/util/node:go_default_library",
|
||||
"//pkg/util/procfs:go_default_library",
|
||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||
|
@ -19,7 +19,7 @@ package kubelet
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/kubernetes/pkg/util/initsystem"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/initsystem"
|
||||
)
|
||||
|
||||
// TryStartKubelet attempts to bring up kubelet service
|
||||
|
@ -21,11 +21,11 @@ go_library(
|
||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||
"//cmd/kubeadm/app/constants:go_default_library",
|
||||
"//cmd/kubeadm/app/images:go_default_library",
|
||||
"//cmd/kubeadm/app/util/initsystem:go_default_library",
|
||||
"//cmd/kubeadm/app/util/runtime:go_default_library",
|
||||
"//cmd/kubeadm/app/util/system:go_default_library",
|
||||
"//pkg/master/ports:go_default_library",
|
||||
"//pkg/registry/core/service/ipallocator:go_default_library",
|
||||
"//pkg/util/initsystem:go_default_library",
|
||||
"//pkg/util/ipvs:go_default_library",
|
||||
"//pkg/version:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
||||
|
@ -44,11 +44,11 @@ import (
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/images"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/initsystem"
|
||||
utilruntime "k8s.io/kubernetes/cmd/kubeadm/app/util/runtime"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/system"
|
||||
"k8s.io/kubernetes/pkg/master/ports"
|
||||
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
|
||||
"k8s.io/kubernetes/pkg/util/initsystem"
|
||||
ipvsutil "k8s.io/kubernetes/pkg/util/ipvs"
|
||||
kubeadmversion "k8s.io/kubernetes/pkg/version"
|
||||
utilsexec "k8s.io/utils/exec"
|
||||
|
@ -84,6 +84,7 @@ filegroup(
|
||||
"//cmd/kubeadm/app/util/crypto:all-srcs",
|
||||
"//cmd/kubeadm/app/util/dryrun:all-srcs",
|
||||
"//cmd/kubeadm/app/util/etcd:all-srcs",
|
||||
"//cmd/kubeadm/app/util/initsystem:all-srcs",
|
||||
"//cmd/kubeadm/app/util/kubeconfig:all-srcs",
|
||||
"//cmd/kubeadm/app/util/pkiutil:all-srcs",
|
||||
"//cmd/kubeadm/app/util/pubkeypin:all-srcs",
|
||||
|
@ -12,7 +12,7 @@ go_library(
|
||||
"initsystem_unix.go",
|
||||
"initsystem_windows.go",
|
||||
],
|
||||
importpath = "k8s.io/kubernetes/pkg/util/initsystem",
|
||||
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/util/initsystem",
|
||||
deps = select({
|
||||
"@io_bazel_rules_go//go/platform:windows": [
|
||||
"//vendor/golang.org/x/sys/windows/svc:go_default_library",
|
@ -16,6 +16,7 @@ limitations under the License.
|
||||
|
||||
package initsystem
|
||||
|
||||
// InitSystem is the interface that describe behaviors of an init system
|
||||
type InitSystem interface {
|
||||
// return a string describing how to enable a service
|
||||
EnableCommand(service string) string
|
@ -24,23 +24,28 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// OpenRCInitSystem defines openrc
|
||||
type OpenRCInitSystem struct{}
|
||||
|
||||
// ServiceStart tries to start a specific service
|
||||
func (openrc OpenRCInitSystem) ServiceStart(service string) error {
|
||||
args := []string{service, "start"}
|
||||
return exec.Command("rc-service", args...).Run()
|
||||
}
|
||||
|
||||
// ServiceStop tries to stop a specific service
|
||||
func (openrc OpenRCInitSystem) ServiceStop(service string) error {
|
||||
args := []string{service, "stop"}
|
||||
return exec.Command("rc-service", args...).Run()
|
||||
}
|
||||
|
||||
// ServiceRestart tries to reload the environment and restart the specific service
|
||||
func (openrc OpenRCInitSystem) ServiceRestart(service string) error {
|
||||
args := []string{service, "restart"}
|
||||
return exec.Command("rc-service", args...).Run()
|
||||
}
|
||||
|
||||
// ServiceExists ensures the service is defined for this init system.
|
||||
// openrc writes to stderr if a service is not found or not enabled
|
||||
// this is in contrast to systemd which only writes to stdout.
|
||||
// Hence, we use the Combinedoutput, and ignore the error.
|
||||
@ -53,6 +58,7 @@ func (openrc OpenRCInitSystem) ServiceExists(service string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// ServiceIsEnabled ensures the service is enabled to start on each boot.
|
||||
func (openrc OpenRCInitSystem) ServiceIsEnabled(service string) bool {
|
||||
args := []string{"show", "default"}
|
||||
outBytes, _ := exec.Command("rc-update", args...).Output()
|
||||
@ -62,6 +68,7 @@ func (openrc OpenRCInitSystem) ServiceIsEnabled(service string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// ServiceIsActive ensures the service is running, or attempting to run. (crash looping in the case of kubelet)
|
||||
func (openrc OpenRCInitSystem) ServiceIsActive(service string) bool {
|
||||
args := []string{service, "status"}
|
||||
outBytes, _ := exec.Command("rc-service", args...).Output()
|
||||
@ -71,16 +78,20 @@ func (openrc OpenRCInitSystem) ServiceIsActive(service string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// EnableCommand return a string describing how to enable a service
|
||||
func (openrc OpenRCInitSystem) EnableCommand(service string) string {
|
||||
return fmt.Sprintf("rc-update add %s default", service)
|
||||
}
|
||||
|
||||
// SystemdInitSystem defines systemd
|
||||
type SystemdInitSystem struct{}
|
||||
|
||||
// EnableCommand return a string describing how to enable a service
|
||||
func (sysd SystemdInitSystem) EnableCommand(service string) string {
|
||||
return fmt.Sprintf("systemctl enable %s.service", service)
|
||||
}
|
||||
|
||||
// reloadSystemd reloeads the systemd daemon
|
||||
func (sysd SystemdInitSystem) reloadSystemd() error {
|
||||
if err := exec.Command("systemctl", "daemon-reload").Run(); err != nil {
|
||||
return fmt.Errorf("failed to reload systemd: %v", err)
|
||||
@ -88,6 +99,7 @@ func (sysd SystemdInitSystem) reloadSystemd() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ServiceStart tries to start a specific service
|
||||
func (sysd SystemdInitSystem) ServiceStart(service string) error {
|
||||
// Before we try to start any service, make sure that systemd is ready
|
||||
if err := sysd.reloadSystemd(); err != nil {
|
||||
@ -97,6 +109,7 @@ func (sysd SystemdInitSystem) ServiceStart(service string) error {
|
||||
return exec.Command("systemctl", args...).Run()
|
||||
}
|
||||
|
||||
// ServiceRestart tries to reload the environment and restart the specific service
|
||||
func (sysd SystemdInitSystem) ServiceRestart(service string) error {
|
||||
// Before we try to restart any service, make sure that systemd is ready
|
||||
if err := sysd.reloadSystemd(); err != nil {
|
||||
@ -106,11 +119,13 @@ func (sysd SystemdInitSystem) ServiceRestart(service string) error {
|
||||
return exec.Command("systemctl", args...).Run()
|
||||
}
|
||||
|
||||
// ServiceStop tries to stop a specific service
|
||||
func (sysd SystemdInitSystem) ServiceStop(service string) error {
|
||||
args := []string{"stop", service}
|
||||
return exec.Command("systemctl", args...).Run()
|
||||
}
|
||||
|
||||
// ServiceExists ensures the service is defined for this init system.
|
||||
func (sysd SystemdInitSystem) ServiceExists(service string) bool {
|
||||
args := []string{"status", service}
|
||||
outBytes, _ := exec.Command("systemctl", args...).Output()
|
||||
@ -121,6 +136,7 @@ func (sysd SystemdInitSystem) ServiceExists(service string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// ServiceIsEnabled ensures the service is enabled to start on each boot.
|
||||
func (sysd SystemdInitSystem) ServiceIsEnabled(service string) bool {
|
||||
args := []string{"is-enabled", service}
|
||||
err := exec.Command("systemctl", args...).Run()
|
@ -29,10 +29,12 @@ import (
|
||||
// WindowsInitSystem is the windows implementation of InitSystem
|
||||
type WindowsInitSystem struct{}
|
||||
|
||||
// EnableCommand return a string describing how to enable a service
|
||||
func (sysd WindowsInitSystem) EnableCommand(service string) string {
|
||||
return fmt.Sprintf("Set-Service '%s' -StartupType Automatic", service)
|
||||
}
|
||||
|
||||
// ServiceStart tries to start a specific service
|
||||
// Following Windows documentation: https://docs.microsoft.com/en-us/windows/desktop/Services/starting-a-service
|
||||
func (sysd WindowsInitSystem) ServiceStart(service string) error {
|
||||
m, err := mgr.Connect()
|
||||
@ -94,6 +96,7 @@ func (sysd WindowsInitSystem) ServiceStart(service string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ServiceRestart tries to reload the environment and restart the specific service
|
||||
func (sysd WindowsInitSystem) ServiceRestart(service string) error {
|
||||
if err := sysd.ServiceStop(service); err != nil {
|
||||
return fmt.Errorf("couldn't stop service %s: %v", service, err)
|
||||
@ -105,6 +108,7 @@ func (sysd WindowsInitSystem) ServiceRestart(service string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ServiceStop tries to stop a specific service
|
||||
// Following Windows documentation: https://docs.microsoft.com/en-us/windows/desktop/Services/stopping-a-service
|
||||
func (sysd WindowsInitSystem) ServiceStop(service string) error {
|
||||
m, err := mgr.Connect()
|
||||
@ -170,6 +174,7 @@ func (sysd WindowsInitSystem) ServiceStop(service string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ServiceExists ensures the service is defined for this init system.
|
||||
func (sysd WindowsInitSystem) ServiceExists(service string) bool {
|
||||
m, err := mgr.Connect()
|
||||
if err != nil {
|
||||
@ -185,6 +190,7 @@ func (sysd WindowsInitSystem) ServiceExists(service string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// ServiceIsEnabled ensures the service is enabled to start on each boot.
|
||||
func (sysd WindowsInitSystem) ServiceIsEnabled(service string) bool {
|
||||
m, err := mgr.Connect()
|
||||
if err != nil {
|
||||
@ -206,6 +212,7 @@ func (sysd WindowsInitSystem) ServiceIsEnabled(service string) bool {
|
||||
return c.StartType != mgr.StartDisabled
|
||||
}
|
||||
|
||||
// ServiceIsActive ensures the service is running, or attempting to run. (crash looping in the case of kubelet)
|
||||
func (sysd WindowsInitSystem) ServiceIsActive(service string) bool {
|
||||
m, err := mgr.Connect()
|
||||
if err != nil {
|
@ -284,7 +284,6 @@ pkg/util/config
|
||||
pkg/util/ebtables
|
||||
pkg/util/env
|
||||
pkg/util/goroutinemap/exponentialbackoff
|
||||
pkg/util/initsystem
|
||||
pkg/util/iptables
|
||||
pkg/util/iptables/testing
|
||||
pkg/util/labels
|
||||
|
@ -25,7 +25,6 @@ filegroup(
|
||||
"//pkg/util/flock:all-srcs",
|
||||
"//pkg/util/goroutinemap:all-srcs",
|
||||
"//pkg/util/hash:all-srcs",
|
||||
"//pkg/util/initsystem:all-srcs",
|
||||
"//pkg/util/interrupt:all-srcs",
|
||||
"//pkg/util/ipconfig:all-srcs",
|
||||
"//pkg/util/ipset:all-srcs",
|
||||
|
Loading…
Reference in New Issue
Block a user