Skip to content

Commit ff3d6a2

Browse files
authored
feat(stackable-versioned): Add kube_client to crate overrides (#1038)
* feat(stackable-versioned): Add kube_client to crate overrides * chore(stackable-versioned): Add changelog entry
1 parent 9f021ea commit ff3d6a2

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

crates/stackable-versioned-macros/src/attrs/k8s.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ pub(crate) struct KubernetesSkipArguments {
6262
#[derive(Clone, Debug, FromMeta)]
6363
pub(crate) struct KubernetesCrateArguments {
6464
pub(crate) kube_core: Option<Path>,
65+
pub(crate) kube_client: Option<Path>,
6566
pub(crate) k8s_openapi: Option<Path>,
6667
pub(crate) schemars: Option<Path>,
6768
pub(crate) serde: Option<Path>,

crates/stackable-versioned-macros/src/codegen/container/mod.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ impl From<KubernetesArguments> for KubernetesOptions {
309309

310310
#[derive(Debug)]
311311
pub(crate) struct KubernetesCrateOptions {
312+
pub(crate) kube_client: Override<Path>,
312313
pub(crate) kube_core: Override<Path>,
313314
pub(crate) k8s_openapi: Override<Path>,
314315
pub(crate) schemars: Override<Path>,
@@ -319,6 +320,7 @@ pub(crate) struct KubernetesCrateOptions {
319320
impl Default for KubernetesCrateOptions {
320321
fn default() -> Self {
321322
Self {
323+
kube_client: Override::Default(parse_quote! { ::kube::client }),
322324
k8s_openapi: Override::Default(parse_quote! { ::k8s_openapi }),
323325
serde_json: Override::Default(parse_quote! { ::serde_json }),
324326
kube_core: Override::Default(parse_quote! { ::kube::core }),
@@ -344,6 +346,10 @@ impl From<KubernetesCrateArguments> for KubernetesCrateOptions {
344346
crate_options.kube_core = Override::Overridden(kube_core);
345347
}
346348

349+
if let Some(kube_client) = args.kube_client {
350+
crate_options.kube_client = Override::Overridden(kube_client);
351+
}
352+
347353
if let Some(schemars) = args.schemars {
348354
crate_options.schemars = Override::Overridden(schemars);
349355
}
@@ -361,6 +367,7 @@ impl ToTokens for KubernetesCrateOptions {
361367
let mut crate_overrides = TokenStream::new();
362368

363369
let KubernetesCrateOptions {
370+
kube_client: _,
364371
k8s_openapi,
365372
serde_json,
366373
kube_core,

crates/stackable-versioned/CHANGELOG.md

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

55
## [Unreleased]
66

7+
### Added
8+
9+
- Add `kube_client` crate override to `k8s(crates())` to specify a custom import path. This override
10+
will not be passed to the `#[kube()]` attribute, but will only be available to internal
11+
`#[versioned]` macro code ([#1038]).
12+
713
### Fixed
814

915
- Correctly handle fields added in later versions ([#1031]).
1016

1117
[#1031]: https://github.com/stackabletech/operator-rs/pull/1031
18+
[#1038]: https://github.com/stackabletech/operator-rs/pull/1038
1219

1320
## [0.7.1] - 2025-04-02
1421

0 commit comments

Comments
 (0)