qontract-reconcile 0.10.1rc1056__py3-none-any.whl → 0.10.1rc1058__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/METADATA +1 -1
- {qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/RECORD +12 -12
- reconcile/gql_definitions/common/saas_files.py +2 -0
- reconcile/saas_auto_promotions_manager/publisher.py +2 -2
- reconcile/saas_auto_promotions_manager/s3_exporter.py +2 -1
- reconcile/saas_auto_promotions_manager/utils/saas_files_inventory.py +4 -4
- reconcile/test/saas_auto_promotions_manager/conftest.py +1 -1
- reconcile/test/test_saasherder.py +2 -0
- reconcile/utils/terraform_client.py +12 -0
- {qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/WHEEL +0 -0
- {qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/entry_points.txt +0 -0
- {qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/top_level.txt +0 -0
{qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: qontract-reconcile
|
3
|
-
Version: 0.10.
|
3
|
+
Version: 0.10.1rc1058
|
4
4
|
Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
|
5
5
|
Home-page: https://github.com/app-sre/qontract-reconcile
|
6
6
|
Author: Red Hat App-SRE Team
|
{qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/RECORD
RENAMED
@@ -269,7 +269,7 @@ reconcile/gql_definitions/common/pipeline_providers.py,sha256=JJgmmghqLIwjKOdcWY
|
|
269
269
|
reconcile/gql_definitions/common/quay_instances.py,sha256=toBkdYYVTmEafezAHZKgaW-mQ29xEW6jeronzsAlNyI,1786
|
270
270
|
reconcile/gql_definitions/common/quay_orgs.py,sha256=NhA8kqvVUDbrsryEvEL5mlIv5R3T4XNhSRXtfL_yptY,1788
|
271
271
|
reconcile/gql_definitions/common/reserved_networks.py,sha256=yP9qSQCaSQcva-ZgTnZp09qH27ur5_qK080ToIs04MY,2560
|
272
|
-
reconcile/gql_definitions/common/saas_files.py,sha256=
|
272
|
+
reconcile/gql_definitions/common/saas_files.py,sha256=i0U0Ot4DwE3LjigD4ex_ASOPWfSZEpX_4ZrRaWlUhW8,16854
|
273
273
|
reconcile/gql_definitions/common/saas_target_namespaces.py,sha256=4VYP2VbwY8WVwtSFk2-jsUNhSmRD3X4FWKxetOKvmd0,2835
|
274
274
|
reconcile/gql_definitions/common/saasherder_settings.py,sha256=nqQLcMwYxLseqq0BEcVvmrpIj2eQq0h8XDSpLN6GGCw,1793
|
275
275
|
reconcile/gql_definitions/common/slack_workspaces.py,sha256=2o0kgi4QiaRuNmZJnc_By4F6NsKIdRaXkrufRQw7Nok,1753
|
@@ -443,8 +443,8 @@ reconcile/rhidp/sso_client/metrics.py,sha256=Tq7tSOsqL3XdcPUdozxqzSPIodUeOV87UCT
|
|
443
443
|
reconcile/saas_auto_promotions_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
444
444
|
reconcile/saas_auto_promotions_manager/integration.py,sha256=haXTpwi0rEQtN9-MadBzFvSNtbxw5QQuFpMQLg3bZlQ,6707
|
445
445
|
reconcile/saas_auto_promotions_manager/meta.py,sha256=76Jp50r6Y_KyJoXFfSjrt5YrCtXyg_A4FXXxHYiS3TE,161
|
446
|
-
reconcile/saas_auto_promotions_manager/publisher.py,sha256=
|
447
|
-
reconcile/saas_auto_promotions_manager/s3_exporter.py,sha256=
|
446
|
+
reconcile/saas_auto_promotions_manager/publisher.py,sha256=_VdmCTiPpOBQBkGRpD6528TGdOV90wRme1q8ep_qo48,2993
|
447
|
+
reconcile/saas_auto_promotions_manager/s3_exporter.py,sha256=Y-r5R6viiAzglUHbYKItYSjT_axmLlPEJVmu_H6N170,2682
|
448
448
|
reconcile/saas_auto_promotions_manager/subscriber.py,sha256=kIJKT1Xg5FF7EGT5ayK5ROyu_S7FbsYK91WBqrtYjfA,10030
|
449
449
|
reconcile/saas_auto_promotions_manager/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
450
450
|
reconcile/saas_auto_promotions_manager/merge_request_manager/batcher.py,sha256=R2CRtjdOggY5lSqt-A5qz2ymqomx4opVeVV_oqBAW0A,7804
|
@@ -456,7 +456,7 @@ reconcile/saas_auto_promotions_manager/merge_request_manager/mr_parser.py,sha256
|
|
456
456
|
reconcile/saas_auto_promotions_manager/merge_request_manager/open_merge_requests.py,sha256=-qGQOh6Jdp4lomNDij3zWVC0pl6uPHFWS5Woqcp5HQk,410
|
457
457
|
reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py,sha256=rnY9CR_0ONDJdJhGaGOQ9yBlKV0bPXQKh9Ped-NA2To,7245
|
458
458
|
reconcile/saas_auto_promotions_manager/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
459
|
-
reconcile/saas_auto_promotions_manager/utils/saas_files_inventory.py,sha256=
|
459
|
+
reconcile/saas_auto_promotions_manager/utils/saas_files_inventory.py,sha256=wj7x3DIoetLX5QeaorTH0i8QC5GWsqahbUOrUb0AzJk,8830
|
460
460
|
reconcile/skupper_network/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
461
461
|
reconcile/skupper_network/integration.py,sha256=oZIVDBRcQPC-lWxNFiJhGbtCM7Yj7fjwAzYZ8JvVe3I,10789
|
462
462
|
reconcile/skupper_network/models.py,sha256=HEwlVKsbmMaKaaBGvITIiSYNEVdjwXVhLaOJgLSZ2xQ,6604
|
@@ -553,7 +553,7 @@ reconcile/test/test_quay_repos.py,sha256=TdkcRF_a8PLp01Kti9eZZN-vGup2yPBT4Iba3k0
|
|
553
553
|
reconcile/test/test_queries.py,sha256=SpH3RmNpBjEr_ne3VjAMCgKK8RE1z1zo7bypkT5uoO4,1946
|
554
554
|
reconcile/test/test_repo_owners.py,sha256=uRYMLbMmh-9usF0TerabZTZV-Z1CS4I6ybT-LQqCLe8,1423
|
555
555
|
reconcile/test/test_requests_sender.py,sha256=7fd9C2kEFS0-CYtlsif66N1kO9c44pzuBPAJKR9igqU,5385
|
556
|
-
reconcile/test/test_saasherder.py,sha256
|
556
|
+
reconcile/test/test_saasherder.py,sha256=-WGgAsrTm_SJ0OQDLXd4JwEu1Mc6i4AePJqjZQTaRew,58114
|
557
557
|
reconcile/test/test_saasherder_allowed_secret_paths.py,sha256=5NHQwNJO66at6HiyMZ5sVRTQDwxdvlOQo0KmkBWCw5Q,4853
|
558
558
|
reconcile/test/test_secret_reader.py,sha256=kz7nzcPjvA08cytnvcA_PMA98AEyqJWsESkYeRn5xCk,4994
|
559
559
|
reconcile/test/test_slack_base.py,sha256=pTUGvJ2S2wF3PhJyGWmiNXG52QtXKy2cbu-G8Ymrv6I,5019
|
@@ -578,7 +578,7 @@ reconcile/test/test_version_bump.py,sha256=q6-3Y1roriI6YWpFwaHOMN7emEP3yL33sh_0V
|
|
578
578
|
reconcile/test/test_vpc_peerings_validator.py,sha256=dFSmjc_dMN2GqMbntCFpa7PUZmyYuQ9DKffh-T5wmxM,6639
|
579
579
|
reconcile/test/test_wrong_region.py,sha256=7KzL7OaICQ9Z3DW27zt_ykMN7_87owAFC-2CYjvGoyA,2138
|
580
580
|
reconcile/test/saas_auto_promotions_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
581
|
-
reconcile/test/saas_auto_promotions_manager/conftest.py,sha256=
|
581
|
+
reconcile/test/saas_auto_promotions_manager/conftest.py,sha256=m4gOYQIOO9Br9r26erJLXxO6b1IfVKO-QQPm8k2qD5Y,6094
|
582
582
|
reconcile/test/saas_auto_promotions_manager/test_integration_test.py,sha256=S30eXJSy2Vc3YLbCP7AfLkOiFGUVoKhEvEBL5vwnbfg,1848
|
583
583
|
reconcile/test/saas_auto_promotions_manager/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
584
584
|
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -724,7 +724,7 @@ reconcile/utils/sqs_gateway.py,sha256=XNIf3PY4UCPNufP2Ul0UJj3fKlt5larBba-VTT-41F
|
|
724
724
|
reconcile/utils/state.py,sha256=W0_awkLAPX18hNOF_60o73tkPxDUylqbzYNHfl_sDsk,16386
|
725
725
|
reconcile/utils/structs.py,sha256=LcbLEg8WxfRqM6nW7NhcWN0YeqF7SQzxOgntmLs1SgY,352
|
726
726
|
reconcile/utils/template.py,sha256=wTvRU4AnAV_o042tD4Mwls2dwWMuk7MKnde3MaCjaYg,331
|
727
|
-
reconcile/utils/terraform_client.py,sha256=
|
727
|
+
reconcile/utils/terraform_client.py,sha256=gyTqNyDn0uQISxnfXOWv8HpXSM1-yqvwDiVGIW0jpRk,35215
|
728
728
|
reconcile/utils/terrascript_aws_client.py,sha256=ctNT-TQSMxNicVIjR1gM2OZWzNc_BG820COSXb_E-CE,278933
|
729
729
|
reconcile/utils/three_way_diff_strategy.py,sha256=oQcHXd9LVhirJfoaOBoHUYuZVGfyL2voKr6KVI34zZE,4833
|
730
730
|
reconcile/utils/throughput.py,sha256=iP4UWAe2LVhDo69mPPmgo9nQ7RxHD6_GS8MZe-aSiuM,344
|
@@ -867,8 +867,8 @@ tools/test/test_qontract_cli.py,sha256=_D61RFGAN5x44CY1tYbouhlGXXABwYfxKSWSQx3Jr
|
|
867
867
|
tools/test/test_saas_promotion_state.py,sha256=dy4kkSSAQ7bC0Xp2CociETGN-2aABEfL6FU5D9Jl00Y,6056
|
868
868
|
tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
|
869
869
|
tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
|
870
|
-
qontract_reconcile-0.10.
|
871
|
-
qontract_reconcile-0.10.
|
872
|
-
qontract_reconcile-0.10.
|
873
|
-
qontract_reconcile-0.10.
|
874
|
-
qontract_reconcile-0.10.
|
870
|
+
qontract_reconcile-0.10.1rc1058.dist-info/METADATA,sha256=AB6P6QPlXVA-dC5bWhBQqe7u-ZA6gKAP7fNq4a3NunA,2213
|
871
|
+
qontract_reconcile-0.10.1rc1058.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
872
|
+
qontract_reconcile-0.10.1rc1058.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
|
873
|
+
qontract_reconcile-0.10.1rc1058.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
|
874
|
+
qontract_reconcile-0.10.1rc1058.dist-info/RECORD,,
|
@@ -265,6 +265,7 @@ query SaasFiles {
|
|
265
265
|
auto
|
266
266
|
publish
|
267
267
|
subscribe
|
268
|
+
redeployOnPublisherConfigChange
|
268
269
|
soakDays
|
269
270
|
schedule
|
270
271
|
promotion_data {
|
@@ -472,6 +473,7 @@ class SaasResourceTemplateTargetPromotionV1(ConfiguredBaseModel):
|
|
472
473
|
auto: Optional[bool] = Field(..., alias="auto")
|
473
474
|
publish: Optional[list[str]] = Field(..., alias="publish")
|
474
475
|
subscribe: Optional[list[str]] = Field(..., alias="subscribe")
|
476
|
+
redeploy_on_publisher_config_change: Optional[bool] = Field(..., alias="redeployOnPublisherConfigChange")
|
475
477
|
soak_days: Optional[int] = Field(..., alias="soakDays")
|
476
478
|
schedule: Optional[str] = Field(..., alias="schedule")
|
477
479
|
promotion_data: Optional[list[PromotionDataV1]] = Field(..., alias="promotion_data")
|
@@ -39,7 +39,7 @@ class Publisher:
|
|
39
39
|
target_name: str | None,
|
40
40
|
cluster_name: str,
|
41
41
|
auth_code: HasSecret | None,
|
42
|
-
|
42
|
+
redeploy_on_config_change: bool | None,
|
43
43
|
has_subscriber: bool = True,
|
44
44
|
):
|
45
45
|
self._ref = ref
|
@@ -56,7 +56,7 @@ class Publisher:
|
|
56
56
|
self.resource_template_name = resource_template_name
|
57
57
|
self.target_name = target_name if target_name else "None"
|
58
58
|
self.cluster_name = cluster_name
|
59
|
-
self.
|
59
|
+
self.redeploy_on_config_change = bool(redeploy_on_config_change)
|
60
60
|
self.has_subscriber = has_subscriber
|
61
61
|
|
62
62
|
def fetch_commit_shas_and_deployment_info(
|
@@ -62,7 +62,8 @@ class S3Exporter:
|
|
62
62
|
data: dict[str, dict] = {}
|
63
63
|
for publisher in publishers:
|
64
64
|
publisher_data = PublisherData.from_publisher(publisher)
|
65
|
-
|
65
|
+
# Note, redeploy_on_config_change indicates that this publisher is a test job
|
66
|
+
key = f"{publisher.app_name}/{publisher.saas_name}/{publisher.resource_template_name}/{publisher.target_name}/{publisher.cluster_name}/{publisher.namespace_name}/{publisher.redeploy_on_config_change}"
|
66
67
|
data[key] = {
|
67
68
|
"commit_sha": publisher_data.commit_sha,
|
68
69
|
"deployment_state": publisher_data.deployment_state.value,
|
@@ -65,8 +65,8 @@ class SaasFilesInventory:
|
|
65
65
|
cluster_name=target.namespace.cluster.name,
|
66
66
|
resource_template_name=resource_template.name,
|
67
67
|
target_name=target.name,
|
68
|
-
publish_job_logs=saas_file.publish_job_logs,
|
69
68
|
auth_code=auth_code,
|
69
|
+
redeploy_on_config_change=target.promotion.redeploy_on_publisher_config_change,
|
70
70
|
)
|
71
71
|
|
72
72
|
has_subscriber = False
|
@@ -122,9 +122,9 @@ class SaasFilesInventory:
|
|
122
122
|
blocked_versions=blocked_versions.get(
|
123
123
|
resource_template.url, set()
|
124
124
|
),
|
125
|
-
|
126
|
-
|
127
|
-
|
125
|
+
use_target_config_hash=bool(
|
126
|
+
target.promotion.redeploy_on_publisher_config_change
|
127
|
+
),
|
128
128
|
)
|
129
129
|
self.subscribers.append(subscriber)
|
130
130
|
for prom_data in target.promotion.promotion_data or []:
|
@@ -164,6 +164,7 @@ class TestSaasFileValid(TestCase):
|
|
164
164
|
auto=True,
|
165
165
|
publish=None,
|
166
166
|
subscribe=None,
|
167
|
+
redeployOnPublisherConfigChange=None,
|
167
168
|
promotion_data=None,
|
168
169
|
soakDays=0,
|
169
170
|
schedule="* * * * *",
|
@@ -190,6 +191,7 @@ class TestSaasFileValid(TestCase):
|
|
190
191
|
publish=None,
|
191
192
|
subscribe=None,
|
192
193
|
promotion_data=None,
|
194
|
+
redeployOnPublisherConfigChange=None,
|
193
195
|
soakDays=0,
|
194
196
|
schedule="* * * * *",
|
195
197
|
)
|
@@ -790,6 +790,9 @@ class TerraformClient: # pylint: disable=too-many-public-methods
|
|
790
790
|
|
791
791
|
blue_green_update = after.get("blue_green_update", [])
|
792
792
|
if blue_green_update and blue_green_update[0]["enabled"]:
|
793
|
+
changed_fields = self._resource_diff_changed_fields(
|
794
|
+
"update", resource_change
|
795
|
+
)
|
793
796
|
replica = before["replicas"] != [] or before["replicate_source_db"]
|
794
797
|
self.validate_blue_green_update_requirements(
|
795
798
|
account_name,
|
@@ -799,6 +802,7 @@ class TerraformClient: # pylint: disable=too-many-public-methods
|
|
799
802
|
replica,
|
800
803
|
before["parameter_group_name"],
|
801
804
|
region_name,
|
805
|
+
changed_fields=changed_fields,
|
802
806
|
)
|
803
807
|
|
804
808
|
def validate_blue_green_update_requirements(
|
@@ -810,6 +814,7 @@ class TerraformClient: # pylint: disable=too-many-public-methods
|
|
810
814
|
replica: bool,
|
811
815
|
parameter_group: str,
|
812
816
|
region_name: str,
|
817
|
+
changed_fields: set[str],
|
813
818
|
) -> None:
|
814
819
|
min_supported_versions = {
|
815
820
|
"mysql": [pkg_version.parse("5.7"), pkg_version.parse("8.0.15")],
|
@@ -862,6 +867,13 @@ class TerraformClient: # pylint: disable=too-many-public-methods
|
|
862
867
|
)
|
863
868
|
return
|
864
869
|
|
870
|
+
if "storage_type" in changed_fields or "allocated_storage" in changed_fields:
|
871
|
+
logging.error(
|
872
|
+
f"Cannot upgrade RDS instance: {resource_name}. "
|
873
|
+
f"Blue/green updates are not supported when 'storage_type' or 'allocated_storage' has changed."
|
874
|
+
)
|
875
|
+
return
|
876
|
+
|
865
877
|
|
866
878
|
class TerraformPlanFailed(Exception):
|
867
879
|
pass
|
{qontract_reconcile-0.10.1rc1056.dist-info → qontract_reconcile-0.10.1rc1058.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|