diff --git a/.gitignore b/.gitignore
index c9b29b6b..decb854e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,6 @@ vendor/
# Files used by the taskfile.
.task
+# JetBrains IDEs
+.idea/
+.run/
\ No newline at end of file
diff --git a/cmd/milo/controller-manager/controllermanager.go b/cmd/milo/controller-manager/controllermanager.go
index fd689df7..b5fdbbba 100644
--- a/cmd/milo/controller-manager/controllermanager.go
+++ b/cmd/milo/controller-manager/controllermanager.go
@@ -288,6 +288,9 @@ func NewOptions() (*Options, error) {
KubeControllerManagerOptions: baseOpts,
InfraCluster: &infracluster.Options{
KubeconfigFile: baseOpts.Generic.ClientConnection.Kubeconfig,
+ LeaderElection: &infracluster.LeaderElectionConfig{
+ CandidateNamespace: "datum-system",
+ },
},
ControlPlane: &controlplane.Options{},
}
@@ -669,7 +672,7 @@ func Run(ctx context.Context, c *config.CompletedConfig, opts *Options) error {
// Start lease candidate controller for coordinated leader election
leaseCandidate, waitForSync, err := leaderelection.NewCandidate(
c.Client,
- "datum-system",
+ opts.InfraCluster.LeaderElection.CandidateNamespace,
id,
"datum-controller-manager",
binaryVersion.FinalizeVersion(),
diff --git a/config/controller-manager/base/deployment.yaml b/config/controller-manager/base/deployment.yaml
index bf919b7b..18e801bb 100644
--- a/config/controller-manager/base/deployment.yaml
+++ b/config/controller-manager/base/deployment.yaml
@@ -31,6 +31,7 @@ spec:
- --leader-elect-renew-deadline=10s
- --leader-elect-retry-period=2s
- --leader-elect-resource-namespace=$(LEADER_ELECT_RESOURCE_NAMESPACE)
+ - --leader-election-candidate-namespace=$(LEADER_ELECTION_CANDIDATE_NAMESPACE)
- --authentication-skip-lookup
- --client-ca-file=$(CLIENT_CA_FILE)
- --secure-port=6443
@@ -45,6 +46,8 @@ spec:
env:
- name: LEADER_ELECT_RESOURCE_NAMESPACE
value: milo-system
+ - name: LEADER_ELECTION_CANDIDATE_NAMESPACE
+ value: datum-system
# Default to INFO level logging
- name: LOG_LEVEL
value: "4"
diff --git a/config/crd/bases/iam/iam.miloapis.com_userpreferences.yaml b/config/crd/bases/iam/iam.miloapis.com_userpreferences.yaml
index e9338953..36fcf880 100644
--- a/config/crd/bases/iam/iam.miloapis.com_userpreferences.yaml
+++ b/config/crd/bases/iam/iam.miloapis.com_userpreferences.yaml
@@ -52,6 +52,9 @@ spec:
spec:
description: UserPreferenceSpec defines the desired state of UserPreference
properties:
+ displayName:
+ description: DisplayName is the user's preferred display name.
+ type: string
theme:
default: system
description: The user's theme preference.
@@ -60,6 +63,12 @@ spec:
- dark
- system
type: string
+ timeZone:
+ description: The user's time zone preference.
+ type: string
+ title:
+ description: Title is the user's title or role.
+ type: string
userRef:
description: Reference to the user these preferences belong to.
properties:
diff --git a/config/samples/iam/v1alpha1/userpreference.yaml b/config/samples/iam/v1alpha1/userpreference.yaml
index f1452b5f..5a45e2b3 100644
--- a/config/samples/iam/v1alpha1/userpreference.yaml
+++ b/config/samples/iam/v1alpha1/userpreference.yaml
@@ -5,4 +5,6 @@ metadata:
spec:
userRef:
name: user-sample
- theme: "dark"
\ No newline at end of file
+ theme: "dark"
+ displayName: my display name
+ title: my title
\ No newline at end of file
diff --git a/docs/api/iam.md b/docs/api/iam.md
index 02560446..549fa39d 100644
--- a/docs/api/iam.md
+++ b/docs/api/iam.md
@@ -2597,6 +2597,27 @@ UserPreferenceSpec defines the desired state of UserPreference
Default: system