File tree Expand file tree Collapse file tree
stackable-cockpit/src/platform Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -77,3 +77,11 @@ hooks are:
7777[ pre-commit ] : https://pre-commit.com/
7878[ web-readme ] : ./web/README.md
7979[ lib-readme ] : ./rust/stackable-cockpit/README.md
80+
81+ ### Templating variables
82+
83+ | Variable | Availability | Content |
84+ | ----------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
85+ | ` NAMESPACE ` | Always | The namespace where the stack and demo (not the operators!) are deployed into |
86+ | ` STACK ` | Always (both in stack and demo manifests) | The name of the stack |
87+ | ` DEMO ` | In demos manifests: Always<br >In stack manifests: Only when deployed as part of a demo! | The name of the demo |
Original file line number Diff line number Diff line change @@ -4,6 +4,12 @@ use stackable_operator::kvp::Labels;
44use crate :: platform:: operator:: ChartSourceType ;
55
66pub struct DemoInstallParameters {
7+ /// Name of the demo, which is always present
8+ pub demo_name : String ,
9+
10+ /// Name of the stack, which is always present, as a demo builds on top of a stack
11+ pub stack_name : String ,
12+
713 pub operator_namespace : String ,
814 pub demo_namespace : String ,
915
Original file line number Diff line number Diff line change @@ -153,13 +153,13 @@ impl DemoSpec {
153153 . await ?;
154154
155155 let stack_install_parameters = StackInstallParameters {
156+ stack_name : self . stack . clone ( ) ,
157+ demo_name : Some ( install_parameters. demo_name . clone ( ) ) ,
156158 operator_namespace : install_parameters. operator_namespace . clone ( ) ,
157159 stack_namespace : install_parameters. demo_namespace . clone ( ) ,
158160 parameters : install_parameters. stack_parameters . clone ( ) ,
159161 labels : install_parameters. stack_labels . clone ( ) ,
160162 skip_release : install_parameters. skip_release ,
161- stack_name : self . stack . clone ( ) ,
162- demo_name : None ,
163163 chart_source : install_parameters. chart_source . clone ( ) ,
164164 operator_values : install_parameters. operator_values . clone ( ) ,
165165 } ;
@@ -204,6 +204,8 @@ impl DemoSpec {
204204 & self . manifests ,
205205 & params,
206206 & install_params. demo_namespace ,
207+ & install_params. demo_name ,
208+ Some ( & install_params. stack_name ) ,
207209 install_params. labels ,
208210 client,
209211 transfer_client,
Original file line number Diff line number Diff line change @@ -70,6 +70,8 @@ pub trait InstallManifestsExt {
7070 manifests : & [ ManifestSpec ] ,
7171 parameters : & HashMap < String , String > ,
7272 namespace : & str ,
73+ stack_name : & str ,
74+ demo_name : Option < & str > ,
7375 labels : Labels ,
7476 client : & Client ,
7577 transfer_client : & xfer:: Client ,
@@ -80,9 +82,13 @@ pub trait InstallManifestsExt {
8082 Span :: current ( ) . pb_set_length ( manifests. len ( ) as u64 ) ;
8183
8284 let mut parameters = parameters. clone ( ) ;
83- // We add the NAMESPACE parameter, so that stacks/demos can use that to render e.g. the
84- // fqdn service names [which contain the namespace].
85+ // We need some additional templating capabilities, e.g. the namespace, so that stacks/demos
86+ // can use that to render e.g. the fqdn service names [which contain the namespace].
8587 parameters. insert ( "NAMESPACE" . to_owned ( ) , namespace. to_owned ( ) ) ;
88+ parameters. insert ( "STACK" . to_owned ( ) , stack_name. into ( ) ) ;
89+ if let Some ( demo_name) = demo_name {
90+ parameters. insert ( "DEMO" . to_owned ( ) , demo_name. into ( ) ) ;
91+ }
8692
8793 for manifest in manifests {
8894 let parameters = parameters. clone ( ) ;
Original file line number Diff line number Diff line change @@ -5,7 +5,11 @@ use crate::platform::operator::ChartSourceType;
55
66#[ derive( Debug ) ]
77pub struct StackInstallParameters {
8+ /// Optional name of the demo, which is only present in case this stack is installed as part of
9+ /// a demo. This is unset in case a stack is installed directly.
810 pub demo_name : Option < String > ,
11+
12+ /// Name of the stack, which is always present
913 pub stack_name : String ,
1014
1115 pub operator_namespace : String ,
Original file line number Diff line number Diff line change @@ -249,6 +249,8 @@ impl StackSpec {
249249 & self . manifests ,
250250 & parameters,
251251 & install_params. stack_namespace ,
252+ & install_params. stack_name ,
253+ install_params. demo_name . as_deref ( ) ,
252254 install_params. labels ,
253255 client,
254256 transfer_client,
Original file line number Diff line number Diff line change @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
44
55## [ Unreleased]
66
7+ ### Added
8+
9+ - Add ` STACK ` and ` DEMO ` templating parameters. Have a look at the README for details ([ #XXX] ).
10+
11+ [ #XXX ] : https://github.com/stackabletech/stackable-cockpit/pull/XXX
12+
713## [ 1.3.0] - 2026-03-16
814
915### Added
Original file line number Diff line number Diff line change @@ -388,6 +388,8 @@ async fn install_cmd(
388388 . context ( LoadOperatorValuesSnafu ) ?;
389389
390390 let install_parameters = DemoInstallParameters {
391+ demo_name : args. demo_name . clone ( ) ,
392+ stack_name : demo. stack . clone ( ) ,
391393 operator_namespace : args. namespaces . operator_namespace . clone ( ) ,
392394 demo_namespace : args. namespaces . namespace . clone ( ) ,
393395 stack_parameters : args. stack_parameters . clone ( ) ,
Original file line number Diff line number Diff line change @@ -359,12 +359,13 @@ async fn install_cmd(
359359 . context ( LoadOperatorValuesSnafu ) ?;
360360
361361 let install_parameters = StackInstallParameters {
362+ stack_name : args. stack_name . clone ( ) ,
363+ // There is no demo when installing only a stack
364+ demo_name : None ,
362365 operator_namespace : args. namespaces . operator_namespace . clone ( ) ,
363366 stack_namespace : args. namespaces . namespace . clone ( ) ,
364- stack_name : args. stack_name . clone ( ) ,
365367 parameters : args. parameters . clone ( ) ,
366368 skip_release : args. skip_release ,
367- demo_name : None ,
368369 labels,
369370 chart_source : ChartSourceType :: from ( cli. chart_type ( ) ) ,
370371 operator_values,
You can’t perform that action at this time.
0 commit comments