mirror of https://github.com/kubernetes/kops.git
- cleanup up elements, imports and comments
This commit is contained in:
parent
ecf1278bfe
commit
c9db958696
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue