mirror of https://github.com/kubernetes/kops.git
Add support for installing additional packages
This commit is contained in:
parent
d021ccee2f
commit
0b095068f3
|
@ -834,6 +834,11 @@ spec:
|
|||
description: NodeLabels indicates the kubernetes labels for nodes
|
||||
in this instance group
|
||||
type: object
|
||||
packages:
|
||||
description: Packages specifies additional packages to be installed.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
role:
|
||||
description: 'Type determines the role of instances in this instance
|
||||
group: masters or nodes'
|
||||
|
|
|
@ -52,6 +52,10 @@ func (b *PackagesBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
c.AddTask(&nodetasks.Package{Name: "pigz"})
|
||||
c.AddTask(&nodetasks.Package{Name: "socat"})
|
||||
c.AddTask(&nodetasks.Package{Name: "util-linux"})
|
||||
// Additional packages
|
||||
for _, additionalPackage := range b.NodeupConfig.Packages {
|
||||
c.EnsureTask(&nodetasks.Package{Name: additionalPackage})
|
||||
}
|
||||
} else if b.Distribution.IsRHELFamily() {
|
||||
c.AddTask(&nodetasks.Package{Name: "nfs-utils"})
|
||||
// From containerd: https://github.com/containerd/cri/blob/master/contrib/ansible/tasks/bootstrap_centos.yaml
|
||||
|
@ -72,6 +76,10 @@ func (b *PackagesBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
c.AddTask(&nodetasks.Package{Name: "container-selinux"})
|
||||
c.AddTask(&nodetasks.Package{Name: "pigz"})
|
||||
}
|
||||
// Additional packages
|
||||
for _, additionalPackage := range b.NodeupConfig.Packages {
|
||||
c.EnsureTask(&nodetasks.Package{Name: additionalPackage})
|
||||
}
|
||||
} else {
|
||||
// Hopefully they are already installed
|
||||
klog.Warningf("unknown distribution, skipping required packages install: %v", b.Distribution)
|
||||
|
|
|
@ -192,6 +192,8 @@ type InstanceGroupSpec struct {
|
|||
WarmPool *WarmPoolSpec `json:"warmPool,omitempty"`
|
||||
// Containerd specifies override configuration for instance group
|
||||
Containerd *ContainerdConfig `json:"containerd,omitempty"`
|
||||
// Packages specifies additional packages to be installed.
|
||||
Packages []string `json:"packages,omitempty"`
|
||||
}
|
||||
|
||||
const (
|
||||
|
|
|
@ -158,6 +158,8 @@ type InstanceGroupSpec struct {
|
|||
WarmPool *WarmPoolSpec `json:"warmPool,omitempty"`
|
||||
// Containerd specifies override configuration for instance group
|
||||
Containerd *ContainerdConfig `json:"containerd,omitempty"`
|
||||
// Packages specifies additional packages to be installed.
|
||||
Packages []string `json:"packages,omitempty"`
|
||||
}
|
||||
|
||||
// InstanceMetadataOptions defines the EC2 instance metadata service options (AWS Only)
|
||||
|
|
|
@ -4413,6 +4413,7 @@ func autoConvert_v1alpha2_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *Instan
|
|||
} else {
|
||||
out.Containerd = nil
|
||||
}
|
||||
out.Packages = in.Packages
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -4584,6 +4585,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha2_InstanceGroupSpec(in *kops.I
|
|||
} else {
|
||||
out.Containerd = nil
|
||||
}
|
||||
out.Packages = in.Packages
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -2491,6 +2491,11 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
|
|||
*out = new(ContainerdConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Packages != nil {
|
||||
in, out := &in.Packages, &out.Packages
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -155,6 +155,8 @@ type InstanceGroupSpec struct {
|
|||
WarmPool *WarmPoolSpec `json:"warmPool,omitempty"`
|
||||
// Containerd specifies override configuration for instance group
|
||||
Containerd *ContainerdConfig `json:"containerd,omitempty"`
|
||||
// Packages specifies additional packages to be installed.
|
||||
Packages []string `json:"packages,omitempty"`
|
||||
}
|
||||
|
||||
// InstanceMetadataOptions defines the EC2 instance metadata service options (AWS Only)
|
||||
|
|
|
@ -4506,6 +4506,7 @@ func autoConvert_v1alpha3_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *Instan
|
|||
} else {
|
||||
out.Containerd = nil
|
||||
}
|
||||
out.Packages = in.Packages
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -4677,6 +4678,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha3_InstanceGroupSpec(in *kops.I
|
|||
} else {
|
||||
out.Containerd = nil
|
||||
}
|
||||
out.Packages = in.Packages
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -2476,6 +2476,11 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
|
|||
*out = new(ContainerdConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Packages != nil {
|
||||
in, out := &in.Packages, &out.Packages
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -2639,6 +2639,11 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
|
|||
*out = new(ContainerdConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Packages != nil {
|
||||
in, out := &in.Packages, &out.Packages
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,8 @@ type Config struct {
|
|||
ApiserverAdditionalIPs []string `json:",omitempty"`
|
||||
// WarmPoolImages are the container images to pre-pull during instance pre-initialization
|
||||
WarmPoolImages []string `json:"warmPoolImages,omitempty"`
|
||||
// Packages specifies additional packages to be installed.
|
||||
Packages []string `json:"packages,omitempty"`
|
||||
|
||||
// Manifests for running etcd
|
||||
EtcdManifests []string `json:"etcdManifests,omitempty"`
|
||||
|
|
|
@ -1410,6 +1410,10 @@ func (n *nodeUpConfigBuilder) BuildConfig(ig *kops.InstanceGroup, apiserverAddit
|
|||
config.WarmPoolImages = n.buildWarmPoolImages(ig)
|
||||
}
|
||||
|
||||
if ig.Spec.Packages != nil {
|
||||
config.Packages = ig.Spec.Packages
|
||||
}
|
||||
|
||||
return config, bootConfig, nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue