Skip to content

Commit

Permalink
Update the structs and adding tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
joekr committed Apr 25, 2023
1 parent cd450a4 commit 18b4105
Show file tree
Hide file tree
Showing 21 changed files with 255 additions and 138 deletions.
2 changes: 1 addition & 1 deletion api/v1beta1/ocicluster_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func (src *OCICluster) ConvertTo(dstRaw conversion.Hub) error {
dst.Spec.NetworkSpec.Vcn.InternetGateway.Skip = restored.Spec.NetworkSpec.Vcn.InternetGateway.Skip
dst.Spec.NetworkSpec.Vcn.RouteTable.Skip = restored.Spec.NetworkSpec.Vcn.RouteTable.Skip
dst.Spec.NetworkSpec.APIServerLB.LoadBalancerType = restored.Spec.NetworkSpec.APIServerLB.LoadBalancerType
dst.Spec.ClientHostUrls = restored.Spec.ClientHostUrls
dst.Spec.ClientOverrides = restored.Spec.ClientOverrides

return nil
}
Expand Down
2 changes: 1 addition & 1 deletion api/v1beta1/ociclustertemplate_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func (src *OCIClusterTemplate) ConvertTo(dstRaw conversion.Hub) error {
dst.Spec.Template.Spec.NetworkSpec.Vcn.RouteTable.Skip = restored.Spec.Template.Spec.NetworkSpec.Vcn.RouteTable.Skip
dst.Spec.Template.Spec.AvailabilityDomains = restored.Spec.Template.Spec.AvailabilityDomains
dst.Spec.Template.Spec.NetworkSpec.APIServerLB.LoadBalancerType = restored.Spec.Template.Spec.NetworkSpec.APIServerLB.LoadBalancerType
dst.Spec.Template.Spec.ClientHostUrls = restored.Spec.Template.Spec.ClientHostUrls
dst.Spec.Template.Spec.ClientOverrides = restored.Spec.Template.Spec.ClientOverrides
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion api/v1beta1/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 16 additions & 16 deletions api/v1beta2/ocicluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,11 @@ type OCIClusterSpec struct {
// +optional
AvailabilityDomains map[string]OCIAvailabilityDomain `json:"availabilityDomains,omitempty"`

// HostUrls allows the default client SDK URLs to be changed.
// ClientOverrides allows the default client SDK URLs to be changed.
//
// +optional
// +nullable
ClientHostUrls *ClusterClientHostUrls `json:"clientHostUrls,omitempty"`
ClientOverrides *ClientOverrides `json:"clientOverrides,omitempty"`
}

// OCIClusterStatus defines the observed state of OCICluster
Expand Down Expand Up @@ -126,44 +126,44 @@ type OCIAvailabilityDomain struct {
FaultDomains []string `json:"faultDomains,omitempty"`
}

// ClusterClientHostUrls contains information about client host url overrides.
type ClusterClientHostUrls struct {
// ClientOverrides contains information about client host url overrides.
type ClientOverrides struct {

// ComputeClientHost allows the default compute SDK client URL to be changed.
// ComputeClientUrl allows the default compute SDK client URL to be changed.
//
// +optional
// +nullable
ComputeClientHost *string `json:"computeClientHost,omitempty"`
ComputeClientUrl *string `json:"computeClientUrl,omitempty"`

// ComputeManagementClientHost allows the default compute management SDK client URL to be changed.
// ComputeManagementClientUrl allows the default compute management SDK client URL to be changed.
//
// +optional
// +nullable
ComputeManagementClientHost *string `json:"computeManagementClientHost,omitempty"`
ComputeManagementClientUrl *string `json:"computeManagementClientUrl,omitempty"`

// VCNClientHost allows the default vcn SDK client URL to be changed.
// VCNClientUrl allows the default vcn SDK client URL to be changed.
//
// +optional
// +nullable
VCNClientHost *string `json:"vCNClientHost,omitempty"`
VCNClientUrl *string `json:"vCNClientUrl,omitempty"`

// LoadBalancerClientHost allows the default load balancer SDK client URL to be changed.
// LoadBalancerClientUrl allows the default load balancer SDK client URL to be changed.
//
// +optional
// +nullable
LoadBalancerClientHost *string `json:"loadBalancerClientHost,omitempty"`
LoadBalancerClientUrl *string `json:"loadBalancerClientUrl,omitempty"`

// IdentityClientHost allows the default identity SDK client URL to be changed.
// IdentityClientUrl allows the default identity SDK client URL to be changed.
//
// +optional
// +nullable
IdentityClientHost *string `json:"identityClientHost,omitempty"`
IdentityClientUrl *string `json:"identityClientUrl,omitempty"`

// ContainerEngineClientHost allows the default container engine SDK client URL to be changed.
// ContainerEngineClientUrl allows the default container engine SDK client URL to be changed.
//
// +optional
// +nullable
ContainerEngineClientHost *string `json:"containerEngineClientHost,omitempty"`
ContainerEngineClientUrl *string `json:"containerEngineClientUrl,omitempty"`
}

// GetConditions returns the list of conditions for an OCICluster API object.
Expand Down
38 changes: 19 additions & 19 deletions api/v1beta2/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 23 additions & 17 deletions cloud/scope/clients.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,23 +59,29 @@ type ClientProvider struct {
ociClients map[string]OCIClients
ociClientsLock *sync.RWMutex
ociAuthConfigProvider common.ConfigurationProvider
ociClientHostUrls *v1beta2.ClusterClientHostUrls
ociClientOverrides *v1beta2.ClientOverrides
}

// TODO: add docs
type ClientProviderParams struct {
OciAuthConfigProvider common.ConfigurationProvider
ClientOverrides *v1beta2.ClientOverrides
}

// NewClientProvider builds the ClientProvider with a client for the given region
func NewClientProvider(ociAuthConfigProvider common.ConfigurationProvider, clientHostUrlOverrides *v1beta2.ClusterClientHostUrls) (*ClientProvider, error) {
func NewClientProvider(params ClientProviderParams) (*ClientProvider, error) {
log := klogr.New()

if ociAuthConfigProvider == nil {
if params.OciAuthConfigProvider == nil {
return nil, errors.New("ConfigurationProvider can not be nil")
}

provider := ClientProvider{
Logger: &log,
ociAuthConfigProvider: ociAuthConfigProvider,
ociAuthConfigProvider: params.OciAuthConfigProvider,
ociClients: map[string]OCIClients{},
ociClientsLock: new(sync.RWMutex),
ociClientHostUrls: clientHostUrlOverrides,
ociClientOverrides: params.ClientOverrides,
}

return &provider, nil
Expand Down Expand Up @@ -173,8 +179,8 @@ func (c *ClientProvider) createVncClient(region string, ociAuthConfigProvider co
return nil, err
}
vcnClient.SetRegion(region)
if c.ociClientHostUrls != nil && c.ociClientHostUrls.VCNClientHost != nil {
vcnClient.Host = *c.ociClientHostUrls.VCNClientHost
if c.ociClientOverrides != nil && c.ociClientOverrides.VCNClientUrl != nil {
vcnClient.Host = *c.ociClientOverrides.VCNClientUrl
}
vcnClient.Interceptor = setVersionHeader()

Expand All @@ -200,8 +206,8 @@ func (c *ClientProvider) createLBClient(region string, ociAuthConfigProvider com
return nil, err
}
lbClient.SetRegion(region)
if c.ociClientHostUrls != nil && c.ociClientHostUrls.LoadBalancerClientHost != nil {
lbClient.Host = *c.ociClientHostUrls.LoadBalancerClientHost
if c.ociClientOverrides != nil && c.ociClientOverrides.LoadBalancerClientUrl != nil {
lbClient.Host = *c.ociClientOverrides.LoadBalancerClientUrl
}
lbClient.Interceptor = setVersionHeader()

Expand All @@ -216,8 +222,8 @@ func (c *ClientProvider) createIdentityClient(region string, ociAuthConfigProvid
}
identityClient.SetRegion(region)

if c.ociClientHostUrls != nil && c.ociClientHostUrls.IdentityClientHost != nil {
identityClient.Host = *c.ociClientHostUrls.IdentityClientHost
if c.ociClientOverrides != nil && c.ociClientOverrides.IdentityClientUrl != nil {
identityClient.Host = *c.ociClientOverrides.IdentityClientUrl
}
identityClient.Interceptor = setVersionHeader()

Expand All @@ -232,8 +238,8 @@ func (c *ClientProvider) createComputeClient(region string, ociAuthConfigProvide
}
computeClient.SetRegion(region)
//https://dyn.slack.com/archives/C7MS7QWC8/p1675719244230459?thread_ts=1675460644.801049&cid=C7MS7QWC8
if c.ociClientHostUrls != nil && c.ociClientHostUrls.ComputeClientHost != nil {
computeClient.Host = *c.ociClientHostUrls.ComputeClientHost
if c.ociClientOverrides != nil && c.ociClientOverrides.ComputeClientUrl != nil {
computeClient.Host = *c.ociClientOverrides.ComputeClientUrl
}
computeClient.Interceptor = setVersionHeader()

Expand All @@ -247,8 +253,8 @@ func (c *ClientProvider) createComputeManagementClient(region string, ociAuthCon
return nil, err
}
computeManagementClient.SetRegion(region)
if c.ociClientHostUrls != nil && c.ociClientHostUrls.ComputeManagementClientHost != nil {
computeManagementClient.Host = *c.ociClientHostUrls.ComputeManagementClientHost
if c.ociClientOverrides != nil && c.ociClientOverrides.ComputeManagementClientUrl != nil {
computeManagementClient.Host = *c.ociClientOverrides.ComputeManagementClientUrl
}
computeManagementClient.Interceptor = setVersionHeader()

Expand All @@ -262,8 +268,8 @@ func (c *ClientProvider) createContainerEngineClient(region string, ociAuthConfi
return nil, err
}
containerEngineClient.SetRegion(region)
if c.ociClientHostUrls != nil && c.ociClientHostUrls.ContainerEngineClientHost != nil {
containerEngineClient.Host = *c.ociClientHostUrls.ContainerEngineClientHost
if c.ociClientOverrides != nil && c.ociClientOverrides.ContainerEngineClientUrl != nil {
containerEngineClient.Host = *c.ociClientOverrides.ContainerEngineClientUrl
}
containerEngineClient.Interceptor = setVersionHeader()

Expand Down
Loading

0 comments on commit 18b4105

Please sign in to comment.