- cleanup up elements, imports and comments

This commit is contained in:
Rohith 2018-06-19 23:47:16 +01:00
parent ecf1278bfe
commit c9db958696
15 changed files with 57 additions and 55 deletions

View File

@ -29,11 +29,12 @@ type DirectoryBuilder struct {
var _ fi.ModelBuilder = &DirectoryBuilder{} var _ fi.ModelBuilder = &DirectoryBuilder{}
// Build is ensures an number of directories
func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error { func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error {
if b.Distribution == distros.DistributionContainerOS { if b.Distribution == distros.DistributionContainerOS {
dir := "/home/kubernetes/bin" dir := "/home/kubernetes/bin"
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: dir, Path: dir,
Type: nodetasks.FileType_Directory, Type: nodetasks.FileType_Directory,
Mode: s("0755"), Mode: s("0755"),
@ -42,8 +43,7 @@ func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error {
{"/bin/mount", "--bind", "/home/kubernetes/bin", "/home/kubernetes/bin"}, {"/bin/mount", "--bind", "/home/kubernetes/bin", "/home/kubernetes/bin"},
{"/bin/mount", "-o", "remount,exec", "/home/kubernetes/bin"}, {"/bin/mount", "-o", "remount,exec", "/home/kubernetes/bin"},
}, },
} })
c.AddTask(t)
} }
return nil return nil

View File

@ -35,16 +35,23 @@ type FileAssetsBuilder struct {
var _ fi.ModelBuilder = &FileAssetsBuilder{} var _ fi.ModelBuilder = &FileAssetsBuilder{}
var templateFuncs = template.FuncMap{
"split": strings.Split,
"join": strings.Join,
}
// Build is responsible for writing out the file assets from cluster and instanceGroup // Build is responsible for writing out the file assets from cluster and instanceGroup
func (f *FileAssetsBuilder) Build(c *fi.ModelBuilderContext) error { func (f *FileAssetsBuilder) Build(c *fi.ModelBuilderContext) error {
// used to keep track of previous file, so a instanceGroup can override a cluster wide one // used to keep track of previous file, so a instanceGroup can override a cluster wide one
tracker := make(map[string]bool, 0) tracker := make(map[string]bool, 0)
// ensure the default path exists // ensure the default path exists
c.EnsureTask(&nodetasks.File{ c.EnsureTask(&nodetasks.File{
Path: f.FileAssetsDefaultPath(), Path: f.FileAssetsDefaultPath(),
Type: nodetasks.FileType_Directory, Type: nodetasks.FileType_Directory,
Mode: s("0755"), Mode: s("0755"),
}) })
// do we have any instanceGroup file assets // do we have any instanceGroup file assets
if f.InstanceGroup.Spec.FileAssets != nil { if f.InstanceGroup.Spec.FileAssets != nil {
if err := f.buildFileAssets(c, f.InstanceGroup.Spec.FileAssets, tracker); err != nil { if err := f.buildFileAssets(c, f.InstanceGroup.Spec.FileAssets, tracker); err != nil {
@ -105,9 +112,3 @@ func (f *FileAssetsBuilder) buildFileAssets(c *fi.ModelBuilderContext, assets []
return nil return nil
} }
// @perhaps a path finder?
var templateFuncs = template.FuncMap{
"split": strings.Split,
"join": strings.Join,
}

View File

@ -86,11 +86,10 @@ iptables -A FORWARD -w -p UDP -j ACCEPT
iptables -A FORWARD -w -p ICMP -j ACCEPT iptables -A FORWARD -w -p ICMP -j ACCEPT
fi fi
` `
t := &nodetasks.File{ return &nodetasks.File{
Path: "/home/kubernetes/bin/iptables-setup", Path: "/home/kubernetes/bin/iptables-setup",
Contents: fi.NewStringResource(script), Contents: fi.NewStringResource(script),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0755"), Mode: s("0755"),
} }
return t
} }

View File

@ -23,7 +23,9 @@ import (
"k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/flagbuilder"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubeconfig" "k8s.io/kops/pkg/kubeconfig"
"k8s.io/kops/pkg/kubemanifest"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
"k8s.io/kops/util/pkg/exec" "k8s.io/kops/util/pkg/exec"
@ -32,8 +34,6 @@ import (
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubemanifest"
) )
// PathAuthnConfig is the path to the custom webhook authentication config // PathAuthnConfig is the path to the custom webhook authentication config

View File

@ -22,6 +22,8 @@ import (
"strings" "strings"
"k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/flagbuilder"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubemanifest"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
"k8s.io/kops/util/pkg/exec" "k8s.io/kops/util/pkg/exec"
@ -30,8 +32,6 @@ import (
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubemanifest"
) )
// KubeControllerManagerBuilder install kube-controller-manager (just the manifest at the moment) // KubeControllerManagerBuilder install kube-controller-manager (just the manifest at the moment)
@ -66,12 +66,11 @@ func (b *KubeControllerManagerBuilder) Build(c *fi.ModelBuilderContext) error {
return fmt.Errorf("error marshalling pod to yaml: %v", err) return fmt.Errorf("error marshalling pod to yaml: %v", err)
} }
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: "/etc/kubernetes/manifests/kube-controller-manager.manifest", Path: "/etc/kubernetes/manifests/kube-controller-manager.manifest",
Contents: fi.NewBytesResource(manifest), Contents: fi.NewBytesResource(manifest),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
} })
c.AddTask(t)
} }
{ {
@ -102,12 +101,15 @@ func (b *KubeControllerManagerBuilder) Build(c *fi.ModelBuilderContext) error {
return nil return nil
} }
// useCertificateSigner checks to see if we need to use the certificate signer for the controller manager
func (b *KubeControllerManagerBuilder) useCertificateSigner() bool { func (b *KubeControllerManagerBuilder) useCertificateSigner() bool {
// For now, we enable this on 1.6 and later // For now, we enable this on 1.6 and later
return b.IsKubernetesGTE("1.6") return b.IsKubernetesGTE("1.6")
} }
// buildPod is responsible for building the kubernetes manifest for the controller-manager
func (b *KubeControllerManagerBuilder) buildPod() (*v1.Pod, error) { func (b *KubeControllerManagerBuilder) buildPod() (*v1.Pod, error) {
kcm := b.Cluster.Spec.KubeControllerManager kcm := b.Cluster.Spec.KubeControllerManager
kcm.RootCAFile = filepath.Join(b.PathSrvKubernetes(), "ca.crt") kcm.RootCAFile = filepath.Join(b.PathSrvKubernetes(), "ca.crt")
kcm.ServiceAccountPrivateKeyFile = filepath.Join(b.PathSrvKubernetes(), "server.key") kcm.ServiceAccountPrivateKeyFile = filepath.Join(b.PathSrvKubernetes(), "server.key")

View File

@ -21,6 +21,8 @@ import (
"k8s.io/kops/pkg/dns" "k8s.io/kops/pkg/dns"
"k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/flagbuilder"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubemanifest"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
"k8s.io/kops/util/pkg/exec" "k8s.io/kops/util/pkg/exec"
@ -29,8 +31,6 @@ import (
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubemanifest"
) )
// KubeProxyBuilder installs kube-proxy // KubeProxyBuilder installs kube-proxy

View File

@ -21,28 +21,27 @@ import (
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
) )
// KubeProxyBuilder installs kube-proxy // KubeRouterBuilder installs kube-router
type KubeRouterBuilder struct { type KubeRouterBuilder struct {
*NodeupModelContext *NodeupModelContext
} }
var _ fi.ModelBuilder = &KubeRouterBuilder{} var _ fi.ModelBuilder = &KubeRouterBuilder{}
// Build is responsible for configuring the kube-router
func (b *KubeRouterBuilder) Build(c *fi.ModelBuilderContext) error { func (b *KubeRouterBuilder) Build(c *fi.ModelBuilderContext) error {
// Add kubeconfig
{ {
kubeconfig, err := b.BuildPKIKubeconfig("kube-router") kubeconfig, err := b.BuildPKIKubeconfig("kube-router")
if err != nil { if err != nil {
return err return err
} }
t := &nodetasks.File{
c.AddTask(&nodetasks.File{
Path: "/var/lib/kube-router/kubeconfig", Path: "/var/lib/kube-router/kubeconfig",
Contents: fi.NewStringResource(kubeconfig), Contents: fi.NewStringResource(kubeconfig),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0400"), Mode: s("0400"),
} })
c.AddTask(t)
} }
return nil return nil

View File

@ -20,6 +20,8 @@ import (
"fmt" "fmt"
"k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/flagbuilder"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubemanifest"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
"k8s.io/kops/util/pkg/exec" "k8s.io/kops/util/pkg/exec"
@ -28,8 +30,6 @@ import (
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/kops/pkg/k8scodecs"
"k8s.io/kops/pkg/kubemanifest"
) )
// KubeSchedulerBuilder install kube-scheduler // KubeSchedulerBuilder install kube-scheduler

View File

@ -51,13 +51,12 @@ func (b *KubectlBuilder) Build(c *fi.ModelBuilderContext) error {
return fmt.Errorf("unable to locate asset %q", assetName) return fmt.Errorf("unable to locate asset %q", assetName)
} }
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: b.KubectlPath() + "/" + assetName, Path: b.KubectlPath() + "/" + assetName,
Contents: asset, Contents: asset,
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0755"), Mode: s("0755"),
} })
c.AddTask(t)
} }
{ {
@ -66,13 +65,12 @@ func (b *KubectlBuilder) Build(c *fi.ModelBuilderContext) error {
return err return err
} }
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: "/var/lib/kubectl/kubeconfig", Path: "/var/lib/kubectl/kubeconfig",
Contents: fi.NewStringResource(kubeconfig), Contents: fi.NewStringResource(kubeconfig),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0400"), Mode: s("0400"),
} })
c.AddTask(t)
adminUser, adminGroup, err := b.findKubeconfigUser() adminUser, adminGroup, err := b.findKubeconfigUser()
if err != nil { if err != nil {

View File

@ -20,12 +20,13 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/golang/glog"
"k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/nodeup/pkg/distros"
"k8s.io/kops/pkg/apis/kops/util" "k8s.io/kops/pkg/apis/kops/util"
"k8s.io/kops/pkg/systemd" "k8s.io/kops/pkg/systemd"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
"github.com/golang/glog"
) )
// LogrotateBuilder installs logrotate.d and configures log rotation for kubernetes logs // LogrotateBuilder installs logrotate.d and configures log rotation for kubernetes logs
@ -35,13 +36,16 @@ type LogrotateBuilder struct {
var _ fi.ModelBuilder = &LogrotateBuilder{} var _ fi.ModelBuilder = &LogrotateBuilder{}
// Build is responsible for configuring logrotate
func (b *LogrotateBuilder) Build(c *fi.ModelBuilderContext) error { func (b *LogrotateBuilder) Build(c *fi.ModelBuilderContext) error {
if b.Distribution == distros.DistributionContainerOS {
switch b.Distribution {
case distros.DistributionContainerOS:
glog.Infof("Detected ContainerOS; won't install logrotate") glog.Infof("Detected ContainerOS; won't install logrotate")
return nil return nil
} else if b.Distribution == distros.DistributionCoreOS { case distros.DistributionCoreOS:
glog.Infof("Detected CoreOS; won't install logrotate") glog.Infof("Detected CoreOS; won't install logrotate")
} else { default:
c.AddTask(&nodetasks.Package{Name: "logrotate"}) c.AddTask(&nodetasks.Package{Name: "logrotate"})
} }
@ -132,11 +136,10 @@ func (b *LogrotateBuilder) addLogRotate(c *fi.ModelBuilderContext, name, path st
contents := strings.Join(lines, "\n") contents := strings.Join(lines, "\n")
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: "/etc/logrotate.d/" + name, Path: "/etc/logrotate.d/" + name,
Contents: fi.NewStringResource(contents), Contents: fi.NewStringResource(contents),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0644"), Mode: s("0644"),
} })
c.AddTask(t)
} }

View File

@ -31,9 +31,11 @@ type NetworkBuilder struct {
var _ fi.ModelBuilder = &NetworkBuilder{} var _ fi.ModelBuilder = &NetworkBuilder{}
// Build is responsible for configuring the network cni
func (b *NetworkBuilder) Build(c *fi.ModelBuilderContext) error { func (b *NetworkBuilder) Build(c *fi.ModelBuilderContext) error {
var assetNames []string var assetNames []string
// @TODO need to clean up the code section isn't not easier to read
networking := b.Cluster.Spec.Networking networking := b.Cluster.Spec.Networking
if networking == nil || networking.Classic != nil { if networking == nil || networking.Classic != nil {
} else if networking.Kubenet != nil { } else if networking.Kubenet != nil {
@ -74,13 +76,12 @@ func (b *NetworkBuilder) addCNIBinAsset(c *fi.ModelBuilderContext, assetName str
return fmt.Errorf("unable to locate asset %q", assetName) return fmt.Errorf("unable to locate asset %q", assetName)
} }
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: filepath.Join(b.CNIBinDir(), assetName), Path: filepath.Join(b.CNIBinDir(), assetName),
Contents: asset, Contents: asset,
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0755"), Mode: s("0755"),
} })
c.AddTask(t)
return nil return nil
} }

View File

@ -17,9 +17,10 @@ limitations under the License.
package model package model
import ( import (
"github.com/golang/glog"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
"github.com/golang/glog"
) )
// PackagesBuilder adds miscellaneous OS packages that we need // PackagesBuilder adds miscellaneous OS packages that we need
@ -29,6 +30,7 @@ type PackagesBuilder struct {
var _ fi.ModelBuilder = &DockerBuilder{} var _ fi.ModelBuilder = &DockerBuilder{}
// Build is responsible for installing packahes
func (b *PackagesBuilder) Build(c *fi.ModelBuilderContext) error { func (b *PackagesBuilder) Build(c *fi.ModelBuilderContext) error {
// kubelet needs: // kubelet needs:
// ebtables - kops #1711 // ebtables - kops #1711

View File

@ -26,6 +26,7 @@ import (
kopsbase "k8s.io/kops" kopsbase "k8s.io/kops"
"k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/apis/kops/util" "k8s.io/kops/pkg/apis/kops/util"
"k8s.io/kops/pkg/assets"
"k8s.io/kops/pkg/dns" "k8s.io/kops/pkg/dns"
"k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/flagbuilder"
"k8s.io/kops/pkg/systemd" "k8s.io/kops/pkg/systemd"
@ -34,7 +35,6 @@ import (
"github.com/blang/semver" "github.com/blang/semver"
"github.com/golang/glog" "github.com/golang/glog"
"k8s.io/kops/pkg/assets"
) )
// ProtokubeBuilder configures protokube // ProtokubeBuilder configures protokube

View File

@ -21,7 +21,6 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/golang/glog"
"k8s.io/kops/pkg/tokens" "k8s.io/kops/pkg/tokens"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
@ -55,13 +54,12 @@ func (b *SecretBuilder) Build(c *fi.ModelBuilderContext) error {
dockercfg, _ := b.SecretStore.Secret(key) dockercfg, _ := b.SecretStore.Secret(key)
if dockercfg != nil { if dockercfg != nil {
contents := string(dockercfg.Data) contents := string(dockercfg.Data)
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: filepath.Join("root", ".docker", "config.json"), Path: filepath.Join("root", ".docker", "config.json"),
Contents: fi.NewStringResource(contents), Contents: fi.NewStringResource(contents),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0600"), Mode: s("0600"),
} })
c.AddTask(t)
} }
} }
@ -141,14 +139,13 @@ func (b *SecretBuilder) Build(c *fi.ModelBuilderContext) error {
} }
csv := strings.Join(lines, "\n") csv := strings.Join(lines, "\n")
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: filepath.Join(b.PathSrvKubernetes(), "known_tokens.csv"), Path: filepath.Join(b.PathSrvKubernetes(), "known_tokens.csv"),
Contents: fi.NewStringResource(csv), Contents: fi.NewStringResource(csv),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
Mode: s("0600"), Mode: s("0600"),
}) })
} }
c.AddTask(t)
return nil return nil
} }

View File

@ -31,6 +31,7 @@ type SysctlBuilder struct {
var _ fi.ModelBuilder = &SysctlBuilder{} var _ fi.ModelBuilder = &SysctlBuilder{}
// Build is responsible for configuring sysctl settings
func (b *SysctlBuilder) Build(c *fi.ModelBuilderContext) error { func (b *SysctlBuilder) Build(c *fi.ModelBuilderContext) error {
var sysctls []string var sysctls []string
@ -120,13 +121,12 @@ func (b *SysctlBuilder) Build(c *fi.ModelBuilderContext) error {
"net.ipv4.ip_forward=1", "net.ipv4.ip_forward=1",
"") "")
t := &nodetasks.File{ c.AddTask(&nodetasks.File{
Path: "/etc/sysctl.d/99-k8s-general.conf", Path: "/etc/sysctl.d/99-k8s-general.conf",
Contents: fi.NewStringResource(strings.Join(sysctls, "\n")), Contents: fi.NewStringResource(strings.Join(sysctls, "\n")),
Type: nodetasks.FileType_File, Type: nodetasks.FileType_File,
OnChangeExecute: [][]string{{"sysctl", "--system"}}, OnChangeExecute: [][]string{{"sysctl", "--system"}},
} })
c.AddTask(t)
return nil return nil
} }