Skip to content

Commit 1b4e332

Browse files
Rename clusterConfig.security.config to clusterConfig.security.settings; Fix admin DN; Fix integration tests
1 parent ad31980 commit 1b4e332

15 files changed

Lines changed: 44 additions & 50 deletions

File tree

deploy/helm/opensearch-operator/crds/crds.yaml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ spec:
3232
default:
3333
keystore: []
3434
security:
35-
config:
35+
enabled: true
36+
managingRoleGroup: security-config
37+
settings:
3638
actionGroups:
3739
content:
3840
value:
@@ -105,8 +107,6 @@ spec:
105107
config_version: 2
106108
type: tenants
107109
managedBy: API
108-
enabled: true
109-
managingRoleGroup: security-config
110110
tls:
111111
internalSecretClass: tls
112112
serverSecretClass: tls
@@ -148,7 +148,9 @@ spec:
148148
type: array
149149
security:
150150
default:
151-
config:
151+
enabled: true
152+
managingRoleGroup: security-config
153+
settings:
152154
actionGroups:
153155
content:
154156
value:
@@ -221,11 +223,17 @@ spec:
221223
config_version: 2
222224
type: tenants
223225
managedBy: API
224-
enabled: true
225-
managingRoleGroup: security-config
226226
description: TODO Add description
227227
properties:
228-
config:
228+
enabled:
229+
default: true
230+
type: boolean
231+
managingRoleGroup:
232+
default: security-config
233+
maxLength: 16
234+
minLength: 1
235+
type: string
236+
settings:
229237
default:
230238
actionGroups:
231239
content:
@@ -976,14 +984,6 @@ spec:
976984
- managedBy
977985
type: object
978986
type: object
979-
enabled:
980-
default: true
981-
type: boolean
982-
managingRoleGroup:
983-
default: security-config
984-
maxLength: 16
985-
minLength: 1
986-
type: string
987987
type: object
988988
tls:
989989
default:

rust/operator-binary/src/controller/build/node_config.rs

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -251,21 +251,9 @@ impl NodeConfig {
251251
config
252252
}
253253

254-
pub fn admin_dn(&self) -> Option<String> {
255-
let security = self.cluster.security.as_ref()?;
256-
257-
security
258-
.managing_role_group
259-
.as_ref()
260-
.map(|managing_role_group| {
261-
format!(
262-
"CN={container}.{pod}-0.{namespace}.{cluster_domain_name}",
263-
container = "update-security-config",
264-
pod = managing_role_group,
265-
namespace = self.cluster.namespace,
266-
cluster_domain_name = self.cluster_domain_name
267-
)
268-
})
254+
pub fn admin_dn(&self) -> String {
255+
// The common name field is limited to 64 characters, see RFC 5280.
256+
format!("CN=update-security-config.{}", self.cluster.uid)
269257
}
270258

271259
pub fn tls_config(&self) -> serde_json::Map<String, Value> {

rust/operator-binary/src/controller/build/role_group_builder.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -629,10 +629,11 @@ cp --archive config/opensearch.keystore {OPENSEARCH_INITIALIZED_KEYSTORE_DIRECTO
629629
return None;
630630
}
631631

632-
let admin_dn = self.node_config.admin_dn().expect("");
633-
634632
let env_vars = EnvVarSet::new()
635-
.with_value(&EnvVarName::from_str_unsafe("ADMIN_DN"), admin_dn)
633+
.with_value(
634+
&EnvVarName::from_str_unsafe("ADMIN_DN"),
635+
self.node_config.admin_dn(),
636+
)
636637
.with_field_path(
637638
&EnvVarName::from_str_unsafe("POD_NAME"),
638639
FieldPathEnvVar::Name,

rust/operator-binary/src/controller/preprocess.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ type Result<T, E = Error> = std::result::Result<T, E>;
2626
pub fn preprocess(mut cluster: v1alpha1::OpenSearchCluster) -> Result<v1alpha1::OpenSearchCluster> {
2727
let security = &cluster.spec.cluster_config.security;
2828
if security.enabled
29-
&& !security.config.is_only_managed_by_api()
29+
&& !security.settings.is_only_managed_by_api()
3030
&& !cluster
3131
.spec
3232
.nodes

rust/operator-binary/src/controller/validate.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,12 @@ fn validate_security_config(
283283
spec: &v1alpha1::OpenSearchClusterSpec,
284284
) -> Result<Option<ValidatedSecurity>> {
285285
let security = if spec.cluster_config.security.enabled {
286-
let managing_role_group = if !spec.cluster_config.security.config.is_only_managed_by_api() {
286+
let managing_role_group = if !spec
287+
.cluster_config
288+
.security
289+
.settings
290+
.is_only_managed_by_api()
291+
{
287292
let managing_role_group = spec.cluster_config.security.managing_role_group.clone();
288293

289294
ensure!(
@@ -308,7 +313,7 @@ fn validate_security_config(
308313

309314
Some(ValidatedSecurity {
310315
managing_role_group,
311-
config: spec.cluster_config.security.config.clone(),
316+
config: spec.cluster_config.security.settings.clone(),
312317
tls: spec.cluster_config.tls.clone(),
313318
})
314319
} else {
@@ -891,7 +896,7 @@ mod tests {
891896
.spec
892897
.cluster_config
893898
.security
894-
.config
899+
.settings
895900
.config
896901
.managed_by = v1alpha1::SecurityConfigFileTypeManagedBy::Operator;
897902
cluster.spec.cluster_config.tls.server_secret_class = None;
@@ -946,7 +951,7 @@ mod tests {
946951
security: v1alpha1::Security {
947952
enabled: true,
948953
managing_role_group: RoleGroupName::from_str_unsafe("default"),
949-
config: v1alpha1::SecurityConfig {
954+
settings: v1alpha1::SecurityConfig {
950955
config: v1alpha1::SecurityConfigFileType {
951956
managed_by: v1alpha1::SecurityConfigFileTypeManagedBy::Operator,
952957
content: v1alpha1::SecurityConfigFileTypeContent::ValueFrom(

rust/operator-binary/src/crd/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ pub mod versioned {
140140
pub managing_role_group: RoleGroupName,
141141

142142
#[serde(default)]
143-
pub config: SecurityConfig,
143+
pub settings: SecurityConfig,
144144
}
145145

146146
#[derive(Clone, Debug, Deserialize, Eq, JsonSchema, PartialEq, Serialize)]
@@ -511,7 +511,7 @@ impl Default for v1alpha1::Security {
511511
Self {
512512
enabled: security_config_enabled_default(),
513513
managing_role_group: security_config_managing_role_group(),
514-
config: v1alpha1::SecurityConfig::default(),
514+
settings: v1alpha1::SecurityConfig::default(),
515515
}
516516
}
517517
}

tests/templates/kuttl/backup-restore/21-install-opensearch-1.yaml.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ spec:
2121
name: s3-credentials
2222
key: SECRET_KEY
2323
security:
24-
config:
24+
settings:
2525
config:
2626
managedBy: API
2727
content:

tests/templates/kuttl/backup-restore/51-install-opensearch-2.yaml.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ spec:
2121
name: s3-credentials
2222
key: SECRET_KEY
2323
security:
24-
config:
24+
settings:
2525
config:
2626
managedBy: API
2727
content:

tests/templates/kuttl/ldap/21-install-opensearch.yaml.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ spec:
1212
pullPolicy: IfNotPresent
1313
clusterConfig:
1414
security:
15-
config:
15+
settings:
1616
config:
1717
managedBy: operator
1818
content:

tests/templates/kuttl/metrics/20-install-opensearch.yaml.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ spec:
1212
pullPolicy: IfNotPresent
1313
clusterConfig:
1414
security:
15-
config:
15+
settings:
1616
config:
1717
managedBy: API
1818
content:

0 commit comments

Comments
 (0)