From 0860f1bbc9e2a63878f46541f7ff585b37a8cbb0 Mon Sep 17 00:00:00 2001 From: vincbeck Date: Thu, 18 Jul 2024 15:15:49 -0400 Subject: [PATCH 1/2] Fix `RedshiftCreateClusterOperator` to always specify `PubliclyAccessible` --- airflow/providers/amazon/aws/operators/redshift_cluster.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airflow/providers/amazon/aws/operators/redshift_cluster.py b/airflow/providers/amazon/aws/operators/redshift_cluster.py index 107a2cc5d66d0..9fff7be5b9aed 100644 --- a/airflow/providers/amazon/aws/operators/redshift_cluster.py +++ b/airflow/providers/amazon/aws/operators/redshift_cluster.py @@ -256,8 +256,6 @@ def execute(self, context: Context): params["ClusterVersion"] = self.cluster_version if self.allow_version_upgrade: params["AllowVersionUpgrade"] = self.allow_version_upgrade - if self.publicly_accessible: - params["PubliclyAccessible"] = self.publicly_accessible if self.encrypted: params["Encrypted"] = self.encrypted if self.hsm_client_certificate_identifier: @@ -287,6 +285,8 @@ def execute(self, context: Context): if self.default_iam_role_arn: params["DefaultIamRoleArn"] = self.default_iam_role_arn + params["PubliclyAccessible"] = self.publicly_accessible + cluster = redshift_hook.create_cluster( self.cluster_identifier, self.node_type, From 46e1c6a5c7227428768dc705ad9b3d6ace432c3b Mon Sep 17 00:00:00 2001 From: vincbeck Date: Thu, 18 Jul 2024 15:36:18 -0400 Subject: [PATCH 2/2] Add comment --- airflow/providers/amazon/aws/operators/redshift_cluster.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/airflow/providers/amazon/aws/operators/redshift_cluster.py b/airflow/providers/amazon/aws/operators/redshift_cluster.py index 9fff7be5b9aed..f31b7db09ad77 100644 --- a/airflow/providers/amazon/aws/operators/redshift_cluster.py +++ b/airflow/providers/amazon/aws/operators/redshift_cluster.py @@ -285,6 +285,8 @@ def execute(self, context: Context): if self.default_iam_role_arn: params["DefaultIamRoleArn"] = self.default_iam_role_arn + # PubliclyAccessible is True by default on Redshift side, hence, we should always set it regardless + # of its value params["PubliclyAccessible"] = self.publicly_accessible cluster = redshift_hook.create_cluster(