Refactor NewAssetBuilder to not take a Cluster

This commit is contained in:
John Gardiner Myers 2022-12-20 21:20:38 -08:00
parent b07168c985
commit c68be498c6
34 changed files with 94 additions and 99 deletions

View File

@ -649,7 +649,7 @@ func RunCreateCluster(ctx context.Context, f *util.Factory, out io.Writer, c *Cr
return err
}
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
fullCluster, err := cloudup.PopulateClusterSpec(ctx, clientset, cluster, cloud, assetBuilder)
if err != nil {
return err

View File

@ -263,7 +263,7 @@ func updateCluster(ctx context.Context, clientset simple.Clientset, oldCluster,
return "", fmt.Errorf("error populating configuration: %v", err)
}
assetBuilder := assets.NewAssetBuilder(newCluster, false)
assetBuilder := assets.NewAssetBuilder(newCluster.Spec.Assets, newCluster.Spec.KubernetesVersion, false)
fullCluster, err := cloudup.PopulateClusterSpec(ctx, clientset, newCluster, cloud, assetBuilder)
if err != nil {
return fmt.Sprintf("error populating cluster spec: %s", err), nil

View File

@ -298,7 +298,7 @@ func updateInstanceGroup(ctx context.Context, clientset simple.Clientset, channe
return "", fmt.Errorf("error populating configuration: %v", err)
}
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
fullCluster, err := cloudup.PopulateClusterSpec(ctx, clientset, cluster, cloud, assetBuilder)
if err != nil {
return fmt.Sprintf("error populating cluster spec: %s", err), nil

View File

@ -299,7 +299,7 @@ func BuildNodeupModelContext(model *testutils.Model) (*NodeupModelContext, error
func mockedPopulateClusterSpec(ctx context.Context, c *kops.Cluster, cloud fi.Cloud) (*kops.Cluster, error) {
vfs.Context.ResetMemfsContext(true)
assetBuilder := assets.NewAssetBuilder(c, false)
assetBuilder := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
basePath, err := vfs.Context.BuildVfsPath("memfs://tests")
if err != nil {
return nil, fmt.Errorf("error building vfspath: %v", err)

View File

@ -37,7 +37,7 @@ func Test_Strategy(t *testing.T) {
cluster := &kops.Cluster{
Spec: kops.ClusterSpec{
ConfigStore: "s3://my_state_store/cluster",
Assets: &kops.Assets{
Assets: &kops.AssetsSpec{
FileRepository: values.String("https://s3.amazonaws.com/test"),
},
},
@ -66,7 +66,7 @@ func Test_In_StateStore(t *testing.T) {
cluster := &kops.Cluster{
Spec: kops.ClusterSpec{
ConfigStore: "s3://my_state_store/cluster",
Assets: &kops.Assets{
Assets: &kops.AssetsSpec{
FileRepository: values.String("https://s3.amazonaws.com/my_state_store/opps"),
},
},

View File

@ -144,7 +144,7 @@ type ClusterSpec struct {
// Hooks for custom actions e.g. on first installation
Hooks []HookSpec `json:"hooks,omitempty"`
// Assets is alternative locations for files and containers; the API under construction, will remove this comment once this API is fully functional.
Assets *Assets `json:"assets,omitempty"`
Assets *AssetsSpec `json:"assets,omitempty"`
// IAM field adds control over the IAM security policies applied to resources
IAM *IAMSpec `json:"iam,omitempty"`
// EncryptionConfig controls if encryption is enabled
@ -325,8 +325,8 @@ type FileAssetSpec struct {
Mode string `json:"mode,omitempty"`
}
// Assets defines the privately hosted assets
type Assets struct {
// AssetsSpec defines the privately hosted assets
type AssetsSpec struct {
// ContainerRegistry is a url for to a docker registry
ContainerRegistry *string `json:"containerRegistry,omitempty"`
// FileRepository is the url for a private file serving repository

View File

@ -213,7 +213,7 @@ type ClusterSpec struct {
// Hooks for custom actions e.g. on first installation
Hooks []HookSpec `json:"hooks,omitempty"`
// Alternative locations for files and containers
Assets *Assets `json:"assets,omitempty"`
Assets *AssetsSpec `json:"assets,omitempty"`
// IAM field adds control over the IAM security policies applied to resources
IAM *IAMSpec `json:"iam,omitempty"`
// EncryptionConfig holds the encryption config
@ -334,8 +334,8 @@ type FileAssetSpec struct {
Mode string `json:"mode,omitempty"`
}
// Assets defined the privately hosted assets
type Assets struct {
// AssetsSpec defined the privately hosted assets
type AssetsSpec struct {
// ContainerRegistry is a url for to a docker registry
ContainerRegistry *string `json:"containerRegistry,omitempty"`
// FileRepository is the url for a private file serving repository

View File

@ -124,13 +124,13 @@ func RegisterConversions(s *runtime.Scheme) error {
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*Assets)(nil), (*kops.Assets)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha2_Assets_To_kops_Assets(a.(*Assets), b.(*kops.Assets), scope)
if err := s.AddGeneratedConversionFunc((*AssetsSpec)(nil), (*kops.AssetsSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha2_AssetsSpec_To_kops_AssetsSpec(a.(*AssetsSpec), b.(*kops.AssetsSpec), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*kops.Assets)(nil), (*Assets)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_kops_Assets_To_v1alpha2_Assets(a.(*kops.Assets), b.(*Assets), scope)
if err := s.AddGeneratedConversionFunc((*kops.AssetsSpec)(nil), (*AssetsSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_kops_AssetsSpec_To_v1alpha2_AssetsSpec(a.(*kops.AssetsSpec), b.(*AssetsSpec), scope)
}); err != nil {
return err
}
@ -1525,28 +1525,28 @@ func Convert_kops_AmazonVPCNetworkingSpec_To_v1alpha2_AmazonVPCNetworkingSpec(in
return autoConvert_kops_AmazonVPCNetworkingSpec_To_v1alpha2_AmazonVPCNetworkingSpec(in, out, s)
}
func autoConvert_v1alpha2_Assets_To_kops_Assets(in *Assets, out *kops.Assets, s conversion.Scope) error {
func autoConvert_v1alpha2_AssetsSpec_To_kops_AssetsSpec(in *AssetsSpec, out *kops.AssetsSpec, s conversion.Scope) error {
out.ContainerRegistry = in.ContainerRegistry
out.FileRepository = in.FileRepository
out.ContainerProxy = in.ContainerProxy
return nil
}
// Convert_v1alpha2_Assets_To_kops_Assets is an autogenerated conversion function.
func Convert_v1alpha2_Assets_To_kops_Assets(in *Assets, out *kops.Assets, s conversion.Scope) error {
return autoConvert_v1alpha2_Assets_To_kops_Assets(in, out, s)
// Convert_v1alpha2_AssetsSpec_To_kops_AssetsSpec is an autogenerated conversion function.
func Convert_v1alpha2_AssetsSpec_To_kops_AssetsSpec(in *AssetsSpec, out *kops.AssetsSpec, s conversion.Scope) error {
return autoConvert_v1alpha2_AssetsSpec_To_kops_AssetsSpec(in, out, s)
}
func autoConvert_kops_Assets_To_v1alpha2_Assets(in *kops.Assets, out *Assets, s conversion.Scope) error {
func autoConvert_kops_AssetsSpec_To_v1alpha2_AssetsSpec(in *kops.AssetsSpec, out *AssetsSpec, s conversion.Scope) error {
out.ContainerRegistry = in.ContainerRegistry
out.FileRepository = in.FileRepository
out.ContainerProxy = in.ContainerProxy
return nil
}
// Convert_kops_Assets_To_v1alpha2_Assets is an autogenerated conversion function.
func Convert_kops_Assets_To_v1alpha2_Assets(in *kops.Assets, out *Assets, s conversion.Scope) error {
return autoConvert_kops_Assets_To_v1alpha2_Assets(in, out, s)
// Convert_kops_AssetsSpec_To_v1alpha2_AssetsSpec is an autogenerated conversion function.
func Convert_kops_AssetsSpec_To_v1alpha2_AssetsSpec(in *kops.AssetsSpec, out *AssetsSpec, s conversion.Scope) error {
return autoConvert_kops_AssetsSpec_To_v1alpha2_AssetsSpec(in, out, s)
}
func autoConvert_v1alpha2_AuthenticationSpec_To_kops_AuthenticationSpec(in *AuthenticationSpec, out *kops.AuthenticationSpec, s conversion.Scope) error {
@ -2592,8 +2592,8 @@ func autoConvert_v1alpha2_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out *
}
if in.Assets != nil {
in, out := &in.Assets, &out.Assets
*out = new(kops.Assets)
if err := Convert_v1alpha2_Assets_To_kops_Assets(*in, *out, s); err != nil {
*out = new(kops.AssetsSpec)
if err := Convert_v1alpha2_AssetsSpec_To_kops_AssetsSpec(*in, *out, s); err != nil {
return err
}
} else {
@ -2930,8 +2930,8 @@ func autoConvert_kops_ClusterSpec_To_v1alpha2_ClusterSpec(in *kops.ClusterSpec,
}
if in.Assets != nil {
in, out := &in.Assets, &out.Assets
*out = new(Assets)
if err := Convert_kops_Assets_To_v1alpha2_Assets(*in, *out, s); err != nil {
*out = new(AssetsSpec)
if err := Convert_kops_AssetsSpec_To_v1alpha2_AssetsSpec(*in, *out, s); err != nil {
return err
}
} else {

View File

@ -245,7 +245,7 @@ func (in *AmazonVPCNetworkingSpec) DeepCopy() *AmazonVPCNetworkingSpec {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Assets) DeepCopyInto(out *Assets) {
func (in *AssetsSpec) DeepCopyInto(out *AssetsSpec) {
*out = *in
if in.ContainerRegistry != nil {
in, out := &in.ContainerRegistry, &out.ContainerRegistry
@ -265,12 +265,12 @@ func (in *Assets) DeepCopyInto(out *Assets) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Assets.
func (in *Assets) DeepCopy() *Assets {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AssetsSpec.
func (in *AssetsSpec) DeepCopy() *AssetsSpec {
if in == nil {
return nil
}
out := new(Assets)
out := new(AssetsSpec)
in.DeepCopyInto(out)
return out
}
@ -1222,7 +1222,7 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
}
if in.Assets != nil {
in, out := &in.Assets, &out.Assets
*out = new(Assets)
*out = new(AssetsSpec)
(*in).DeepCopyInto(*out)
}
if in.IAM != nil {

View File

@ -140,7 +140,7 @@ type ClusterSpec struct {
// Hooks for custom actions e.g. on first installation
Hooks []HookSpec `json:"hooks,omitempty"`
// Alternative locations for files and containers
Assets *Assets `json:"assets,omitempty"`
Assets *AssetsSpec `json:"assets,omitempty"`
// IAM field adds control over the IAM security policies applied to resources
IAM *IAMSpec `json:"iam,omitempty"`
// EncryptionConfig holds the encryption config
@ -295,8 +295,8 @@ type FileAssetSpec struct {
Mode string `json:"mode,omitempty"`
}
// Assets defined the privately hosted assets
type Assets struct {
// AssetsSpec defined the privately hosted assets
type AssetsSpec struct {
// ContainerRegistry is a url for to a docker registry
ContainerRegistry *string `json:"containerRegistry,omitempty"`
// FileRepository is the url for a private file serving repository

View File

@ -134,13 +134,13 @@ func RegisterConversions(s *runtime.Scheme) error {
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*Assets)(nil), (*kops.Assets)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha3_Assets_To_kops_Assets(a.(*Assets), b.(*kops.Assets), scope)
if err := s.AddGeneratedConversionFunc((*AssetsSpec)(nil), (*kops.AssetsSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha3_AssetsSpec_To_kops_AssetsSpec(a.(*AssetsSpec), b.(*kops.AssetsSpec), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*kops.Assets)(nil), (*Assets)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_kops_Assets_To_v1alpha3_Assets(a.(*kops.Assets), b.(*Assets), scope)
if err := s.AddGeneratedConversionFunc((*kops.AssetsSpec)(nil), (*AssetsSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_kops_AssetsSpec_To_v1alpha3_AssetsSpec(a.(*kops.AssetsSpec), b.(*AssetsSpec), scope)
}); err != nil {
return err
}
@ -1653,28 +1653,28 @@ func Convert_kops_AmazonVPCNetworkingSpec_To_v1alpha3_AmazonVPCNetworkingSpec(in
return autoConvert_kops_AmazonVPCNetworkingSpec_To_v1alpha3_AmazonVPCNetworkingSpec(in, out, s)
}
func autoConvert_v1alpha3_Assets_To_kops_Assets(in *Assets, out *kops.Assets, s conversion.Scope) error {
func autoConvert_v1alpha3_AssetsSpec_To_kops_AssetsSpec(in *AssetsSpec, out *kops.AssetsSpec, s conversion.Scope) error {
out.ContainerRegistry = in.ContainerRegistry
out.FileRepository = in.FileRepository
out.ContainerProxy = in.ContainerProxy
return nil
}
// Convert_v1alpha3_Assets_To_kops_Assets is an autogenerated conversion function.
func Convert_v1alpha3_Assets_To_kops_Assets(in *Assets, out *kops.Assets, s conversion.Scope) error {
return autoConvert_v1alpha3_Assets_To_kops_Assets(in, out, s)
// Convert_v1alpha3_AssetsSpec_To_kops_AssetsSpec is an autogenerated conversion function.
func Convert_v1alpha3_AssetsSpec_To_kops_AssetsSpec(in *AssetsSpec, out *kops.AssetsSpec, s conversion.Scope) error {
return autoConvert_v1alpha3_AssetsSpec_To_kops_AssetsSpec(in, out, s)
}
func autoConvert_kops_Assets_To_v1alpha3_Assets(in *kops.Assets, out *Assets, s conversion.Scope) error {
func autoConvert_kops_AssetsSpec_To_v1alpha3_AssetsSpec(in *kops.AssetsSpec, out *AssetsSpec, s conversion.Scope) error {
out.ContainerRegistry = in.ContainerRegistry
out.FileRepository = in.FileRepository
out.ContainerProxy = in.ContainerProxy
return nil
}
// Convert_kops_Assets_To_v1alpha3_Assets is an autogenerated conversion function.
func Convert_kops_Assets_To_v1alpha3_Assets(in *kops.Assets, out *Assets, s conversion.Scope) error {
return autoConvert_kops_Assets_To_v1alpha3_Assets(in, out, s)
// Convert_kops_AssetsSpec_To_v1alpha3_AssetsSpec is an autogenerated conversion function.
func Convert_kops_AssetsSpec_To_v1alpha3_AssetsSpec(in *kops.AssetsSpec, out *AssetsSpec, s conversion.Scope) error {
return autoConvert_kops_AssetsSpec_To_v1alpha3_AssetsSpec(in, out, s)
}
func autoConvert_v1alpha3_AuthenticationSpec_To_kops_AuthenticationSpec(in *AuthenticationSpec, out *kops.AuthenticationSpec, s conversion.Scope) error {
@ -2764,8 +2764,8 @@ func autoConvert_v1alpha3_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out *
}
if in.Assets != nil {
in, out := &in.Assets, &out.Assets
*out = new(kops.Assets)
if err := Convert_v1alpha3_Assets_To_kops_Assets(*in, *out, s); err != nil {
*out = new(kops.AssetsSpec)
if err := Convert_v1alpha3_AssetsSpec_To_kops_AssetsSpec(*in, *out, s); err != nil {
return err
}
} else {
@ -3098,8 +3098,8 @@ func autoConvert_kops_ClusterSpec_To_v1alpha3_ClusterSpec(in *kops.ClusterSpec,
}
if in.Assets != nil {
in, out := &in.Assets, &out.Assets
*out = new(Assets)
if err := Convert_kops_Assets_To_v1alpha3_Assets(*in, *out, s); err != nil {
*out = new(AssetsSpec)
if err := Convert_kops_AssetsSpec_To_v1alpha3_AssetsSpec(*in, *out, s); err != nil {
return err
}
} else {

View File

@ -312,7 +312,7 @@ func (in *AmazonVPCNetworkingSpec) DeepCopy() *AmazonVPCNetworkingSpec {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Assets) DeepCopyInto(out *Assets) {
func (in *AssetsSpec) DeepCopyInto(out *AssetsSpec) {
*out = *in
if in.ContainerRegistry != nil {
in, out := &in.ContainerRegistry, &out.ContainerRegistry
@ -332,12 +332,12 @@ func (in *Assets) DeepCopyInto(out *Assets) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Assets.
func (in *Assets) DeepCopy() *Assets {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AssetsSpec.
func (in *AssetsSpec) DeepCopy() *AssetsSpec {
if in == nil {
return nil
}
out := new(Assets)
out := new(AssetsSpec)
in.DeepCopyInto(out)
return out
}
@ -1123,7 +1123,7 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
}
if in.Assets != nil {
in, out := &in.Assets, &out.Assets
*out = new(Assets)
*out = new(AssetsSpec)
(*in).DeepCopyInto(*out)
}
if in.IAM != nil {

View File

@ -311,7 +311,7 @@ func (in *AmazonVPCNetworkingSpec) DeepCopy() *AmazonVPCNetworkingSpec {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Assets) DeepCopyInto(out *Assets) {
func (in *AssetsSpec) DeepCopyInto(out *AssetsSpec) {
*out = *in
if in.ContainerRegistry != nil {
in, out := &in.ContainerRegistry, &out.ContainerRegistry
@ -331,12 +331,12 @@ func (in *Assets) DeepCopyInto(out *Assets) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Assets.
func (in *Assets) DeepCopy() *Assets {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AssetsSpec.
func (in *AssetsSpec) DeepCopy() *AssetsSpec {
if in == nil {
return nil
}
out := new(Assets)
out := new(AssetsSpec)
in.DeepCopyInto(out)
return out
}
@ -1220,7 +1220,7 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
}
if in.Assets != nil {
in, out := &in.Assets, &out.Assets
*out = new(Assets)
*out = new(AssetsSpec)
(*in).DeepCopyInto(*out)
}
if in.IAM != nil {

View File

@ -44,7 +44,7 @@ import (
type AssetBuilder struct {
ImageAssets []*ImageAsset
FileAssets []*FileAsset
AssetsLocation *kops.Assets
AssetsLocation *kops.AssetsSpec
GetAssets bool
// KubernetesVersion is the version of kubernetes we are installing
@ -101,16 +101,16 @@ type FileAsset struct {
}
// NewAssetBuilder creates a new AssetBuilder.
func NewAssetBuilder(cluster *kops.Cluster, getAssets bool) *AssetBuilder {
func NewAssetBuilder(assets *kops.AssetsSpec, kubernetesVersion string, getAssets bool) *AssetBuilder {
a := &AssetBuilder{
AssetsLocation: cluster.Spec.Assets,
AssetsLocation: assets,
GetAssets: getAssets,
}
version, err := util.ParseKubernetesVersion(cluster.Spec.KubernetesVersion)
version, err := util.ParseKubernetesVersion(kubernetesVersion)
if err != nil {
// This should have already been validated
klog.Fatalf("unexpected error from ParseKubernetesVersion %s: %v", cluster.Spec.KubernetesVersion, err)
klog.Fatalf("unexpected error from ParseKubernetesVersion %s: %v", kubernetesVersion, err)
}
a.KubernetesVersion = *version

View File

@ -28,7 +28,7 @@ import (
func buildAssetBuilder(t *testing.T) *AssetBuilder {
builder := &AssetBuilder{
AssetsLocation: &kops.Assets{},
AssetsLocation: &kops.AssetsSpec{},
ImageAssets: []*ImageAsset{},
}
return builder

View File

@ -40,7 +40,7 @@ func UpdateCluster(ctx context.Context, clientset simple.Clientset, cluster *kop
return fmt.Errorf("error populating configuration: %v", err)
}
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
fullCluster, err := cloudup.PopulateClusterSpec(ctx, clientset, cluster, cloud, assetBuilder)
if err != nil {
return err
@ -78,7 +78,7 @@ func UpdateInstanceGroup(ctx context.Context, clientset simple.Clientset, cluste
return fmt.Errorf("error populating configuration: %v", err)
}
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
fullCluster, err := cloudup.PopulateClusterSpec(ctx, clientset, cluster, cloud, assetBuilder)
if err != nil {
return err

View File

@ -58,7 +58,7 @@ func getTestSetupOS(t *testing.T, ctx context.Context) (*RollingUpdateCluster, *
t.Fatalf("Failed to perform assignments: %v", err)
}
assetBuilder := assets.NewAssetBuilder(inCluster, false)
assetBuilder := assets.NewAssetBuilder(inCluster.Spec.Assets, inCluster.Spec.KubernetesVersion, false)
basePath, _ := vfs.Context.BuildVfsPath(inCluster.Spec.ConfigBase)
clientset := vfsclientset.NewVFSClientset(basePath)
cluster, err := cloudup.PopulateClusterSpec(ctx, clientset, inCluster, mockcloud, assetBuilder)

View File

@ -45,7 +45,7 @@ func Test_Build_Containerd_Supported_Version(t *testing.T) {
c := buildContainerdCluster(v)
c.Spec.ContainerRuntime = "containerd"
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
version, err := util.ParseKubernetesVersion(v)
if err != nil {
@ -80,7 +80,7 @@ func Test_Build_Containerd_Unneeded_Runtime(t *testing.T) {
c.Spec.Docker = &kopsapi.DockerConfig{
Version: &v,
}
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
ob := &ContainerdOptionsBuilder{
&OptionsContext{
@ -109,7 +109,7 @@ func Test_Build_Containerd_Needed_Runtime(t *testing.T) {
c.Spec.Docker = &kopsapi.DockerConfig{
Version: &v,
}
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
ob := &ContainerdOptionsBuilder{
&OptionsContext{

View File

@ -52,7 +52,7 @@ func Test_RunEtcdManagerBuilder(t *testing.T) {
builder := EtcdManagerBuilder{
KopsModelContext: kopsModelContext,
AssetBuilder: assets.NewAssetBuilder(kopsModelContext.Cluster, false),
AssetBuilder: assets.NewAssetBuilder(kopsModelContext.Cluster.Spec.Assets, kopsModelContext.Cluster.Spec.KubernetesVersion, false),
}
if err := builder.Build(context); err != nil {

View File

@ -78,7 +78,7 @@ func TestImage(t *testing.T) {
}
}
assetBuilder := assets.NewAssetBuilder(g.Cluster, false)
assetBuilder := assets.NewAssetBuilder(g.Cluster.Spec.Assets, g.Cluster.Spec.KubernetesVersion, false)
actual, err := Image(g.Component, &g.Cluster.Spec, assetBuilder)
if err != nil {
t.Errorf("unexpected error from image %q %v: %v",

View File

@ -49,7 +49,7 @@ func Test_RunKubeApiserverBuilder(t *testing.T) {
builder := KubeApiserverBuilder{
KopsModelContext: kopsModelContext,
AssetBuilder: assets.NewAssetBuilder(kopsModelContext.Cluster, false),
AssetBuilder: assets.NewAssetBuilder(kopsModelContext.Cluster.Spec.Assets, kopsModelContext.Cluster.Spec.KubernetesVersion, false),
}
if err := builder.Build(context); err != nil {

View File

@ -46,7 +46,7 @@ func Test_Build_KCM_Builder(t *testing.T) {
c := buildCluster()
c.Spec.KubernetesVersion = v
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
kcm := &KubeControllerManagerOptionsBuilder{
OptionsContext: &OptionsContext{
@ -67,7 +67,7 @@ func Test_Build_KCM_Builder(t *testing.T) {
func Test_Build_KCM_Builder_Change_Duration(t *testing.T) {
c := buildCluster()
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
kcm := &KubeControllerManagerOptionsBuilder{
OptionsContext: &OptionsContext{
@ -142,7 +142,7 @@ func Test_Build_KCM_Builder_CIDR_Mask_Size(t *testing.T) {
for _, tc := range grid {
t.Run(tc.PodCIDR+":"+tc.ClusterCIDR, func(t *testing.T) {
c := buildCluster()
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
kcm := &KubeControllerManagerOptionsBuilder{
OptionsContext: &OptionsContext{

View File

@ -37,7 +37,7 @@ func buildKubeletTestCluster() *kops.Cluster {
}
func buildOptions(cluster *kops.Cluster) error {
ab := assets.NewAssetBuilder(cluster, false)
ab := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
ver, err := util.ParseKubernetesVersion(cluster.Spec.KubernetesVersion)
if err != nil {

View File

@ -50,7 +50,7 @@ func Test_RunKubeSchedulerBuilder(t *testing.T) {
builder := KubeSchedulerBuilder{
KopsModelContext: kopsModelContext,
AssetBuilder: assets.NewAssetBuilder(kopsModelContext.Cluster, false),
AssetBuilder: assets.NewAssetBuilder(kopsModelContext.Cluster.Spec.Assets, kopsModelContext.Cluster.Spec.KubernetesVersion, false),
}
if err := builder.Build(context); err != nil {

View File

@ -47,7 +47,7 @@ func Test_Build_Scheduler_Without_PolicyConfigMap(t *testing.T) {
c := buildCluster()
c.Spec.KubernetesVersion = v
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
version, err := util.ParseKubernetesVersion(v)
if err != nil {
@ -75,7 +75,7 @@ func Test_Build_Scheduler_PolicyConfigMap_Supported_Version(t *testing.T) {
for _, v := range versions {
c := buildSchedulerConfigMapCluster(v)
b := assets.NewAssetBuilder(c, false)
b := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
version, err := util.ParseKubernetesVersion(v)
if err != nil {

View File

@ -245,7 +245,7 @@ func (c *ApplyClusterCmd) Run(ctx context.Context) error {
clusterLifecycle = fi.LifecycleIgnore
}
assetBuilder := assets.NewAssetBuilder(c.Cluster, c.GetAssets)
assetBuilder := assets.NewAssetBuilder(c.Cluster.Spec.Assets, c.Cluster.Spec.KubernetesVersion, c.GetAssets)
err = c.upgradeSpecs(ctx, assetBuilder)
if err != nil {
return err

View File

@ -127,7 +127,7 @@ func checkNoChanges(t *testing.T, ctx context.Context, cloud fi.Cloud, allTasks
KubernetesVersion: "v1.9.0",
},
}
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
target := fi.NewCloudupDryRunTarget(assetBuilder, os.Stderr)
context, err := fi.NewCloudupContext(ctx, target, nil, cloud, nil, nil, nil, allTasks)
if err != nil {

View File

@ -163,7 +163,7 @@ func runChannelBuilderTest(t *testing.T, key string, addonManifests []string) {
bcb := bootstrapchannelbuilder.NewBootstrapChannelBuilder(
&kopsModel,
fi.LifecycleSync,
assets.NewAssetBuilder(cluster, false),
assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false),
templates,
nil,
)

View File

@ -117,7 +117,7 @@ func doDryRun(t *testing.T, ctx context.Context, cloud fi.Cloud, allTasks map[st
KubernetesVersion: "v1.23.0",
},
}
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
target := fi.NewCloudupDryRunTarget(assetBuilder, os.Stderr)
context, err := fi.NewCloudupContext(ctx, target, nil, cloud, nil, nil, nil, allTasks)
if err != nil {

View File

@ -34,7 +34,7 @@ func Test_FindCNIAssetFromEnvironmentVariable(t *testing.T) {
cluster := &api.Cluster{}
cluster.Spec.KubernetesVersion = "v1.18.0"
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
cniAsset, cniAssetHash, err := findCNIAssets(cluster, assetBuilder, architectures.ArchitectureAmd64)
if err != nil {
t.Errorf("Unable to parse CNI version %s", err)
@ -56,7 +56,7 @@ func Test_FindCNIAssetFromDefaults122(t *testing.T) {
cluster := &api.Cluster{}
cluster.Spec.KubernetesVersion = "v1.22.0"
assetBuilder := assets.NewAssetBuilder(cluster, false)
assetBuilder := assets.NewAssetBuilder(cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
cniAsset, cniAssetHash, err := findCNIAssets(cluster, assetBuilder, architectures.ArchitectureAmd64)
if err != nil {
t.Errorf("Unable to parse CNI version %s", err)

View File

@ -110,7 +110,7 @@ func TestPopulateCluster_Subnets(t *testing.T) {
func mockedPopulateClusterSpec(ctx context.Context, c *kopsapi.Cluster, cloud fi.Cloud) (*kopsapi.Cluster, error) {
vfs.Context.ResetMemfsContext(true)
assetBuilder := assets.NewAssetBuilder(c, false)
assetBuilder := assets.NewAssetBuilder(c.Spec.Assets, c.Spec.KubernetesVersion, false)
basePath, err := vfs.Context.BuildVfsPath("memfs://tests")
if err != nil {
return nil, fmt.Errorf("error building vfspath: %v", err)

View File

@ -181,7 +181,7 @@ func TestValidate_ClusterName_Import(t *testing.T) {
func TestValidate_ContainerRegistry_and_ContainerProxy_exclusivity(t *testing.T) {
c := buildDefaultCluster(t)
assets := new(api.Assets)
assets := new(api.AssetsSpec)
c.Spec.Assets = assets
expectNoErrorFromValidate(t, c)

View File

@ -22,7 +22,6 @@ import (
"testing"
"github.com/stretchr/testify/assert"
api "k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/assets"
)
@ -67,11 +66,7 @@ func (*testTask) Run(_ *CloudupContext) error {
}
func Test_DryrunTarget_PrintReport(t *testing.T) {
builder := assets.NewAssetBuilder(&api.Cluster{
Spec: api.ClusterSpec{
KubernetesVersion: "1.17.3",
},
}, false)
builder := assets.NewAssetBuilder(nil, "1.17.3", false)
var stdout bytes.Buffer
target := newDryRunTarget[CloudupSubContext](builder, &stdout)
tasks := map[string]CloudupTask{}

View File

@ -367,7 +367,7 @@ func (c *NodeUpCommand) Run(out io.Writer) error {
Cloud: cloud,
}
case "dryrun":
assetBuilder := assets.NewAssetBuilder(c.cluster, false)
assetBuilder := assets.NewAssetBuilder(c.cluster.Spec.Assets, c.cluster.Spec.KubernetesVersion, false)
target = fi.NewNodeupDryRunTarget(assetBuilder, out)
default:
return fmt.Errorf("unsupported target type %q", c.Target)