Skip to content

Commit

Permalink
fix(platform): provider platform client nil
Browse files Browse the repository at this point in the history
  • Loading branch information
wl-chen committed Mar 29, 2022
1 parent 70aab77 commit 9dd79aa
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
9 changes: 9 additions & 0 deletions cmd/tke-installer/app/installer/upgrader.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ import (

// import platform schema
_ "tkestack.io/tke/api/platform/install"
baremetalcluster "tkestack.io/tke/pkg/platform/provider/baremetal/cluster"
)

const (
Expand Down Expand Up @@ -347,6 +348,14 @@ func (t *TKE) prepareForUpgrade(ctx context.Context) error {
if err != nil {
return err
}

baremetalcluster.ReRegisterProviderForUpgrade(&t.platformClient)
clusterProvider, err := clusterprovider.GetProvider("Baremetal")
if err != nil {
panic(err)
}
t.clusterProvider = clusterProvider

t.Cluster, err = clusterprovider.GetV1ClusterByName(ctx, t.platformClient, "global", clusterprovider.AdminUsername)
if err != nil {
return err
Expand Down
11 changes: 11 additions & 0 deletions pkg/platform/provider/baremetal/cluster/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,17 @@ func RegisterProvider() {
clusterprovider.Register(p.Name(), p)
}

// upgrade global cluster, baremetal provider dont have platformClient, so ReRegisterProviderForUpgrade add platformClient
func ReRegisterProviderForUpgrade(platformClient *platformv1client.PlatformV1Interface) {
p, err := NewProvider()
if err != nil {
log.Errorf("init cluster provider error: %s", err)
return
}
p.PlatformClient = *platformClient
clusterprovider.ReRegisterForUpgrade(p.Name(), p)
}

type Provider struct {
*clusterprovider.DelegateProvider

Expand Down
9 changes: 9 additions & 0 deletions pkg/platform/provider/cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,15 @@ func Register(name string, provider Provider) {
providers[name] = provider
}

func ReRegisterForUpgrade(name string, provider Provider) {
providersMu.Lock()
defer providersMu.Unlock()
if provider == nil {
panic("cluster: Register provider is nil")
}
providers[name] = provider
}

// RegisterHandler register all provider's hanlder.
func RegisterHandler(mux *mux.PathRecorderMux) {
for _, p := range providers {
Expand Down

0 comments on commit 9dd79aa

Please sign in to comment.