func syncTenantAndNamespace(kubeClient client.Interface, namespace *api.Namespace) error { if namespace.Tenant == "" { namespace.Tenant = api.TenantDefault } te, err := kubeClient.Tenants().Get(namespace.Tenant) if err != nil { return err } for i, n := range te.Spec.Namespaces { if n.Name == namespace.Name { te.Spec.Namespaces = append(te.Spec.Namespaces[:i], te.Spec.Namespaces[i+1:]...) break } } te.Spec.Namespaces = append(te.Spec.Namespaces, *namespace) if _, err = kubeClient.Namespaces().Update(namespace); err != nil { return err } if _, err = kubeClient.Tenants().Update(te); err != nil { return err } return nil }