Skip to content

Commit b95573a

Browse files
fix: Do not hard-code the environment variable name "FILE_LOG_DIRECTORY"
1 parent 905db68 commit b95573a

2 files changed

Lines changed: 20 additions & 10 deletions

File tree

‎rust/operator-binary/src/controller/build/properties/env_vars.rs‎

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ use stackable_operator::{
1616
use crate::{
1717
controller::{ValidatedCluster, ValidatedLogging},
1818
crd::{
19-
AirflowExecutor, AirflowRole, HTTP_PORT, LOG_CONFIG_DIR, TEMPLATE_LOCATION, TEMPLATE_NAME,
19+
AirflowExecutor, AirflowRole, FILE_LOG_DIRECTORY, FILE_LOG_MAX_FILES,
20+
FILE_LOG_ROTATION_PERIOD, HTTP_PORT, LOG_CONFIG_DIR, TEMPLATE_LOCATION, TEMPLATE_NAME,
2021
authentication::{
2122
AirflowAuthenticationClassResolved, AirflowClientAuthenticationDetailsResolved,
2223
},
@@ -78,9 +79,6 @@ constant!(ADMIN_PASSWORD_SECRET_KEY: SecretKey = "adminUser.password");
7879

7980
constant!(PYTHONPATH: EnvVarName = "PYTHONPATH");
8081

81-
constant!(FILE_LOG_DIRECTORY: EnvVarName = "FILE_LOG_DIRECTORY");
82-
constant!(FILE_LOG_ROTATION_PERIOD: EnvVarName = "FILE_LOG_ROTATION_PERIOD");
83-
constant!(FILE_LOG_MAX_FILES: EnvVarName = "FILE_LOG_MAX_FILES");
8482
constant!(STACKABLE_POST_HOOK: EnvVarName = "_STACKABLE_POST_HOOK");
8583

8684
/// Return environment variables to be applied to the statefulsets for the scheduler, webserver (and worker,
@@ -539,9 +537,6 @@ mod tests {
539537
let _ = *AIRFLOW_WEBSERVER_ENABLE_PROXY_FIX;
540538
let _ = *AIRFLOW_WEBSERVER_EXPOSE_CONFIG;
541539
let _ = *AIRFLOW_WEBSERVER_PROXY_FIX_X_FOR;
542-
let _ = *FILE_LOG_DIRECTORY;
543-
let _ = *FILE_LOG_MAX_FILES;
544-
let _ = *FILE_LOG_ROTATION_PERIOD;
545540
let _ = *FORWARDED_ALLOW_IPS;
546541
let _ = *PYTHONPATH;
547542
let _ = *STACKABLE_POST_HOOK;

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

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::{collections::BTreeSet, ops::Deref, str::FromStr};
22

3+
use indoc::formatdoc;
34
use serde::{Deserialize, Serialize};
45
use snafu::{ResultExt, Snafu};
56
use stackable_operator::{
@@ -38,6 +39,7 @@ use stackable_operator::{
3839
status::condition::{ClusterCondition, HasStatusCondition},
3940
utils::{COMMON_BASH_TRAP_FUNCTIONS, crds::raw_object_list_schema},
4041
v2::{
42+
builder::pod::container::EnvVarName,
4143
config_overrides::KeyValueConfigOverrides,
4244
flask_config_writer::{FlaskAppConfigOptions, PythonType},
4345
product_logging::framework::STACKABLE_LOG_DIR,
@@ -84,6 +86,14 @@ pub const CONFIG_PATH: &str = "/stackable/app/config";
8486
pub const LOG_CONFIG_DIR: &str = "/stackable/app/log_config";
8587
pub const AIRFLOW_HOME: &str = "/stackable/airflow";
8688

89+
// The `stackable-telemetry` variables which configure the file logs of the `containerdebug`
90+
// process. They are set on the Airflow container in `env_vars`, and the start command below
91+
// references the directory as a shell variable, so that an `envOverrides` entry for it takes
92+
// effect in both places.
93+
constant!(pub FILE_LOG_DIRECTORY: EnvVarName = "FILE_LOG_DIRECTORY");
94+
constant!(pub FILE_LOG_MAX_FILES: EnvVarName = "FILE_LOG_MAX_FILES");
95+
constant!(pub FILE_LOG_ROTATION_PERIOD: EnvVarName = "FILE_LOG_ROTATION_PERIOD");
96+
8797
constant!(pub TEMPLATE_VOLUME_NAME: VolumeName = "airflow-executor-pod-template");
8898
pub const TEMPLATE_LOCATION: &str = "/templates";
8999
pub const TEMPLATE_NAME: &str = "airflow_executor_pod_template.yaml";
@@ -779,9 +789,11 @@ fn container_debug_command() -> String {
779789
// The log directory is created here, because `FILE_LOG_MAX_FILES` makes the telemetry library
780790
// prune old log files before it creates the first one, which complains about the directory not
781791
// existing yet.
782-
format!(
783-
"mkdir --parents \"$FILE_LOG_DIRECTORY\"\n\
784-
containerdebug --output={STACKABLE_LOG_DIR}/containerdebug-state.json --loop &"
792+
formatdoc!(
793+
r#"
794+
mkdir --parents "${file_log_directory}" || true
795+
containerdebug --output={STACKABLE_LOG_DIR}/containerdebug-state.json --loop &"#,
796+
file_log_directory = FILE_LOG_DIRECTORY.as_ref(),
785797
)
786798
}
787799

@@ -1035,6 +1047,9 @@ mod tests {
10351047
let _ = *WORKER_ROLE_NAME;
10361048
let _ = *DAG_PROCESSOR_ROLE_NAME;
10371049
let _ = *TRIGGERER_ROLE_NAME;
1050+
let _ = *FILE_LOG_DIRECTORY;
1051+
let _ = *FILE_LOG_MAX_FILES;
1052+
let _ = *FILE_LOG_ROTATION_PERIOD;
10381053
let _ = *TEMPLATE_VOLUME_NAME;
10391054
let _ = *LISTENER_PVC_NAME;
10401055
let _ = *METRICS_CONTAINER_NAME;

0 commit comments

Comments
 (0)