diff --git a/.github/workflows/pr_pre-commit.yaml b/.github/workflows/pr_pre-commit.yaml index ec55fe78..bdc3ddfd 100644 --- a/.github/workflows/pr_pre-commit.yaml +++ b/.github/workflows/pr_pre-commit.yaml @@ -6,7 +6,7 @@ on: env: CARGO_TERM_COLOR: always - RUST_TOOLCHAIN_VERSION: "1.82.0" + RUST_TOOLCHAIN_VERSION: "nightly-2025-01-15" HADOLINT_VERSION: "v2.12.0" PYTHON_VERSION: "3.12" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a36fdcb7..c5bd8ad1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,10 +17,6 @@ repos: - repo: https://github.com/doublify/pre-commit-rust rev: eeee35a89e69d5772bdee97db1a6a898467b686e # 1.0 hooks: - - id: fmt - # Pinning to a specific rustc version, so that we get consistent formatting - entry: RUSTUP_TOOLCHAIN=nightly-2025-01-15 cargo fmt - args: ["--all", "--", "--check"] - id: clippy args: ["--all-targets", "--", "-D", "warnings"] @@ -78,3 +74,10 @@ repos: entry: cargo test stages: [pre-commit, pre-merge-commit, manual] pass_filenames: false + + - id: cargo-rustfmt + name: cargo-rustfmt + language: system + entry: cargo +nightly-2025-01-15 fmt --all -- --check + stages: [pre-commit] + pass_filenames: false diff --git a/Cargo.lock b/Cargo.lock index e3fe95f3..ac52c387 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1563,9 +1563,9 @@ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" dependencies = [ "bitflags", "cfg-if", @@ -1595,9 +1595,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.104" +version = "0.9.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" dependencies = [ "cc", "libc", diff --git a/rust/crd/src/affinity.rs b/rust/crd/src/affinity.rs index 48a50fda..9b2c0a5d 100644 --- a/rust/crd/src/affinity.rs +++ b/rust/crd/src/affinity.rs @@ -85,12 +85,9 @@ pub fn get_affinity( #[cfg(test)] mod tests { - use super::*; - - use rstest::rstest; use std::collections::BTreeMap; - use crate::TrinoCluster; + use rstest::rstest; use stackable_operator::{ commons::affinity::StackableAffinity, k8s_openapi::{ @@ -101,6 +98,9 @@ mod tests { }, }; + use super::*; + use crate::TrinoCluster; + #[rstest] #[case(TrinoRole::Coordinator)] #[case(TrinoRole::Worker)] diff --git a/rust/crd/src/catalog/delta_lake.rs b/rust/crd/src/catalog/delta_lake.rs index 54f355f4..2bc99be6 100644 --- a/rust/crd/src/catalog/delta_lake.rs +++ b/rust/crd/src/catalog/delta_lake.rs @@ -1,10 +1,11 @@ -use super::commons::{HdfsConnection, MetastoreConnection}; use serde::{Deserialize, Serialize}; use stackable_operator::{ commons::s3::S3ConnectionInlineOrReference, schemars::{self, JsonSchema}, }; +use super::commons::{HdfsConnection, MetastoreConnection}; + // This struct is similar to [`super::hive::HiveConnector`], but we do not `#[serde(flatten)]` it here, to avoid changing // stuff there and missing that these settings don't apply to other connectors (such as Iceberg or Delta Lake). #[derive(Clone, Debug, Deserialize, Eq, JsonSchema, PartialEq, Serialize)] diff --git a/rust/crd/src/catalog/generic.rs b/rust/crd/src/catalog/generic.rs index 57e0c54a..a6b80d3c 100644 --- a/rust/crd/src/catalog/generic.rs +++ b/rust/crd/src/catalog/generic.rs @@ -38,7 +38,6 @@ pub enum Property { #[cfg(test)] mod tests { use super::*; - use crate::catalog::{TrinoCatalog, TrinoCatalogConnector}; #[test] diff --git a/rust/crd/src/catalog/hive.rs b/rust/crd/src/catalog/hive.rs index bb742f7a..be1c2fee 100644 --- a/rust/crd/src/catalog/hive.rs +++ b/rust/crd/src/catalog/hive.rs @@ -1,10 +1,11 @@ -use super::commons::{HdfsConnection, MetastoreConnection}; use serde::{Deserialize, Serialize}; use stackable_operator::{ commons::s3::S3ConnectionInlineOrReference, schemars::{self, JsonSchema}, }; +use super::commons::{HdfsConnection, MetastoreConnection}; + #[derive(Clone, Debug, Deserialize, Eq, JsonSchema, PartialEq, Serialize)] #[serde(rename_all = "camelCase")] pub struct HiveConnector { diff --git a/rust/crd/src/catalog/iceberg.rs b/rust/crd/src/catalog/iceberg.rs index 5ebf6c6e..ea22cfe9 100644 --- a/rust/crd/src/catalog/iceberg.rs +++ b/rust/crd/src/catalog/iceberg.rs @@ -1,10 +1,11 @@ -use super::commons::{HdfsConnection, MetastoreConnection}; use serde::{Deserialize, Serialize}; use stackable_operator::{ commons::s3::S3ConnectionInlineOrReference, schemars::{self, JsonSchema}, }; +use super::commons::{HdfsConnection, MetastoreConnection}; + // This struct is similar to [`super::hive::HiveConnector`], but we do not `#[serde(flatten)]` it here, to avoid changing // stuff there and missing that these settings don't apply to other connectors (such as Iceberg or Delta Lake). #[derive(Clone, Debug, Deserialize, Eq, JsonSchema, PartialEq, Serialize)] diff --git a/rust/crd/src/catalog/mod.rs b/rust/crd/src/catalog/mod.rs index 62fc12f8..3e0f6b51 100644 --- a/rust/crd/src/catalog/mod.rs +++ b/rust/crd/src/catalog/mod.rs @@ -8,11 +8,6 @@ pub mod iceberg; pub mod tpcds; pub mod tpch; -use serde::{Deserialize, Serialize}; -use stackable_operator::{ - kube::CustomResource, - schemars::{self, JsonSchema}, -}; use std::collections::HashMap; use black_hole::BlackHoleConnector; @@ -20,6 +15,11 @@ use generic::GenericConnector; use google_sheet::GoogleSheetConnector; use hive::HiveConnector; use iceberg::IcebergConnector; +use serde::{Deserialize, Serialize}; +use stackable_operator::{ + kube::CustomResource, + schemars::{self, JsonSchema}, +}; use tpcds::TpcdsConnector; use tpch::TpchConnector; diff --git a/rust/crd/src/lib.rs b/rust/crd/src/lib.rs index 63d5999f..adfa4d14 100644 --- a/rust/crd/src/lib.rs +++ b/rust/crd/src/lib.rs @@ -3,7 +3,7 @@ pub mod authentication; pub mod catalog; pub mod discovery; -use crate::discovery::TrinoPodRef; +use std::{collections::BTreeMap, str::FromStr}; use affinity::get_affinity; use catalog::TrinoCatalog; @@ -35,9 +35,10 @@ use stackable_operator::{ time::Duration, utils::cluster_info::KubernetesClusterInfo, }; -use std::{collections::BTreeMap, str::FromStr}; use strum::{Display, EnumIter, EnumString, IntoEnumIterator}; +use crate::discovery::TrinoPodRef; + pub const APP_NAME: &str = "trino"; // ports pub const HTTP_PORT: u16 = 8080; diff --git a/rust/operator-binary/src/authentication/mod.rs b/rust/operator-binary/src/authentication/mod.rs index bfad5804..5eea8baa 100644 --- a/rust/operator-binary/src/authentication/mod.rs +++ b/rust/operator-binary/src/authentication/mod.rs @@ -564,10 +564,11 @@ impl TryFrom> for TrinoAuthenticationTypes { #[cfg(test)] mod tests { - use super::*; use stackable_operator::commons::authentication::oidc::ClientAuthenticationOptions; use stackable_trino_crd::RW_CONFIG_DIR_NAME; + use super::*; + const OIDC_AUTH_CLASS_1: &str = "oidc-auth-1"; const FILE_AUTH_CLASS_1: &str = "file-auth-1"; const FILE_AUTH_CLASS_2: &str = "file-auth-2"; diff --git a/rust/operator-binary/src/authentication/oidc/mod.rs b/rust/operator-binary/src/authentication/oidc/mod.rs index 8b75b547..f2c4d367 100644 --- a/rust/operator-binary/src/authentication/oidc/mod.rs +++ b/rust/operator-binary/src/authentication/oidc/mod.rs @@ -1,12 +1,12 @@ //! This module computes all resources required for Trino OAUTH2 authentication. //! -use crate::authentication::TrinoAuthenticationConfig; -use crate::command; use snafu::{ResultExt, Snafu}; use stackable_operator::commons::{authentication::oidc, tls_verification::TlsClientDetailsError}; use stackable_trino_crd::{TrinoRole, STACKABLE_CLIENT_TLS_DIR}; +use crate::{authentication::TrinoAuthenticationConfig, command}; + // Trino properties const HTTP_SERVER_AUTHENTICATION_OAUTH2_CLIENT_ID: &str = "http-server.authentication.oauth2.client-id"; @@ -209,10 +209,11 @@ impl TrinoOidcAuthentication { mod tests { use std::mem; - use super::*; use rstest::rstest; use stackable_trino_crd::Container; + use super::*; + const IDP_PORT: u16 = 8080; const IDP_SCOPE_1: &str = "openid"; const IDP_SCOPE_2: &str = "test"; diff --git a/rust/operator-binary/src/authentication/password/file.rs b/rust/operator-binary/src/authentication/password/file.rs index 7f6bffde..ba3567aa 100644 --- a/rust/operator-binary/src/authentication/password/file.rs +++ b/rust/operator-binary/src/authentication/password/file.rs @@ -1,5 +1,4 @@ -use crate::authentication::password::PASSWORD_AUTHENTICATOR_NAME; -use crate::controller::STACKABLE_LOG_DIR; +use std::collections::BTreeMap; use snafu::{ResultExt, Snafu}; use stackable_operator::{ @@ -16,7 +15,8 @@ use stackable_operator::{ product_logging::{self, spec::AutomaticContainerLogConfig}, utils::COMMON_BASH_TRAP_FUNCTIONS, }; -use std::collections::BTreeMap; + +use crate::{authentication::password::PASSWORD_AUTHENTICATOR_NAME, controller::STACKABLE_LOG_DIR}; // mounts const PASSWORD_DB_VOLUME_NAME: &str = "users"; @@ -205,9 +205,10 @@ wait_for_termination $! #[cfg(test)] mod tests { - use super::*; use stackable_operator::commons::authentication::static_::UserCredentialsSecretRef; + use super::*; + const AUTH_CLASS_NAME: &str = "test-auth"; #[test] diff --git a/rust/operator-binary/src/authentication/password/ldap.rs b/rust/operator-binary/src/authentication/password/ldap.rs index e4052af9..1fa2b2d2 100644 --- a/rust/operator-binary/src/authentication/password/ldap.rs +++ b/rust/operator-binary/src/authentication/password/ldap.rs @@ -1,10 +1,12 @@ -use crate::authentication::password; +use std::collections::BTreeMap; + use snafu::{ResultExt, Snafu}; use stackable_operator::{ commons::authentication::ldap, k8s_openapi::api::core::v1::{Volume, VolumeMount}, }; -use std::collections::BTreeMap; + +use crate::authentication::password; // ldap const PASSWORD_AUTHENTICATOR_NAME_LDAP: &str = "ldap"; diff --git a/rust/operator-binary/src/authentication/password/mod.rs b/rust/operator-binary/src/authentication/password/mod.rs index bc0afb68..f7615087 100644 --- a/rust/operator-binary/src/authentication/password/mod.rs +++ b/rust/operator-binary/src/authentication/password/mod.rs @@ -201,11 +201,12 @@ impl TrinoPasswordAuthentication { #[cfg(test)] mod tests { - use super::*; use stackable_operator::commons::authentication::{ ldap, static_, static_::UserCredentialsSecretRef, }; + use super::*; + const FILE_AUTH_CLASS_1: &str = "file-auth-1"; const FILE_AUTH_CLASS_2: &str = "file-auth-2"; const LDAP_AUTH_CLASS_1: &str = "ldap-auth-1"; diff --git a/rust/operator-binary/src/catalog/black_hole.rs b/rust/operator-binary/src/catalog/black_hole.rs index 1cab3886..e9cb1375 100644 --- a/rust/operator-binary/src/catalog/black_hole.rs +++ b/rust/operator-binary/src/catalog/black_hole.rs @@ -1,8 +1,9 @@ -use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; use stackable_operator::client::Client; use stackable_trino_crd::catalog::black_hole::BlackHoleConnector; +use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; + pub const CONNECTOR_NAME: &str = "blackhole"; #[async_trait] diff --git a/rust/operator-binary/src/catalog/commons.rs b/rust/operator-binary/src/catalog/commons.rs index 6f28d255..633e43f6 100644 --- a/rust/operator-binary/src/catalog/commons.rs +++ b/rust/operator-binary/src/catalog/commons.rs @@ -1,5 +1,3 @@ -use crate::command; - use async_trait::async_trait; use snafu::{OptionExt, ResultExt}; use stackable_operator::{ @@ -11,8 +9,10 @@ use stackable_operator::{ }, k8s_openapi::api::core::v1::ConfigMap, }; -use stackable_trino_crd::catalog::commons::{HdfsConnection, MetastoreConnection}; -use stackable_trino_crd::{CONFIG_DIR_NAME, STACKABLE_CLIENT_TLS_DIR}; +use stackable_trino_crd::{ + catalog::commons::{HdfsConnection, MetastoreConnection}, + CONFIG_DIR_NAME, STACKABLE_CLIENT_TLS_DIR, +}; use super::{ config::CatalogConfig, @@ -23,6 +23,7 @@ use super::{ }, ExtendCatalogConfig, FromTrinoCatalogError, }; +use crate::command; #[async_trait] impl ExtendCatalogConfig for MetastoreConnection { diff --git a/rust/operator-binary/src/catalog/config.rs b/rust/operator-binary/src/catalog/config.rs index 0e6e349c..3ba2f21a 100644 --- a/rust/operator-binary/src/catalog/config.rs +++ b/rust/operator-binary/src/catalog/config.rs @@ -1,3 +1,5 @@ +use std::collections::BTreeMap; + use stackable_operator::{ client::Client, k8s_openapi::api::core::v1::{ @@ -6,7 +8,6 @@ use stackable_operator::{ kube::{Resource, ResourceExt}, }; use stackable_trino_crd::catalog::{TrinoCatalog, TrinoCatalogConnector}; -use std::collections::BTreeMap; use super::{FromTrinoCatalogError, ToCatalogConfig}; diff --git a/rust/operator-binary/src/catalog/delta_lake.rs b/rust/operator-binary/src/catalog/delta_lake.rs index 82c3a75d..7427ab53 100644 --- a/rust/operator-binary/src/catalog/delta_lake.rs +++ b/rust/operator-binary/src/catalog/delta_lake.rs @@ -1,8 +1,9 @@ -use super::{config::CatalogConfig, ExtendCatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; use stackable_operator::client::Client; use stackable_trino_crd::catalog::delta_lake::DeltaLakeConnector; +use super::{config::CatalogConfig, ExtendCatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; + pub const CONNECTOR_NAME: &str = "delta_lake"; #[async_trait] diff --git a/rust/operator-binary/src/catalog/generic.rs b/rust/operator-binary/src/catalog/generic.rs index b295a195..c39c0976 100644 --- a/rust/operator-binary/src/catalog/generic.rs +++ b/rust/operator-binary/src/catalog/generic.rs @@ -1,8 +1,9 @@ -use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; use stackable_operator::client::Client; use stackable_trino_crd::catalog::generic::{GenericConnector, Property}; +use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; + #[async_trait] impl ToCatalogConfig for GenericConnector { async fn to_catalog_config( diff --git a/rust/operator-binary/src/catalog/google_sheet.rs b/rust/operator-binary/src/catalog/google_sheet.rs index 7ecc07b7..9de41511 100644 --- a/rust/operator-binary/src/catalog/google_sheet.rs +++ b/rust/operator-binary/src/catalog/google_sheet.rs @@ -1,9 +1,11 @@ -use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; -use stackable_operator::builder::pod::volume::{VolumeBuilder, VolumeMountBuilder}; -use stackable_operator::client::Client; -use stackable_trino_crd::catalog::google_sheet::GoogleSheetConnector; -use stackable_trino_crd::CONFIG_DIR_NAME; +use stackable_operator::{ + builder::pod::volume::{VolumeBuilder, VolumeMountBuilder}, + client::Client, +}; +use stackable_trino_crd::{catalog::google_sheet::GoogleSheetConnector, CONFIG_DIR_NAME}; + +use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; pub const CONNECTOR_NAME: &str = "gsheets"; diff --git a/rust/operator-binary/src/catalog/hive.rs b/rust/operator-binary/src/catalog/hive.rs index f958b236..b8d8f087 100644 --- a/rust/operator-binary/src/catalog/hive.rs +++ b/rust/operator-binary/src/catalog/hive.rs @@ -1,8 +1,9 @@ -use super::{config::CatalogConfig, ExtendCatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; use stackable_operator::client::Client; use stackable_trino_crd::catalog::hive::HiveConnector; +use super::{config::CatalogConfig, ExtendCatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; + pub const CONNECTOR_NAME: &str = "hive"; #[async_trait] diff --git a/rust/operator-binary/src/catalog/iceberg.rs b/rust/operator-binary/src/catalog/iceberg.rs index 1d5e9573..2efc9436 100644 --- a/rust/operator-binary/src/catalog/iceberg.rs +++ b/rust/operator-binary/src/catalog/iceberg.rs @@ -1,8 +1,9 @@ -use super::{config::CatalogConfig, ExtendCatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; use stackable_operator::client::Client; use stackable_trino_crd::catalog::iceberg::IcebergConnector; +use super::{config::CatalogConfig, ExtendCatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; + pub const CONNECTOR_NAME: &str = "iceberg"; #[async_trait] diff --git a/rust/operator-binary/src/catalog/mod.rs b/rust/operator-binary/src/catalog/mod.rs index 0e8bac5b..9d3cf1f4 100644 --- a/rust/operator-binary/src/catalog/mod.rs +++ b/rust/operator-binary/src/catalog/mod.rs @@ -9,7 +9,6 @@ pub mod iceberg; pub mod tpcds; pub mod tpch; -use self::config::CatalogConfig; use async_trait::async_trait; use snafu::Snafu; use stackable_operator::{ @@ -17,6 +16,8 @@ use stackable_operator::{ commons::{s3::S3Error, tls_verification::TlsClientDetailsError}, }; +use self::config::CatalogConfig; + #[derive(Debug, Snafu)] #[snafu(module)] pub enum FromTrinoCatalogError { diff --git a/rust/operator-binary/src/catalog/tpcds.rs b/rust/operator-binary/src/catalog/tpcds.rs index 82a7a37f..28aae0d3 100644 --- a/rust/operator-binary/src/catalog/tpcds.rs +++ b/rust/operator-binary/src/catalog/tpcds.rs @@ -1,8 +1,9 @@ -use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; use stackable_operator::client::Client; use stackable_trino_crd::catalog::tpcds::TpcdsConnector; +use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; + pub const CONNECTOR_NAME: &str = "tpcds"; #[async_trait] diff --git a/rust/operator-binary/src/catalog/tpch.rs b/rust/operator-binary/src/catalog/tpch.rs index a4939a83..37986c49 100644 --- a/rust/operator-binary/src/catalog/tpch.rs +++ b/rust/operator-binary/src/catalog/tpch.rs @@ -1,8 +1,9 @@ -use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; use async_trait::async_trait; use stackable_operator::client::Client; use stackable_trino_crd::catalog::tpch::TpchConnector; +use super::{config::CatalogConfig, FromTrinoCatalogError, ToCatalogConfig}; + pub const CONNECTOR_NAME: &str = "tpch"; #[async_trait] diff --git a/rust/operator-binary/src/command.rs b/rust/operator-binary/src/command.rs index 5b70f99a..2117405f 100644 --- a/rust/operator-binary/src/command.rs +++ b/rust/operator-binary/src/command.rs @@ -1,9 +1,3 @@ -use crate::{ - authentication::TrinoAuthenticationConfig, - catalog::config::CatalogConfig, - controller::{STACKABLE_LOG_CONFIG_DIR, STACKABLE_LOG_DIR}, -}; - use stackable_operator::{ product_logging::{ framework::{create_vector_shutdown_file_command, remove_vector_shutdown_file_command}, @@ -18,6 +12,12 @@ use stackable_trino_crd::{ STACKABLE_TLS_STORE_PASSWORD, SYSTEM_TRUST_STORE, SYSTEM_TRUST_STORE_PASSWORD, }; +use crate::{ + authentication::TrinoAuthenticationConfig, + catalog::config::CatalogConfig, + controller::{STACKABLE_LOG_CONFIG_DIR, STACKABLE_LOG_DIR}, +}; + pub fn container_prepare_args( trino: &TrinoCluster, catalogs: &[CatalogConfig], diff --git a/rust/operator-binary/src/operations/pdb.rs b/rust/operator-binary/src/operations/pdb.rs index 97018a8d..2361061c 100644 --- a/rust/operator-binary/src/operations/pdb.rs +++ b/rust/operator-binary/src/operations/pdb.rs @@ -73,9 +73,10 @@ fn max_unavailable_workers(num_workers: u16) -> u16 { #[cfg(test)] mod test { - use super::*; use rstest::rstest; + use super::*; + #[rstest] #[case(0, 1)] #[case(1, 1)] diff --git a/rust/operator-binary/src/product_logging.rs b/rust/operator-binary/src/product_logging.rs index 5c771ba5..4913e276 100644 --- a/rust/operator-binary/src/product_logging.rs +++ b/rust/operator-binary/src/product_logging.rs @@ -1,12 +1,14 @@ use snafu::{OptionExt, ResultExt, Snafu}; -use stackable_operator::product_logging::framework::create_vector_config; use stackable_operator::{ client::Client, k8s_openapi::api::core::v1::ConfigMap, kube::ResourceExt, - product_logging::spec::{ - AutomaticContainerLogConfig, ContainerLogConfig, ContainerLogConfigChoice, LogLevel, - Logging, + product_logging::{ + framework::create_vector_config, + spec::{ + AutomaticContainerLogConfig, ContainerLogConfig, ContainerLogConfigChoice, LogLevel, + Logging, + }, }, role_utils::RoleGroupRef, };