66 "io"
77 "os"
88
9+ stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config"
910 sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config"
1011 "github.com/stackitcloud/stackit-sdk-go/services/iaas"
1112 "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
@@ -19,7 +20,6 @@ import (
1920
2021 "github.com/stackitcloud/cloud-provider-stackit/pkg/metrics"
2122 "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit"
22- "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata"
2323)
2424
2525const (
@@ -42,13 +42,6 @@ type CloudControllerManager struct {
4242 instances * Instances
4343}
4444
45- type Config struct {
46- Global stackit.GlobalOpts `yaml:"global"`
47- Metadata metadata.Opts `yaml:"metadata"`
48- LoadBalancer LoadBalancerOpts `yaml:"loadBalancer"`
49- Instances InstancesOpts `yaml:"instances"`
50- }
51-
5245func init () {
5346 cloudprovider .RegisterCloudProvider (ProviderName , func (config io.Reader ) (cloudprovider.Interface , error ) {
5447 cfg , err := GetConfig (config )
@@ -79,8 +72,8 @@ func init() {
7972 })
8073}
8174
82- func GetConfig (reader io.Reader ) (Config , error ) {
83- var cfg Config
75+ func GetConfig (reader io.Reader ) (stackitconfig. CCMConfig , error ) {
76+ var cfg stackitconfig. CCMConfig
8477
8578 content , err := io .ReadAll (reader )
8679 if err != nil {
@@ -124,21 +117,21 @@ func BuildObservability() (*MetricsRemoteWrite, error) {
124117 return nil , fmt .Errorf ("missing from env: %q" , missingKeys )
125118}
126119
127- // NewCloudControllerManager creates a new instance of the stackit struct from a config struct
128- func NewCloudControllerManager (cfg * Config , obs * MetricsRemoteWrite ) (* CloudControllerManager , error ) {
120+ // NewCloudControllerManager creates a new instance of the stackit struct from a stackitconfig struct
121+ func NewCloudControllerManager (cfg * stackitconfig. CCMConfig , obs * MetricsRemoteWrite ) (* CloudControllerManager , error ) {
129122 lbOpts := []sdkconfig.ConfigurationOption {
130123 sdkconfig .WithHTTPClient (metrics .NewInstrumentedHTTPClient ()),
131124 }
132125
133- if cfg .LoadBalancer . API != "" {
134- lbOpts = append (lbOpts , sdkconfig .WithEndpoint (cfg .LoadBalancer . API ))
126+ if cfg .Global . APIEndpoints . LoadBalancerAPI != "" {
127+ lbOpts = append (lbOpts , sdkconfig .WithEndpoint (cfg .Global . APIEndpoints . LoadBalancerAPI ))
135128 }
136129
137130 // The token is only provided by the 'gardener-extension-provider-stackit' in case of emergency access.
138131 // In those cases, the [cfg.LoadBalancerAPI.URL] will also be different (direct API URL instead of the API Gateway)
139132 lbEmergencyAPIToken := os .Getenv (stackitLoadBalancerEmergencyAPIToken )
140133 if lbEmergencyAPIToken != "" {
141- klog .Warningf ("Using emergency token for loadbalancer api on host: %s" , cfg .LoadBalancer . API )
134+ klog .Warningf ("Using emergency token for loadbalancer api on host: %s" , cfg .Global . APIEndpoints . LoadBalancerAPI )
142135 lbOpts = append (lbOpts , sdkconfig .WithToken (lbEmergencyAPIToken ))
143136 }
144137
@@ -155,8 +148,8 @@ func NewCloudControllerManager(cfg *Config, obs *MetricsRemoteWrite) (*CloudCont
155148 sdkconfig .WithHTTPClient (metrics .NewInstrumentedHTTPClient ()),
156149 }
157150
158- if cfg .Instances . API != "" {
159- iaasOpts = append (iaasOpts , sdkconfig .WithEndpoint (cfg .Instances . API ))
151+ if cfg .Global . APIEndpoints . IaasAPI != "" {
152+ iaasOpts = append (iaasOpts , sdkconfig .WithEndpoint (cfg .Global . APIEndpoints . IaasAPI ))
160153 }
161154
162155 iaasInnerClient , err := iaas .NewAPIClient (iaasOpts ... )
0 commit comments