Skip to content

Commit 8265d8a

Browse files
remove environmentd_iam_role_arn from v1alpha2
1 parent 0f556c6 commit 8265d8a

2 files changed

Lines changed: 19 additions & 39 deletions

File tree

src/cloud-resources/src/crd/materialize.rs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ pub mod v1alpha1 {
287287
environmentd_image_ref: value.spec.environmentd_image_ref,
288288
environmentd_extra_args: value.spec.environmentd_extra_args,
289289
environmentd_extra_env: value.spec.environmentd_extra_env,
290-
environmentd_iam_role_arn: value.spec.environmentd_iam_role_arn,
290+
environmentd_iam_role_arn: None,
291291
environmentd_connection_role_arn: value.spec.environmentd_connection_role_arn,
292292
environmentd_resource_requirements: value
293293
.spec
@@ -374,16 +374,6 @@ pub mod v1alpha2 {
374374
pub environmentd_extra_args: Option<Vec<String>>,
375375
/// Extra environment variables to pass to the environmentd binary.
376376
pub environmentd_extra_env: Option<Vec<EnvVar>>,
377-
/// {{<warning>}}
378-
/// Deprecated.
379-
///
380-
/// Use `service_account_annotations` to set "eks.amazonaws.com/role-arn" instead.
381-
/// {{</warning>}}
382-
///
383-
/// If running in AWS, override the IAM role to use to give
384-
/// environmentd access to the persist S3 bucket.
385-
#[kube(deprecated)]
386-
pub environmentd_iam_role_arn: Option<String>,
387377
/// If running in AWS, override the IAM role to use to support
388378
/// the CREATE CONNECTION feature.
389379
pub environmentd_connection_role_arn: Option<String>,
@@ -505,7 +495,6 @@ pub mod v1alpha2 {
505495
environmentd_image_ref: self.spec.environmentd_image_ref.clone(),
506496
environmentd_extra_args: self.spec.environmentd_extra_args.clone(),
507497
environmentd_extra_env: self.spec.environmentd_extra_env.clone(),
508-
environmentd_iam_role_arn: self.spec.environmentd_iam_role_arn.clone(),
509498
environmentd_connection_role_arn: self
510499
.spec
511500
.environmentd_connection_role_arn
@@ -965,13 +954,23 @@ pub mod v1alpha2 {
965954
impl From<v1alpha1::Materialize> for Materialize {
966955
fn from(value: v1alpha1::Materialize) -> Self {
967956
let is_promoting = value.is_promoting();
957+
let service_account_annotations = if let Some(environmentd_iam_role_arn) =
958+
value.spec.environmentd_iam_role_arn
959+
{
960+
let mut annotations = value.spec.service_account_annotations.unwrap_or_default();
961+
annotations
962+
.entry("eks.amazonaws.com/role-arn".to_owned())
963+
.or_insert(environmentd_iam_role_arn);
964+
Some(annotations)
965+
} else {
966+
value.spec.service_account_annotations
967+
};
968968
let mut mz = Materialize {
969969
metadata: value.metadata,
970970
spec: MaterializeSpec {
971971
environmentd_image_ref: value.spec.environmentd_image_ref,
972972
environmentd_extra_args: value.spec.environmentd_extra_args,
973973
environmentd_extra_env: value.spec.environmentd_extra_env,
974-
environmentd_iam_role_arn: value.spec.environmentd_iam_role_arn,
975974
environmentd_connection_role_arn: value.spec.environmentd_connection_role_arn,
976975
environmentd_resource_requirements: value
977976
.spec
@@ -984,7 +983,7 @@ pub mod v1alpha2 {
984983
balancerd_replicas: value.spec.balancerd_replicas,
985984
console_replicas: value.spec.console_replicas,
986985
service_account_name: value.spec.service_account_name,
987-
service_account_annotations: value.spec.service_account_annotations,
986+
service_account_annotations,
988987
service_account_labels: value.spec.service_account_labels,
989988
pod_annotations: value.spec.pod_annotations,
990989
pod_labels: value.spec.pod_labels,

src/orchestratord/src/controller/materialize/global.rs

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
// the Business Source License, use of this software will be governed
88
// by the Apache License, Version 2.0.
99

10-
use std::collections::BTreeMap;
11-
1210
use k8s_openapi::{
1311
api::{
1412
core::v1::ServiceAccount,
@@ -23,12 +21,11 @@ use k8s_openapi::{
2321
use kube::{Api, Client, ResourceExt, api::ObjectMeta, runtime::controller::Action};
2422
use maplit::btreemap;
2523
use serde::Serialize;
26-
use tracing::{trace, warn};
24+
use tracing::trace;
2725

2826
use super::Error;
2927
use crate::k8s::apply_resource;
3028
use crate::tls::create_certificate;
31-
use mz_cloud_provider::CloudProvider;
3229
use mz_cloud_resources::crd::materialize::v1alpha2::Materialize;
3330
use mz_cloud_resources::crd::{
3431
ManagedResource,
@@ -49,7 +46,7 @@ impl Resources {
4946
pub fn new(config: &super::Config, mz: &Materialize) -> Self {
5047
let environmentd_network_policies = create_environmentd_network_policies(config, mz);
5148

52-
let service_account = Box::new(create_service_account_object(config, mz));
49+
let service_account = Box::new(create_service_account_object(mz));
5350
let role = Box::new(create_role_object(mz));
5451
let role_binding = Box::new(create_role_binding_object(mz));
5552
let environmentd_certificate = Box::new(create_environmentd_certificate(config, mz));
@@ -284,37 +281,21 @@ fn create_environmentd_network_policies(
284281
network_policies
285282
}
286283

287-
fn create_service_account_object(
288-
config: &super::Config,
289-
mz: &Materialize,
290-
) -> Option<ServiceAccount> {
284+
fn create_service_account_object(mz: &Materialize) -> Option<ServiceAccount> {
291285
if mz.create_service_account() {
292-
let mut annotations: BTreeMap<String, String> = mz
286+
let annotations = mz
293287
.spec
294288
.service_account_annotations
295289
.clone()
296290
.unwrap_or_default();
297-
if let (CloudProvider::Aws, Some(role_arn)) = (
298-
config.cloud_provider,
299-
mz.spec
300-
.environmentd_iam_role_arn
301-
.as_deref()
302-
.or(config.environmentd_iam_role_arn.as_deref()),
303-
) {
304-
warn!(
305-
"Use of Materialize.spec.environmentd_iam_role_arn is deprecated. Please set \"eks.amazonaws.com/role-arn\" in Materialize.spec.service_account_annotations instead."
306-
);
307-
annotations.insert(
308-
"eks.amazonaws.com/role-arn".to_string(),
309-
role_arn.to_string(),
310-
);
311-
};
312291

313292
let mut labels = mz.default_labels();
314293
labels.extend(mz.spec.service_account_labels.clone().unwrap_or_default());
315294

316295
Some(ServiceAccount {
317296
metadata: ObjectMeta {
297+
// Explicitly using Some here even if they don't have any defined,
298+
// to handle when the user removes annotations/labels.
318299
annotations: Some(annotations),
319300
labels: Some(labels),
320301
..mz.managed_resource_meta(mz.service_account_name())

0 commit comments

Comments
 (0)