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{}
|
||||
|
||||
// Build is ensures an number of directories
|
||||
func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||
if b.Distribution == distros.DistributionContainerOS {
|
||||
dir := "/home/kubernetes/bin"
|
||||
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: dir,
|
||||
Type: nodetasks.FileType_Directory,
|
||||
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", "-o", "remount,exec", "/home/kubernetes/bin"},
|
||||
},
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -35,16 +35,23 @@ type FileAssetsBuilder struct {
|
|||
|
||||
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
|
||||
func (f *FileAssetsBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||
// used to keep track of previous file, so a instanceGroup can override a cluster wide one
|
||||
tracker := make(map[string]bool, 0)
|
||||
|
||||
// ensure the default path exists
|
||||
c.EnsureTask(&nodetasks.File{
|
||||
Path: f.FileAssetsDefaultPath(),
|
||||
Type: nodetasks.FileType_Directory,
|
||||
Mode: s("0755"),
|
||||
})
|
||||
|
||||
// do we have any instanceGroup file assets
|
||||
if f.InstanceGroup.Spec.FileAssets != 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
|
||||
}
|
||||
|
||||
// @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
|
||||
fi
|
||||
`
|
||||
t := &nodetasks.File{
|
||||
return &nodetasks.File{
|
||||
Path: "/home/kubernetes/bin/iptables-setup",
|
||||
Contents: fi.NewStringResource(script),
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0755"),
|
||||
}
|
||||
return t
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,9 @@ import (
|
|||
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/flagbuilder"
|
||||
"k8s.io/kops/pkg/k8scodecs"
|
||||
"k8s.io/kops/pkg/kubeconfig"
|
||||
"k8s.io/kops/pkg/kubemanifest"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
"k8s.io/kops/util/pkg/exec"
|
||||
|
|
@ -32,8 +34,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"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
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"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/nodeup/nodetasks"
|
||||
"k8s.io/kops/util/pkg/exec"
|
||||
|
|
@ -30,8 +32,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"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)
|
||||
|
|
@ -66,12 +66,11 @@ func (b *KubeControllerManagerBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
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",
|
||||
Contents: fi.NewBytesResource(manifest),
|
||||
Type: nodetasks.FileType_File,
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -102,12 +101,15 @@ func (b *KubeControllerManagerBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// useCertificateSigner checks to see if we need to use the certificate signer for the controller manager
|
||||
func (b *KubeControllerManagerBuilder) useCertificateSigner() bool {
|
||||
// For now, we enable this on 1.6 and later
|
||||
return b.IsKubernetesGTE("1.6")
|
||||
}
|
||||
|
||||
// buildPod is responsible for building the kubernetes manifest for the controller-manager
|
||||
func (b *KubeControllerManagerBuilder) buildPod() (*v1.Pod, error) {
|
||||
|
||||
kcm := b.Cluster.Spec.KubeControllerManager
|
||||
kcm.RootCAFile = filepath.Join(b.PathSrvKubernetes(), "ca.crt")
|
||||
kcm.ServiceAccountPrivateKeyFile = filepath.Join(b.PathSrvKubernetes(), "server.key")
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ import (
|
|||
|
||||
"k8s.io/kops/pkg/dns"
|
||||
"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/nodeup/nodetasks"
|
||||
"k8s.io/kops/util/pkg/exec"
|
||||
|
|
@ -29,8 +31,6 @@ import (
|
|||
"k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/pkg/k8scodecs"
|
||||
"k8s.io/kops/pkg/kubemanifest"
|
||||
)
|
||||
|
||||
// KubeProxyBuilder installs kube-proxy
|
||||
|
|
|
|||
|
|
@ -21,28 +21,27 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
)
|
||||
|
||||
// KubeProxyBuilder installs kube-proxy
|
||||
// KubeRouterBuilder installs kube-router
|
||||
type KubeRouterBuilder struct {
|
||||
*NodeupModelContext
|
||||
}
|
||||
|
||||
var _ fi.ModelBuilder = &KubeRouterBuilder{}
|
||||
|
||||
// Build is responsible for configuring the kube-router
|
||||
func (b *KubeRouterBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||
|
||||
// Add kubeconfig
|
||||
{
|
||||
kubeconfig, err := b.BuildPKIKubeconfig("kube-router")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
t := &nodetasks.File{
|
||||
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: "/var/lib/kube-router/kubeconfig",
|
||||
Contents: fi.NewStringResource(kubeconfig),
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0400"),
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ import (
|
|||
"fmt"
|
||||
|
||||
"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/nodeup/nodetasks"
|
||||
"k8s.io/kops/util/pkg/exec"
|
||||
|
|
@ -28,8 +30,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/kops/pkg/k8scodecs"
|
||||
"k8s.io/kops/pkg/kubemanifest"
|
||||
)
|
||||
|
||||
// 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)
|
||||
}
|
||||
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: b.KubectlPath() + "/" + assetName,
|
||||
Contents: asset,
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0755"),
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -66,13 +65,12 @@ func (b *KubectlBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
return err
|
||||
}
|
||||
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: "/var/lib/kubectl/kubeconfig",
|
||||
Contents: fi.NewStringResource(kubeconfig),
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0400"),
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
|
||||
adminUser, adminGroup, err := b.findKubeconfigUser()
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -20,12 +20,13 @@ import (
|
|||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kops/nodeup/pkg/distros"
|
||||
"k8s.io/kops/pkg/apis/kops/util"
|
||||
"k8s.io/kops/pkg/systemd"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
|
||||
"github.com/golang/glog"
|
||||
)
|
||||
|
||||
// LogrotateBuilder installs logrotate.d and configures log rotation for kubernetes logs
|
||||
|
|
@ -35,13 +36,16 @@ type LogrotateBuilder struct {
|
|||
|
||||
var _ fi.ModelBuilder = &LogrotateBuilder{}
|
||||
|
||||
// Build is responsible for configuring logrotate
|
||||
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")
|
||||
return nil
|
||||
} else if b.Distribution == distros.DistributionCoreOS {
|
||||
case distros.DistributionCoreOS:
|
||||
glog.Infof("Detected CoreOS; won't install logrotate")
|
||||
} else {
|
||||
default:
|
||||
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")
|
||||
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: "/etc/logrotate.d/" + name,
|
||||
Contents: fi.NewStringResource(contents),
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0644"),
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,9 +31,11 @@ type NetworkBuilder struct {
|
|||
|
||||
var _ fi.ModelBuilder = &NetworkBuilder{}
|
||||
|
||||
// Build is responsible for configuring the network cni
|
||||
func (b *NetworkBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||
var assetNames []string
|
||||
|
||||
// @TODO need to clean up the code section isn't not easier to read
|
||||
networking := b.Cluster.Spec.Networking
|
||||
if networking == nil || networking.Classic != 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)
|
||||
}
|
||||
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: filepath.Join(b.CNIBinDir(), assetName),
|
||||
Contents: asset,
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0755"),
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,9 +17,10 @@ limitations under the License.
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
|
||||
"github.com/golang/glog"
|
||||
)
|
||||
|
||||
// PackagesBuilder adds miscellaneous OS packages that we need
|
||||
|
|
@ -29,6 +30,7 @@ type PackagesBuilder struct {
|
|||
|
||||
var _ fi.ModelBuilder = &DockerBuilder{}
|
||||
|
||||
// Build is responsible for installing packahes
|
||||
func (b *PackagesBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||
// kubelet needs:
|
||||
// ebtables - kops #1711
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import (
|
|||
kopsbase "k8s.io/kops"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/util"
|
||||
"k8s.io/kops/pkg/assets"
|
||||
"k8s.io/kops/pkg/dns"
|
||||
"k8s.io/kops/pkg/flagbuilder"
|
||||
"k8s.io/kops/pkg/systemd"
|
||||
|
|
@ -34,7 +35,6 @@ import (
|
|||
|
||||
"github.com/blang/semver"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kops/pkg/assets"
|
||||
)
|
||||
|
||||
// ProtokubeBuilder configures protokube
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import (
|
|||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kops/pkg/tokens"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"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)
|
||||
if dockercfg != nil {
|
||||
contents := string(dockercfg.Data)
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: filepath.Join("root", ".docker", "config.json"),
|
||||
Contents: fi.NewStringResource(contents),
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0600"),
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -141,14 +139,13 @@ func (b *SecretBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
}
|
||||
csv := strings.Join(lines, "\n")
|
||||
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: filepath.Join(b.PathSrvKubernetes(), "known_tokens.csv"),
|
||||
Contents: fi.NewStringResource(csv),
|
||||
Type: nodetasks.FileType_File,
|
||||
Mode: s("0600"),
|
||||
})
|
||||
}
|
||||
c.AddTask(t)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ type SysctlBuilder struct {
|
|||
|
||||
var _ fi.ModelBuilder = &SysctlBuilder{}
|
||||
|
||||
// Build is responsible for configuring sysctl settings
|
||||
func (b *SysctlBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||
var sysctls []string
|
||||
|
||||
|
|
@ -120,13 +121,12 @@ func (b *SysctlBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
"net.ipv4.ip_forward=1",
|
||||
"")
|
||||
|
||||
t := &nodetasks.File{
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: "/etc/sysctl.d/99-k8s-general.conf",
|
||||
Contents: fi.NewStringResource(strings.Join(sysctls, "\n")),
|
||||
Type: nodetasks.FileType_File,
|
||||
OnChangeExecute: [][]string{{"sysctl", "--system"}},
|
||||
}
|
||||
c.AddTask(t)
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue