44 "context"
55 "fmt"
66 "github.com/rancher/rancher/pkg/controllers/management/drivers"
7+ "reflect"
78 "strings"
89 "sync"
910
@@ -178,7 +179,7 @@ func (m *Lifecycle) download(obj *v3.NodeDriver) (*v3.NodeDriver, error) {
178179
179180func (m * Lifecycle ) createCredSchema (obj * v3.NodeDriver , credFields map [string ]v3.Field ) (* v3.NodeDriver , error ) {
180181 name := credentialConfigSchemaName (obj .Spec .DisplayName )
181- _ , err := m .schemaLister .Get ("" , name )
182+ credSchema , err := m .schemaLister .Get ("" , name )
182183 if err != nil {
183184 if errors .IsNotFound (err ) {
184185 credentialSchema := & v3.DynamicSchema {
@@ -199,6 +200,13 @@ func (m *Lifecycle) createCredSchema(obj *v3.NodeDriver, credFields map[string]v
199200 return obj , err
200201 }
201202 return obj , err
203+ } else if ! reflect .DeepEqual (credSchema .Spec .ResourceFields , credFields ) {
204+ toUpdate := credSchema .DeepCopy ()
205+ toUpdate .Spec .ResourceFields = credFields
206+ _ , err := m .schemaClient .Update (toUpdate )
207+ if err != nil {
208+ return obj , err
209+ }
202210 }
203211 return obj , nil
204212}
@@ -297,7 +305,7 @@ func (m *Lifecycle) createOrUpdateNodeForEmbeddedTypeWithParents(embeddedType, f
297305 }
298306 if _ , ok := nodeSchema .Spec .ResourceFields [fieldName ]; ! ok {
299307 // if embedded we add the type to schema
300- logrus .Infof ("uploading %s to node schema" , fieldName )
308+ logrus .Infof ("uploading %s to %s schema" , fieldName , schemaID )
301309 nodeSchema .Spec .ResourceFields [fieldName ] = v3.Field {
302310 Create : true ,
303311 Nullable : true ,
@@ -309,7 +317,7 @@ func (m *Lifecycle) createOrUpdateNodeForEmbeddedTypeWithParents(embeddedType, f
309317 } else {
310318 // if not we delete it from schema
311319 if _ , ok := nodeSchema .Spec .ResourceFields [fieldName ]; ok {
312- logrus .Infof ("deleting %s from node schema" , fieldName )
320+ logrus .Infof ("deleting %s from %s schema" , fieldName , schemaID )
313321 delete (nodeSchema .Spec .ResourceFields , fieldName )
314322 shouldUpdate = true
315323 }
0 commit comments