This commit is contained in:
92
pkg/controller/configmap/controller.go
Normal file
92
pkg/controller/configmap/controller.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package configmap
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
zitadelv1alpha1 "gitea.corredorconect.com/software-engineering/zitadel-k8s-operator/api/v1alpha1"
|
||||
builder "gitea.corredorconect.com/software-engineering/zitadel-k8s-operator/pkg/builder"
|
||||
"gitea.corredorconect.com/software-engineering/zitadel-k8s-operator/pkg/deployment"
|
||||
systemapiaccount "gitea.corredorconect.com/software-engineering/zitadel-k8s-operator/pkg/systemapi"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
cloudnativepgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1"
|
||||
)
|
||||
|
||||
type ConfigMapReconciler struct {
|
||||
client.Client
|
||||
Builder *builder.Builder
|
||||
}
|
||||
|
||||
func NewConfigMapReconciler(client client.Client, builder *builder.Builder) *ConfigMapReconciler {
|
||||
return &ConfigMapReconciler{
|
||||
Client: client,
|
||||
Builder: builder,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *ConfigMapReconciler) ReconcileZitadelConfiguration(ctx context.Context, key types.NamespacedName, zitadel *zitadelv1alpha1.Cluster, postgres *cloudnativepgv1.Cluster, base64key string) error {
|
||||
config := make(map[string]string)
|
||||
config["zitadel-config-yaml"] =
|
||||
fmt.Sprintf(`Database:
|
||||
Postgres:
|
||||
Host: %s
|
||||
Port: 5432
|
||||
Database: zitadel
|
||||
MaxOpenConns: 20
|
||||
MaxIdleConns: 10
|
||||
MaxConnLifetime: 30m
|
||||
MaxConnIdleTime: 5m
|
||||
User:
|
||||
Username: zitadel
|
||||
SSL:
|
||||
Mode: disable
|
||||
Admin:
|
||||
Username: postgres
|
||||
SSL:
|
||||
Mode: disable
|
||||
ExternalDomain: %s
|
||||
ExternalPort: %d
|
||||
ExternalSecure: %t
|
||||
TLS:
|
||||
Enabled: false
|
||||
Projections:
|
||||
Customizations:
|
||||
smtp_configs:
|
||||
BulkLimit: 2000
|
||||
FirstInstance:
|
||||
Skip: true
|
||||
SystemAPIUsers:
|
||||
- %s:
|
||||
KeyData: %s
|
||||
Memberships:
|
||||
- MemberType: System
|
||||
Roles:
|
||||
- "SYSTEM_OWNER"
|
||||
- "IAM_OWNER"
|
||||
- "ORG_OWNER"
|
||||
`, deployment.ServiceFQDNWithService(postgres.ObjectMeta, postgres.Name+"-rw"), zitadel.Spec.Host, zitadel.Spec.ExternalPort, zitadel.Spec.ExternalSecure, systemapiaccount.OwnerName, base64key)
|
||||
|
||||
opts := builder.ConfigMapOpts{
|
||||
Zitadel: zitadel,
|
||||
Key: key,
|
||||
Immutable: false,
|
||||
Data: config,
|
||||
}
|
||||
configmap, err := r.Builder.BuildConfigMap(opts, zitadel)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error building replication password ConfigMap: %v", err)
|
||||
}
|
||||
var existingConfigMap corev1.ConfigMap
|
||||
if err := r.Get(ctx, key, &existingConfigMap); err == nil {
|
||||
patch := client.MergeFrom(existingConfigMap.DeepCopy())
|
||||
existingConfigMap.Data = configmap.Data
|
||||
return r.Patch(ctx, &existingConfigMap, patch)
|
||||
}
|
||||
if err := r.Create(ctx, configmap); err != nil {
|
||||
return fmt.Errorf("error creating replication password ConfigMap: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user