Skip to content

Commit

Permalink
Add domains to tenant config map (#74)
Browse files Browse the repository at this point in the history
* Add domains to tenant config map

* Fixed flags initialization

* fixes
  • Loading branch information
fraliv13 committed Nov 13, 2023
1 parent 80665b4 commit b2ad6a4
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 16 deletions.
4 changes: 2 additions & 2 deletions cmd/configuration-domain-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,15 @@ func main() {

// InitFlags is for explicitly initializing the flags.
func InitFlags() {
klog.InitFlags(nil)

flag.Set("alsologtostderr", "true")
if home := homedir.HomeDir(); home != "" {
flag.StringVar(&kubeConfigPath, "kubeConfigPath", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")
} else {
flag.StringVar(&kubeConfigPath, "kubeConfigPath", "", "absolute path to the kubeconfig file")
}

klog.InitFlags(nil)

flag.Parse()
}

Expand Down
4 changes: 2 additions & 2 deletions cmd/platform-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ func main() {

// InitFlags is for explicitly initializing the flags.
func InitFlags() {
klog.InitFlags(nil)

flag.Set("alsologtostderr", "true")
if home := homedir.HomeDir(); home != "" {
flag.StringVar(&kubeConfigPath, "kubeConfigPath", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")
} else {
flag.StringVar(&kubeConfigPath, "kubeConfigPath", "", "absolute path to the kubeconfig file")
}

klog.InitFlags(nil)

flag.Parse()
}

Expand Down
31 changes: 19 additions & 12 deletions internal/controllers/platform/platform_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ func (c *PlatformController) syncHandler(key string) error {
}
domains = domains[:n]

platformCfgMap := c.genPlatformTenantsCfgMap(platform, tenants)
platformCfgMap := c.genPlatformTenantsCfgMap(platform, tenants, domains)
err = c.syncConfigMap(platformCfgMap, platform)

// If an error occurs we'll requeue the item so we can
Expand Down Expand Up @@ -459,12 +459,16 @@ func (c *PlatformController) enqueuePlatform(platform *platformv1.Platform) {
c.workqueue.Add(platform.Name)
}

func (c *PlatformController) genPlatformTenantsCfgMap(platform *platformv1.Platform, tenants []*platformv1.Tenant) *corev1.ConfigMap {
func (c *PlatformController) genPlatformTenantsCfgMap(platform *platformv1.Platform, tenants []*platformv1.Tenant, domains []*platformv1.Domain) *corev1.ConfigMap {
cfgMapName := fmt.Sprintf("%s-tenants", platform.Name)
tenantData := map[string]string{}
for _, tenant := range tenants {
tenantData[fmt.Sprintf("MultiTenancy__Tenants__%s__TenantId", tenant.Name)] = tenant.Spec.Id
tenantData[fmt.Sprintf("MultiTenancy__Tenants__%s__Enabled", tenant.Name)] = strconv.FormatBool(tenant.Spec.Enabled)
for _, domain := range domains {
tenantHasAccessToDomain := tenantHasAccessToDomain(tenant, domain.Name)
tenantData[fmt.Sprintf("MultiTenancy__Tenants__%s__Domains_%s_Enabled", tenant.Name, domain.Name)] = strconv.FormatBool(tenantHasAccessToDomain)
}
}

return &corev1.ConfigMap{
Expand All @@ -488,16 +492,8 @@ func (c *PlatformController) genDomainTenantsCfgMap(platform *platformv1.Platfor
cfgMapName := fmt.Sprintf("%s-tenants", domain.Name)
tenantData := map[string]string{}
for _, tenant := range tenants {
tenantHasAccessToDomain := false
if tenant.Spec.Enabled {
for _, d := range tenant.Spec.DomainRefs {
if d == domain.Name {
tenantHasAccessToDomain = true
break
}
}
}
tenantData[fmt.Sprintf("MultiTenancy__Tenants__%s__Enabled", tenant.Name)] = strconv.FormatBool(tenant.Spec.Enabled && tenantHasAccessToDomain)
tenantEnabled := tenant.Spec.Enabled && tenantHasAccessToDomain(tenant, domain.Name)
tenantData[fmt.Sprintf("MultiTenancy__Tenants__%s__Enabled", tenant.Name)] = strconv.FormatBool(tenant.Spec.Enabled && tenantEnabled)
}

return &corev1.ConfigMap{
Expand All @@ -516,3 +512,14 @@ func (c *PlatformController) genDomainTenantsCfgMap(platform *platformv1.Platfor
Immutable: func(b bool) *bool { return &b }(true),
}
}

func tenantHasAccessToDomain(tenant *platformv1.Tenant, domainName string) bool {

for _, d := range tenant.Spec.DomainRefs {
if d == domainName {
return true
}
}

return false
}

0 comments on commit b2ad6a4

Please sign in to comment.