未验证 提交 0493a352 编写于 作者: K KubeSphere CI Bot 提交者: GitHub

Merge pull request #2225 from wansir/controller-bug

fix: workspace label missing after update
...@@ -438,18 +438,18 @@ func (r *Controller) initRoles(workspace *tenantv1alpha2.WorkspaceTemplate) erro ...@@ -438,18 +438,18 @@ func (r *Controller) initRoles(workspace *tenantv1alpha2.WorkspaceTemplate) erro
klog.Error(err) klog.Error(err)
return err return err
} }
for _, roleBase := range roleBases { for _, roleBase := range roleBases {
var role iamv1alpha2.WorkspaceRole var role iamv1alpha2.WorkspaceRole
if err = yaml.NewYAMLOrJSONDecoder(bytes.NewBuffer(roleBase.Role.Raw), 1024).Decode(&role); err == nil && role.Kind == iamv1alpha2.ResourceKindWorkspaceRole { if err = yaml.NewYAMLOrJSONDecoder(bytes.NewBuffer(roleBase.Role.Raw), 1024).Decode(&role); err == nil && role.Kind == iamv1alpha2.ResourceKindWorkspaceRole {
old, err := r.workspaceRoleLister.Get(fmt.Sprintf("%s-%s", workspace.Name, role.Name)) roleName := fmt.Sprintf("%s-%s", workspace.Name, role.Name)
if err != nil {
if errors.IsNotFound(err) {
role.Name = fmt.Sprintf("%s-%s", workspace.Name, role.Name)
if role.Labels == nil { if role.Labels == nil {
role.Labels = make(map[string]string, 0) role.Labels = make(map[string]string, 0)
} }
// make sure workspace label always exist
role.Labels[tenantv1alpha1.WorkspaceLabel] = workspace.Name role.Labels[tenantv1alpha1.WorkspaceLabel] = workspace.Name
old, err := r.workspaceRoleLister.Get(roleName)
if err != nil {
if errors.IsNotFound(err) {
_, err = r.ksClient.IamV1alpha2().WorkspaceRoles().Create(&role) _, err = r.ksClient.IamV1alpha2().WorkspaceRoles().Create(&role)
if err != nil { if err != nil {
klog.Error(err) klog.Error(err)
...@@ -458,7 +458,6 @@ func (r *Controller) initRoles(workspace *tenantv1alpha2.WorkspaceTemplate) erro ...@@ -458,7 +458,6 @@ func (r *Controller) initRoles(workspace *tenantv1alpha2.WorkspaceTemplate) erro
continue continue
} }
} }
if !reflect.DeepEqual(role.Labels, old.Labels) || if !reflect.DeepEqual(role.Labels, old.Labels) ||
!reflect.DeepEqual(role.Annotations, old.Annotations) || !reflect.DeepEqual(role.Annotations, old.Annotations) ||
!reflect.DeepEqual(role.Rules, old.Rules) { !reflect.DeepEqual(role.Rules, old.Rules) {
...@@ -466,7 +465,6 @@ func (r *Controller) initRoles(workspace *tenantv1alpha2.WorkspaceTemplate) erro ...@@ -466,7 +465,6 @@ func (r *Controller) initRoles(workspace *tenantv1alpha2.WorkspaceTemplate) erro
updated.Labels = role.Labels updated.Labels = role.Labels
updated.Annotations = role.Annotations updated.Annotations = role.Annotations
updated.Rules = role.Rules updated.Rules = role.Rules
_, err = r.ksClient.IamV1alpha2().WorkspaceRoles().Update(updated) _, err = r.ksClient.IamV1alpha2().WorkspaceRoles().Update(updated)
if err != nil { if err != nil {
klog.Error(err) klog.Error(err)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册