77 "os"
88
99 sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config"
10+ "github.com/stackitcloud/stackit-sdk-go/services/iaas"
1011 "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
1112 "gopkg.in/yaml.v3"
1213 corev1 "k8s.io/api/core/v1"
@@ -37,6 +38,7 @@ const (
3738
3839type CloudControllerManager struct {
3940 loadBalancer * LoadBalancer
41+ instances * Instances
4042}
4143
4244// Config is used to read and store information from the cloud configuration file
@@ -151,13 +153,29 @@ func NewCloudControllerManager(cfg *Config, obs *MetricsRemoteWrite) (*CloudCont
151153 return nil , err
152154 }
153155
156+ iaasInnerClient , err := iaas .NewAPIClient (
157+ sdkconfig .WithRegion (cfg .Region ),
158+ )
159+ if err != nil {
160+ return nil , fmt .Errorf ("failed to create IaaS client: %v" , err )
161+ }
162+ nodeClient , err := stackit .NewNodeClient (iaasInnerClient )
163+ if err != nil {
164+ return nil , fmt .Errorf ("failed to create Node client: %v" , err )
165+ }
166+ instances , err := NewInstance (nodeClient , cfg .ProjectID , cfg .Region )
167+ if err != nil {
168+ return nil , err
169+ }
170+
154171 lb , err := NewLoadBalancer (client , cfg .ProjectID , cfg .NetworkID , cfg .ExtraLabels , obs )
155172 if err != nil {
156173 return nil , err
157174 }
158175
159176 ccm := CloudControllerManager {
160177 loadBalancer : lb ,
178+ instances : instances ,
161179 }
162180 return & ccm , nil
163181}
@@ -172,7 +190,7 @@ func (ccm *CloudControllerManager) Initialize(clientBuilder cloudprovider.Contro
172190}
173191
174192func (ccm * CloudControllerManager ) InstancesV2 () (cloudprovider.InstancesV2 , bool ) {
175- return nil , true
193+ return ccm . instances , true
176194}
177195
178196func (ccm * CloudControllerManager ) LoadBalancer () (cloudprovider.LoadBalancer , bool ) {
0 commit comments