Inject dependencies to rkt

This commit is contained in:
Victor Marmol 2015-05-05 10:55:11 -07:00
parent 1b7749b8d9
commit 5d0e5d7d61
3 changed files with 24 additions and 8 deletions

View File

@ -18,11 +18,10 @@ package rkt
// ImageManager manages and garbage collects the container images for rkt. // ImageManager manages and garbage collects the container images for rkt.
type ImageManager struct { type ImageManager struct {
runtime *runtime
} }
func NewImageManager(r *runtime) *ImageManager { func NewImageManager() *ImageManager {
return &ImageManager{runtime: r} return &ImageManager{}
} }
// GarbageCollect collects the images. It is not implemented by rkt yet. // GarbageCollect collects the images. It is not implemented by rkt yet.

View File

@ -34,6 +34,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/capabilities" "github.com/GoogleCloudPlatform/kubernetes/pkg/capabilities"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/record"
"github.com/GoogleCloudPlatform/kubernetes/pkg/credentialprovider" "github.com/GoogleCloudPlatform/kubernetes/pkg/credentialprovider"
kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container" kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/prober" "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/prober"
@ -104,7 +105,11 @@ var _ kubecontainer.Runtime = &runtime{}
// New creates the rkt container runtime which implements the container runtime interface. // New creates the rkt container runtime which implements the container runtime interface.
// It will test if the rkt binary is in the $PATH, and whether we can get the // It will test if the rkt binary is in the $PATH, and whether we can get the
// version of it. If so, creates the rkt container runtime, otherwise returns an error. // version of it. If so, creates the rkt container runtime, otherwise returns an error.
func New(config *Config) (kubecontainer.Runtime, error) { func New(config *Config,
generator kubecontainer.RunContainerOptionsGenerator,
recorder record.EventRecorder,
containerRefManager *kubecontainer.RefManager,
readinessManager *kubecontainer.ReadinessManager) (kubecontainer.Runtime, error) {
systemdVersion, err := getSystemdVersion() systemdVersion, err := getSystemdVersion()
if err != nil { if err != nil {
return nil, err return nil, err
@ -129,11 +134,14 @@ func New(config *Config) (kubecontainer.Runtime, error) {
} }
rkt := &runtime{ rkt := &runtime{
generator: generator,
readinessManager: readinessManager,
systemd: systemd, systemd: systemd,
rktBinAbsPath: rktBinAbsPath, rktBinAbsPath: rktBinAbsPath,
config: config, config: config,
dockerKeyring: credentialprovider.NewDockerKeyring(), dockerKeyring: credentialprovider.NewDockerKeyring(),
} }
rkt.prober = prober.New(rkt, readinessManager, containerRefManager, recorder)
// Test the rkt version. // Test the rkt version.
version, err := rkt.Version() version, err := rkt.Version()

View File

@ -23,6 +23,7 @@ import (
"io" "io"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/record"
kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container" kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
) )
@ -32,6 +33,14 @@ type unsupportedRuntime struct {
var _ kubecontainer.Runtime = &unsupportedRuntime{} var _ kubecontainer.Runtime = &unsupportedRuntime{}
func New(config *Config,
generator kubecontainer.RunContainerOptionsGenerator,
recorder record.EventRecorder,
containerRefManager *kubecontainer.RefManager,
readinessManager *kubecontainer.ReadinessManager) (kubecontainer.Runtime, error) {
return nil, unsupportedError
}
var unsupportedError = fmt.Errorf("rkt runtime is unsupported in this platform") var unsupportedError = fmt.Errorf("rkt runtime is unsupported in this platform")
func (ur *unsupportedRuntime) Version() (kubecontainer.Version, error) { func (ur *unsupportedRuntime) Version() (kubecontainer.Version, error) {