Skip to content

Commit a61a48d

Browse files
authored
Merge branch 'main' into test/crd-versioning-snapshot
2 parents 18068e8 + 8b0172d commit a61a48d

File tree

5 files changed

+34
-3
lines changed

5 files changed

+34
-3
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/stackable-operator/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
## [0.78.0] - 2024-09-30
8+
9+
### Added
10+
11+
- Add Kerberos AuthenticationProvider ([#880]).
12+
13+
[#880]: https://github.com/stackabletech/operator-rs/pull/880
14+
715
## [0.77.1] - 2024-09-27
816

917
### Fixed

crates/stackable-operator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "stackable-operator"
33
description = "Stackable Operator Framework"
4-
version = "0.77.1"
4+
version = "0.78.0"
55
authors.workspace = true
66
license.workspace = true
77
edition.workspace = true
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use schemars::JsonSchema;
2+
use serde::{Deserialize, Serialize};
3+
4+
#[derive(
5+
Clone, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize,
6+
)]
7+
#[serde(rename_all = "camelCase")]
8+
pub struct AuthenticationProvider {
9+
/// Mandatory SecretClass used to obtain keytabs.
10+
pub kerberos_secret_class: String,
11+
}

crates/stackable-operator/src/commons/authentication/mod.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use strum::Display;
66

77
use crate::client::Client;
88

9+
pub mod kerberos;
910
pub mod ldap;
1011
pub mod oidc;
1112
pub mod static_;
@@ -77,6 +78,10 @@ pub enum AuthenticationClassProvider {
7778
/// The [TLS provider](DOCS_BASE_URL_PLACEHOLDER/concepts/authentication#_tls).
7879
/// The TLS AuthenticationClass is used when users should authenticate themselves with a TLS certificate.
7980
Tls(tls::AuthenticationProvider),
81+
82+
/// The [Kerberos provider](DOCS_BASE_URL_PLACEHOLDER/concepts/authentication#_kerberos).
83+
/// The Kerberos AuthenticationClass is used when users should authenticate themselves via Kerberos.
84+
Kerberos(kerberos::AuthenticationProvider),
8085
}
8186

8287
impl AuthenticationClass {
@@ -183,6 +188,13 @@ mod tests {
183188
let tls_provider = AuthenticationClassProvider::Tls(AuthenticationProvider {
184189
client_cert_secret_class: None,
185190
});
186-
assert_eq!("Tls", tls_provider.to_string())
191+
assert_eq!("Tls", tls_provider.to_string());
192+
193+
let kerberos_provider = AuthenticationClassProvider::Kerberos(
194+
crate::commons::authentication::kerberos::AuthenticationProvider {
195+
kerberos_secret_class: "kerberos".to_string(),
196+
},
197+
);
198+
assert_eq!("Kerberos", kerberos_provider.to_string());
187199
}
188200
}

0 commit comments

Comments
 (0)