diff --git a/cmd/kops/create_cluster.go b/cmd/kops/create_cluster.go index 4cdabf0c7718b..48f92468f2bb2 100644 --- a/cmd/kops/create_cluster.go +++ b/cmd/kops/create_cluster.go @@ -673,7 +673,7 @@ func RunCreateCluster(ctx context.Context, f *util.Factory, out io.Writer, c *Cr } for _, p := range c.AddonPaths { - addon, err := clusteraddons.LoadClusterAddon(p) + addon, err := clusteraddons.LoadClusterAddon(clientset.VFSContext(), p) if err != nil { return fmt.Errorf("error loading cluster addon %s: %v", p, err) } diff --git a/pkg/clusteraddons/load.go b/pkg/clusteraddons/load.go index 139526409a9bb..c71ec28b9c65c 100644 --- a/pkg/clusteraddons/load.go +++ b/pkg/clusteraddons/load.go @@ -31,7 +31,7 @@ type ClusterAddon struct { } // LoadClusterAddon loads a set of objects from the specified VFS location -func LoadClusterAddon(location string) (*ClusterAddon, error) { +func LoadClusterAddon(vfsContext *vfs.VFSContext, location string) (*ClusterAddon, error) { u, err := url.Parse(location) if err != nil { return nil, fmt.Errorf("invalid addon location: %q", location) @@ -41,7 +41,7 @@ func LoadClusterAddon(location string) (*ClusterAddon, error) { resolved := u.String() klog.V(2).Infof("Loading addon from %q", resolved) - addonBytes, err := vfs.Context.ReadFile(resolved) + addonBytes, err := vfsContext.ReadFile(resolved) if err != nil { return nil, fmt.Errorf("error reading addon %q: %v", resolved, err) } diff --git a/pkg/wellknownoperators/operators.go b/pkg/wellknownoperators/operators.go index f1a6908053a76..6dbed0294f4eb 100644 --- a/pkg/wellknownoperators/operators.go +++ b/pkg/wellknownoperators/operators.go @@ -37,7 +37,8 @@ type Package struct { } type Builder struct { - Cluster *kops.Cluster + VFSContext *vfs.VFSContext + Cluster *kops.Cluster } func (b *Builder) Build(objects kubemanifest.ObjectList) ([]*Package, kubemanifest.ObjectList, error) { @@ -94,7 +95,7 @@ func (b *Builder) loadClusterPackage(u *unstructured.Unstructured) (*Package, er locationURL := channelURL.ResolveReference(&url.URL{Path: location}).String() - manifestBytes, err := vfs.Context.ReadFile(locationURL) + manifestBytes, err := b.VFSContext.ReadFile(locationURL) if err != nil { return nil, fmt.Errorf("error reading operator manifest %q: %v", locationURL, err) } diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go index dc17828a0ba25..bcd8dc59f2d85 100644 --- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go +++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go @@ -22,7 +22,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/klog/v2" - channelsapi "k8s.io/kops/channels/pkg/api" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/assets" @@ -47,6 +46,7 @@ import ( "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/fitasks" "k8s.io/kops/upup/pkg/fi/utils" + "k8s.io/kops/util/pkg/vfs" ) // BootstrapChannelBuilder is responsible for handling the addons in channels @@ -162,7 +162,8 @@ func (b *BootstrapChannelBuilder) Build(c *fi.CloudupModelBuilderContext) error if featureflag.UseAddonOperators.Enabled() { ob := &wellknownoperators.Builder{ - Cluster: b.Cluster, + VFSContext: vfs.Context, + Cluster: b.Cluster, } addonPackages, clusterAddons, err := ob.Build(b.ClusterAddons)