Changes due to DTadrzak review

This commit is contained in:
pprokop 2016-09-23 10:28:14 +02:00
parent af0672d339
commit 273433cdba
5 changed files with 18 additions and 26 deletions

View File

@ -8,7 +8,6 @@ import (
"text/template" "text/template"
entry "github.com/stackanetes/kubernetes-entrypoint/entrypoint" entry "github.com/stackanetes/kubernetes-entrypoint/entrypoint"
"github.com/stackanetes/kubernetes-entrypoint/logger"
"github.com/stackanetes/kubernetes-entrypoint/util" "github.com/stackanetes/kubernetes-entrypoint/util"
"github.com/stackanetes/kubernetes-entrypoint/util/env" "github.com/stackanetes/kubernetes-entrypoint/util/env"
) )
@ -36,14 +35,12 @@ func init() {
func NewConfig(name string) Config { func NewConfig(name string) Config {
hostname, err := os.Hostname() hostname, err := os.Hostname()
if err != nil { if err != nil {
logger.Error.Printf("Cannot determine hostname: %v", err) panic(fmt.Sprintf("Cannot determine hostname: %v", err))
os.Exit(1)
} }
ip, err := util.GetIp() ip, err := util.GetIp()
if err != nil { if err != nil {
logger.Error.Printf("Cannot get ip address: %v", err) panic(fmt.Sprintf("Cannot get ip address: %v", err))
os.Exit(1)
} }
return Config{ return Config{
@ -56,13 +53,12 @@ func NewConfig(name string) Config {
} }
func (c Config) IsResolved(entrypoint entry.EntrypointInterface) (bool, error) { func (c Config) IsResolved(entrypoint entry.EntrypointInterface) (bool, error) {
var err error
//Create directory to ensure it exists //Create directory to ensure it exists
err := createDirectory(c.GetName()) if err = createDirectory(c.GetName()); err != nil {
if err != nil {
return false, fmt.Errorf("Couldn't create directory: %v", err) return false, fmt.Errorf("Couldn't create directory: %v", err)
} }
err = createAndTemplateConfig(c.GetName(), c.params) if err = createAndTemplateConfig(c.GetName(), c.params); err != nil {
if err != nil {
return false, fmt.Errorf("Cannot template %s: %v", c.GetName(), err) return false, fmt.Errorf("Cannot template %s: %v", c.GetName(), err)
} }
return true, nil return true, nil

View File

@ -5,7 +5,6 @@ import (
"os" "os"
entry "github.com/stackanetes/kubernetes-entrypoint/entrypoint" entry "github.com/stackanetes/kubernetes-entrypoint/entrypoint"
"github.com/stackanetes/kubernetes-entrypoint/logger"
"github.com/stackanetes/kubernetes-entrypoint/util/env" "github.com/stackanetes/kubernetes-entrypoint/util/env"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
@ -19,36 +18,34 @@ func init() {
daemonsetEnv := fmt.Sprintf("%sDAEMONSET", entry.DependencyPrefix) daemonsetEnv := fmt.Sprintf("%sDAEMONSET", entry.DependencyPrefix)
if daemonsetsDeps := env.SplitEnvToList(daemonsetEnv); daemonsetsDeps != nil { if daemonsetsDeps := env.SplitEnvToList(daemonsetEnv); daemonsetsDeps != nil {
for _, dep := range daemonsetsDeps { for _, dep := range daemonsetsDeps {
entry.Register(NewDaemonSet(dep)) entry.Register(NewDaemonset(dep))
} }
} }
} }
func NewDaemonSet(name string) Daemonset { func NewDaemonset(name string) Daemonset {
return Daemonset{name: name} return Daemonset{name: name}
} }
func (d Daemonset) IsResolved(entrypoint entry.EntrypointInterface) (bool, error) { func (d Daemonset) IsResolved(entrypoint entry.EntrypointInterface) (bool, error) {
var myPodName string
daemonset, err := entrypoint.Client().DaemonSets(entrypoint.GetNamespace()).Get(d.GetName()) daemonset, err := entrypoint.Client().DaemonSets(entrypoint.GetNamespace()).Get(d.GetName())
if err != nil { if err != nil {
return false, err return false, err
} }
label := labels.SelectorFromSet(daemonset.Spec.Selector.MatchLabels) label := labels.SelectorFromSet(daemonset.Spec.Selector.MatchLabels)
opts := api.ListOptions{LabelSelector: label} opts := api.ListOptions{LabelSelector: label}
pods, err := entrypoint.Client().Pods(entrypoint.GetNamespace()).List(opts) pods, err := entrypoint.Client().Pods(entrypoint.GetNamespace()).List(opts)
if err != nil { if err != nil {
return false, err return false, err
} }
myPodName := os.Getenv("POD_NAME") if myPodName := os.Getenv("POD_NAME"); myPodName == "" {
if myPodName == "" { panic("Environment variable POD_NAME not set")
logger.Error.Print("Environment variable POD_NAME not set")
os.Exit(1)
} }
myPod, err := entrypoint.Client().Pods(entrypoint.GetNamespace()).Get(myPodName) myPod, err := entrypoint.Client().Pods(entrypoint.GetNamespace()).Get(myPodName)
if err != nil { if err != nil {
logger.Error.Printf("Getting POD: %v failed : %v", myPodName, err) panic(fmt.Sprintf("Getting POD: %v failed : %v", myPodName, err))
os.Exit(1)
} }
myHost := myPod.Status.HostIP myHost := myPod.Status.HostIP

View File

@ -22,7 +22,7 @@ type EntrypointInterface interface {
GetNamespace() string GetNamespace() string
} }
// Entrypoint is a main struct which check dependencies // Entrypoint is a main struct which checks dependencies
type Entrypoint struct { type Entrypoint struct {
client cli.ClientInterface client cli.ClientInterface
namespace string namespace string
@ -51,7 +51,7 @@ func (e Entrypoint) GetNamespace() string {
return e.namespace return e.namespace
} }
//Resolve is a main loop whic iterates through all dependencies and resolves them //Resolve is a main loop which iterates through all dependencies and resolves them
func (e Entrypoint) Resolve() { func (e Entrypoint) Resolve() {
var wg sync.WaitGroup var wg sync.WaitGroup
for _, dep := range dependencies { for _, dep := range dependencies {
@ -81,7 +81,7 @@ type Resolver interface {
GetName() string GetName() string
} }
//Register is a function which register new dependencies //Register is a function which registers new dependencies
func Register(res Resolver) { func Register(res Resolver) {
if res == nil { if res == nil {
panic("Entrypoint: could not register nil Resolver") panic("Entrypoint: could not register nil Resolver")

View File

@ -34,8 +34,7 @@ func main() {
os.Exit(1) os.Exit(1)
} }
err = command.Execute(comm) if err = command.Execute(comm); err != nil {
if err != nil {
logger.Error.Printf("Cannot execute command: %v", err) logger.Error.Printf("Cannot execute command: %v", err)
os.Exit(1) os.Exit(1)
} }

View File

@ -8,8 +8,8 @@ import (
) )
func GetIp() (ip string, err error) { func GetIp() (ip string, err error) {
iface := os.Getenv("INTERFACE_NAME") var iface string
if iface == "" { if iface = os.Getenv("INTERFACE_NAME"); iface == "" {
return "", fmt.Errorf("Environment variable INTERFACE_NAME not set") return "", fmt.Errorf("Environment variable INTERFACE_NAME not set")
} }
i, err := net.InterfaceByName(iface) i, err := net.InterfaceByName(iface)