qontract-reconcile 0.10.2.dev278__py3-none-any.whl → 0.10.2.dev280__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.2.dev278.dist-info → qontract_reconcile-0.10.2.dev280.dist-info}/METADATA +1 -1
- {qontract_reconcile-0.10.2.dev278.dist-info → qontract_reconcile-0.10.2.dev280.dist-info}/RECORD +13 -13
- reconcile/aus/base.py +8 -41
- reconcile/external_resources/aws.py +1 -1
- reconcile/external_resources/model.py +11 -11
- reconcile/external_resources/state.py +4 -4
- reconcile/run_integration.py +1 -1
- reconcile/utils/jobcontroller/models.py +8 -8
- reconcile/utils/ocm/upgrades.py +0 -20
- reconcile/utils/terrascript_aws_client.py +5 -3
- tools/qontract_cli.py +3 -0
- {qontract_reconcile-0.10.2.dev278.dist-info → qontract_reconcile-0.10.2.dev280.dist-info}/WHEEL +0 -0
- {qontract_reconcile-0.10.2.dev278.dist-info → qontract_reconcile-0.10.2.dev280.dist-info}/entry_points.txt +0 -0
{qontract_reconcile-0.10.2.dev278.dist-info → qontract_reconcile-0.10.2.dev280.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: qontract-reconcile
|
3
|
-
Version: 0.10.2.
|
3
|
+
Version: 0.10.2.dev280
|
4
4
|
Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
|
5
5
|
Project-URL: homepage, https://github.com/app-sre/qontract-reconcile
|
6
6
|
Project-URL: repository, https://github.com/app-sre/qontract-reconcile
|
{qontract_reconcile-0.10.2.dev278.dist-info → qontract_reconcile-0.10.2.dev280.dist-info}/RECORD
RENAMED
@@ -93,7 +93,7 @@ reconcile/query_validator.py,sha256=MSh5pKLBksws4AqfuvT8nrIGucIbqX-IOzYyPYTLO7k,
|
|
93
93
|
reconcile/requests_sender.py,sha256=914iluuF4UVgG3VyxxtnHOu4yf6YKS2fIy6PViSsFTQ,3875
|
94
94
|
reconcile/resource_scraper.py,sha256=znXCHrU7YwPfKuxGBiUrV7T1tYtn4vlz9qmZlfy6Flg,2307
|
95
95
|
reconcile/resource_template_tester.py,sha256=DsKvBuNLPxm4Fa-e1YHHySnhThm5i_j-nF3G4b02Mz0,2416
|
96
|
-
reconcile/run_integration.py,sha256=
|
96
|
+
reconcile/run_integration.py,sha256=M2rIpcx7k0vGkTHdgm0h1efLOWiJ-O2WbYPHKtvIpWA,10214
|
97
97
|
reconcile/saas_file_validator.py,sha256=tyvFYU6lnkfDYIkAIr5pWqSvO5Yc6TagZ-quJYD2dtI,2547
|
98
98
|
reconcile/sendgrid_teammates.py,sha256=oO8QbLb4s1o8A6CGiCagN9CmS05BSS_WLztuY0Ym9D8,4773
|
99
99
|
reconcile/service_dependencies.py,sha256=KydjllianL0lUwhroBAPui7jrnhHSq7j2PB6CoV2nuU,4349
|
@@ -117,7 +117,7 @@ reconcile/vpc_peerings_validator.py,sha256=aESqrhm1tpkc2iqSL1UV5to_HjNgjRSffD0cr
|
|
117
117
|
reconcile/aus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
118
|
reconcile/aus/advanced_upgrade_service.py,sha256=Cx-WthkvlcX58PrnnNeo_bQG17Xw3BGNu3f53Jc1VoA,23985
|
119
119
|
reconcile/aus/aus_label_source.py,sha256=o0S2f0qwcII_8nzhHZhRQ83gEZ1DrSXyO4xzSwLebuU,4382
|
120
|
-
reconcile/aus/base.py,sha256=
|
120
|
+
reconcile/aus/base.py,sha256=Gd76QvSO2PjINjsth7sEeJPrD1a0TLYtpgNzTWIzj2w,50016
|
121
121
|
reconcile/aus/cluster_version_data.py,sha256=VZWbUEIbrDKO-sroMpQtiWCTqDraTMd8tssKV0HyTQ0,7140
|
122
122
|
reconcile/aus/healthchecks.py,sha256=jR9c-syh9impnkV0fd6XW3Bnk7iRN5zv8oCRYM-yIRY,2700
|
123
123
|
reconcile/aus/metrics.py,sha256=BhIvZVTn25fIzijz3xFynJngS2sXDBTxxprUUVWJcFo,4246
|
@@ -184,17 +184,17 @@ reconcile/endpoints_discovery/integration.py,sha256=P63yx5OPlLEFKMDTk5vR9AX3ve8P
|
|
184
184
|
reconcile/endpoints_discovery/merge_request.py,sha256=_yLb4tnvoZMCko8rta2C_CvOInJa9pa3HzSmHNtjgGU,2978
|
185
185
|
reconcile/endpoints_discovery/merge_request_manager.py,sha256=a8zTIQIpRrUwXexZClwpQnnkEoS6XNZLJziI9x7ly0s,6389
|
186
186
|
reconcile/external_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
187
|
-
reconcile/external_resources/aws.py,sha256=
|
187
|
+
reconcile/external_resources/aws.py,sha256=kh5p9KsYB7naewVPLPtcCjnIrUECmdR6lUgDrzIlL1k,11985
|
188
188
|
reconcile/external_resources/factories.py,sha256=C0QHT0soEv6z99-ELAAE19S5MaMHhV0t1fSiQn0Coc4,5970
|
189
189
|
reconcile/external_resources/integration.py,sha256=WF6O4rT0oUHbNaWEemjLLzCqdNSQIUaymUuj08VsIl8,7034
|
190
190
|
reconcile/external_resources/integration_secrets_sync.py,sha256=M2uOFi2JXWhiw3hQyE_4NVPQmPIYGHlghRti5eLWhkw,1738
|
191
191
|
reconcile/external_resources/manager.py,sha256=Wb1Qk4aVwag5Godo2OGzRsgHZJ9d3nkwqOzCmqptrXs,18257
|
192
192
|
reconcile/external_resources/meta.py,sha256=noaytFzmShpzLA_ebGh7wuP45mOfHIOnnoUxivjDa1I,672
|
193
193
|
reconcile/external_resources/metrics.py,sha256=KiBjMUaN_z0cSkF_7Ar_a8RiuiwVqjyMcVdISlxhzXE,3898
|
194
|
-
reconcile/external_resources/model.py,sha256=
|
194
|
+
reconcile/external_resources/model.py,sha256=o_39sJPIo0-d-oYHAB97lg6cBnxJX6NA0DvF1Egy0_o,14889
|
195
195
|
reconcile/external_resources/reconciler.py,sha256=wB8cB5pmqDJ1_t5_Aly4mrULGnI3OQaKqUZCB_Z9RWw,9573
|
196
196
|
reconcile/external_resources/secrets_sync.py,sha256=lLhsB5mVJTnumkGVT0tnkCW9VHcUHBG35gziOS2ojSg,16218
|
197
|
-
reconcile/external_resources/state.py,sha256=
|
197
|
+
reconcile/external_resources/state.py,sha256=xRciI7xgMxhn1f5VzL4h5usXsGkibYQxrMT1h7n03gE,13367
|
198
198
|
reconcile/fleet_labeler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
199
199
|
reconcile/fleet_labeler/dependencies.py,sha256=MFiSfT25Ks0X3iQxwayNvFX_l6bQi97f3IiaNR1wtHc,3173
|
200
200
|
reconcile/fleet_labeler/integration.py,sha256=HGlUJe5BCfAgk7YCxxsIteB8LH1pL8led-KfaIVh214,14614
|
@@ -658,7 +658,7 @@ reconcile/utils/sqs_gateway.py,sha256=XNIf3PY4UCPNufP2Ul0UJj3fKlt5larBba-VTT-41F
|
|
658
658
|
reconcile/utils/state.py,sha256=h5iAfNf1p_wf79Z09XNZ5C_YVrIqUmhhl_DWqnFrwT0,16364
|
659
659
|
reconcile/utils/structs.py,sha256=LcbLEg8WxfRqM6nW7NhcWN0YeqF7SQzxOgntmLs1SgY,352
|
660
660
|
reconcile/utils/terraform_client.py,sha256=0NCYluGnFooxbgxSHyxoU_Hj3WUVZ-HqpLZI6ZmzJ1E,37301
|
661
|
-
reconcile/utils/terrascript_aws_client.py,sha256=
|
661
|
+
reconcile/utils/terrascript_aws_client.py,sha256=69n4alIE6jFd_J5t_NNzq54I8FCkFVkKT3xTohbWiN0,292495
|
662
662
|
reconcile/utils/three_way_diff_strategy.py,sha256=oQcHXd9LVhirJfoaOBoHUYuZVGfyL2voKr6KVI34zZE,4833
|
663
663
|
reconcile/utils/throughput.py,sha256=iP4UWAe2LVhDo69mPPmgo9nQ7RxHD6_GS8MZe-aSiuM,344
|
664
664
|
reconcile/utils/vault.py,sha256=6V15LByFghp-U3k0N4lum6V7qt2EAlRfcAxjy5e-FAU,15146
|
@@ -697,7 +697,7 @@ reconcile/utils/jinja2/filters.py,sha256=JfO_14APySBPidsMvHXG-8dULNPddZCE15Umjk_
|
|
697
697
|
reconcile/utils/jinja2/utils.py,sha256=z20GzZsksQzbcahCwfbffHj6PU-JTifH0JzMZdPP7hU,9138
|
698
698
|
reconcile/utils/jobcontroller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
699
699
|
reconcile/utils/jobcontroller/controller.py,sha256=Vh08lZuCSIIceWGSDhBB00iFwTI9eeKZW1sfHlkAvSo,15373
|
700
|
-
reconcile/utils/jobcontroller/models.py,sha256=
|
700
|
+
reconcile/utils/jobcontroller/models.py,sha256=nfJ-w7DtDC5IZ5YD3YX8ytl61rnZUaa-Sbq3IjWEJwI,6296
|
701
701
|
reconcile/utils/membershipsources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
702
702
|
reconcile/utils/membershipsources/app_interface_resolver.py,sha256=MqDFvK3aXhmmMuMiIygC-onFVrrIopKHriaYJQ5jnuY,1988
|
703
703
|
reconcile/utils/membershipsources/models.py,sha256=yuEbG4HJ3NOEpSS9EH7OAx1U-uiRW-QmNMAZJe1Rb-U,1898
|
@@ -737,7 +737,7 @@ reconcile/utils/ocm/sre_capability_labels.py,sha256=nqh0imrYczNeeeC7ZNX3pEwuAIVk
|
|
737
737
|
reconcile/utils/ocm/status_board.py,sha256=8DYeIrOsW8Bh5PCtKdvGGpaxb9Wugcc5rLxZJ8Z7b_s,4181
|
738
738
|
reconcile/utils/ocm/subscriptions.py,sha256=hehKXsDXIhnhqvWOuiYvx6y2FGq3zt0APGYj7WiBIdI,2765
|
739
739
|
reconcile/utils/ocm/syncsets.py,sha256=9IQm1l5BodOVZa2OFbQmow3afmh4nXe5pn-CCJ5LxTI,1169
|
740
|
-
reconcile/utils/ocm/upgrades.py,sha256=
|
740
|
+
reconcile/utils/ocm/upgrades.py,sha256=W8-sLgETI_418ftY9vBlXswyjx_KdhJTJO9cwBL3hfY,4162
|
741
741
|
reconcile/utils/rosa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
742
742
|
reconcile/utils/rosa/rosa_cli.py,sha256=zV8kKG5s3oFJwyW3E7xxNzqSE7JydrmBx169Jxm8sew,11331
|
743
743
|
reconcile/utils/rosa/session.py,sha256=CwlQJ7eEfaMjVOt_6KoNJZc4oQj-iC-EOZq8eSGzjuI,6861
|
@@ -771,7 +771,7 @@ tools/app_sre_tekton_access_reporter.py,sha256=5qmkevJdlb2j_lpGC5Pu1Pmo0eomX5Zxz
|
|
771
771
|
tools/app_sre_tekton_access_revalidation.py,sha256=vwL1o_j7oSTOhrHNH1znpgjA2LHGzb8yc5iG3aaY4m0,2684
|
772
772
|
tools/glitchtip_access_reporter.py,sha256=wnaiDGW4MkYONV_erltnJ6nGkEj0kQrAiv04NNnOS0k,2859
|
773
773
|
tools/glitchtip_access_revalidation.py,sha256=jjeLO53LTbz_LfQw3G2Cs8lVLO_6xqU39BYyTH3cEPE,2764
|
774
|
-
tools/qontract_cli.py,sha256=
|
774
|
+
tools/qontract_cli.py,sha256=JrITQaYuYtJVmfdvwrGtlPHDExSVYYwDOjNBADN6YWc,159332
|
775
775
|
tools/template_validation.py,sha256=Xn9X4sGFznx-rvBDnq9Kq16rfET8V3bqH1EwavsGBac,3335
|
776
776
|
tools/cli_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
777
777
|
tools/cli_commands/container_images_report.py,sha256=8mAjCS6XR0yD7k0mfiVBlt6xbYU47q_ftdYNi5o5VKE,5566
|
@@ -797,7 +797,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
797
797
|
tools/saas_promotion_state/saas_promotion_state.py,sha256=oF7C4hpIgyMTwTRm3Aun3cDCHIjVar65JoLp6NcJHlU,3909
|
798
798
|
tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
|
799
799
|
tools/sre_checkpoints/util.py,sha256=zEDbGr18ZeHNQwW8pUsr2JRjuXIPz--WAGJxZo9sv_Y,894
|
800
|
-
qontract_reconcile-0.10.2.
|
801
|
-
qontract_reconcile-0.10.2.
|
802
|
-
qontract_reconcile-0.10.2.
|
803
|
-
qontract_reconcile-0.10.2.
|
800
|
+
qontract_reconcile-0.10.2.dev280.dist-info/METADATA,sha256=zKtUMc1Xlh56uTOI7X5kaR83dM12KIhMPQYT7VT7ak4,24501
|
801
|
+
qontract_reconcile-0.10.2.dev280.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
802
|
+
qontract_reconcile-0.10.2.dev280.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
|
803
|
+
qontract_reconcile-0.10.2.dev280.dist-info/RECORD,,
|
reconcile/aus/base.py
CHANGED
@@ -83,8 +83,6 @@ from reconcile.utils.ocm.upgrades import (
|
|
83
83
|
create_control_plane_upgrade_policy,
|
84
84
|
create_node_pool_upgrade_policy,
|
85
85
|
create_upgrade_policy,
|
86
|
-
delete_control_plane_upgrade_policy,
|
87
|
-
delete_upgrade_policy,
|
88
86
|
get_control_plane_upgrade_policies,
|
89
87
|
get_node_pool_upgrade_policies,
|
90
88
|
get_upgrade_policies,
|
@@ -467,7 +465,7 @@ class AddonUpgradePolicy(AbstractUpgradePolicy):
|
|
467
465
|
|
468
466
|
|
469
467
|
class ClusterUpgradePolicy(AbstractUpgradePolicy):
|
470
|
-
"""Class to create
|
468
|
+
"""Class to create ClusterUpgradePolicies in OCM"""
|
471
469
|
|
472
470
|
def create(self, ocm_api: OCMBaseClient) -> None:
|
473
471
|
policy = {
|
@@ -478,11 +476,7 @@ class ClusterUpgradePolicy(AbstractUpgradePolicy):
|
|
478
476
|
create_upgrade_policy(ocm_api, self.cluster.id, policy)
|
479
477
|
|
480
478
|
def delete(self, ocm_api: OCMBaseClient) -> None:
|
481
|
-
|
482
|
-
raise ValueError(
|
483
|
-
"Cannot delete cluster upgrade policy without id (not created yet)"
|
484
|
-
)
|
485
|
-
delete_upgrade_policy(ocm_api, self.cluster.id, self.id)
|
479
|
+
raise NotImplementedError("ClusterUpgradePolicy.delete() not implemented")
|
486
480
|
|
487
481
|
def summarize(self) -> str:
|
488
482
|
details = {
|
@@ -509,11 +503,7 @@ class ControlPlaneUpgradePolicy(AbstractUpgradePolicy):
|
|
509
503
|
create_control_plane_upgrade_policy(ocm_api, self.cluster.id, policy)
|
510
504
|
|
511
505
|
def delete(self, ocm_api: OCMBaseClient) -> None:
|
512
|
-
|
513
|
-
raise ValueError(
|
514
|
-
"Cannot delete controlplane upgrade policy without id (not created yet)"
|
515
|
-
)
|
516
|
-
delete_control_plane_upgrade_policy(ocm_api, self.cluster.id, self.id)
|
506
|
+
raise NotImplementedError("ControlPlaneUpgradePolicy.delete() not implemented")
|
517
507
|
|
518
508
|
def summarize(self) -> str:
|
519
509
|
details = {
|
@@ -527,7 +517,7 @@ class ControlPlaneUpgradePolicy(AbstractUpgradePolicy):
|
|
527
517
|
|
528
518
|
class NodePoolUpgradePolicy(AbstractUpgradePolicy):
|
529
519
|
node_pool: str
|
530
|
-
"""Class to create
|
520
|
+
"""Class to create NodePoolUpgradePolicies in OCM"""
|
531
521
|
|
532
522
|
def create(self, ocm_api: OCMBaseClient) -> None:
|
533
523
|
policy = {
|
@@ -910,38 +900,21 @@ def upgradeable_version(
|
|
910
900
|
def verify_current_should_skip(
|
911
901
|
current_state: Sequence[AbstractUpgradePolicy],
|
912
902
|
desired: ClusterUpgradeSpec,
|
913
|
-
|
914
|
-
addon_id: str = "",
|
915
|
-
) -> tuple[bool, UpgradePolicyHandler | None]:
|
903
|
+
) -> bool:
|
916
904
|
current_policies = [c for c in current_state if c.cluster.id == desired.cluster.id]
|
917
905
|
if not current_policies:
|
918
|
-
return False
|
906
|
+
return False
|
919
907
|
|
920
908
|
# there can only be one upgrade policy per cluster
|
921
909
|
if len(current_policies) != 1:
|
922
910
|
raise ValueError(
|
923
911
|
f"[{desired.org.org_id}/{desired.cluster.name}] expected only one upgrade policy"
|
924
912
|
)
|
925
|
-
current = current_policies[0]
|
926
|
-
version = current.version # may not exist in automatic upgrades
|
927
|
-
if version and not addon_id and desired.version_blocked(version):
|
928
|
-
next_run = current.next_run
|
929
|
-
if next_run and datetime.strptime(next_run, "%Y-%m-%dT%H:%M:%SZ") < now:
|
930
|
-
logging.warning(
|
931
|
-
f"[{desired.org.org_id}/{desired.org.name}/{desired.cluster.name}] currently upgrading to blocked version '{version}'"
|
932
|
-
)
|
933
|
-
return True, None
|
934
|
-
logging.debug(
|
935
|
-
f"[{desired.org.org_id}/{desired.org.name}/{desired.cluster.name}] found planned upgrade policy "
|
936
|
-
+ f"with blocked version {version}"
|
937
|
-
)
|
938
|
-
return False, UpgradePolicyHandler(action="delete", policy=current)
|
939
913
|
|
940
|
-
# else
|
941
914
|
logging.debug(
|
942
915
|
f"[{desired.org.org_id}/{desired.org.name}/{desired.cluster.name}] skipping cluster with existing upgrade policy"
|
943
916
|
)
|
944
|
-
return True
|
917
|
+
return True
|
945
918
|
|
946
919
|
|
947
920
|
def verify_schedule_should_skip(
|
@@ -1129,14 +1102,8 @@ def calculate_diff(
|
|
1129
1102
|
set_upgrading(spec.cluster.id, spec.effective_mutexes, sector_name)
|
1130
1103
|
continue
|
1131
1104
|
|
1132
|
-
|
1133
|
-
skip, delete_policy = verify_current_should_skip(
|
1134
|
-
current_state, spec, now, addon_id
|
1135
|
-
)
|
1136
|
-
if skip:
|
1105
|
+
if verify_current_should_skip(current_state, spec):
|
1137
1106
|
continue
|
1138
|
-
if delete_policy:
|
1139
|
-
diffs.append(delete_policy)
|
1140
1107
|
|
1141
1108
|
next_schedule = verify_schedule_should_skip(spec, now, addon_id)
|
1142
1109
|
if not next_schedule:
|
@@ -189,7 +189,7 @@ class AWSRdsFactory(AWSDefaultResourceFactory):
|
|
189
189
|
if "availability_zone" in data and "region" not in data:
|
190
190
|
data["region"] = self._get_region_from_az(data["availability_zone"])
|
191
191
|
|
192
|
-
kms_key_id: str = data.get("kms_key_id"
|
192
|
+
kms_key_id: str | None = data.get("kms_key_id")
|
193
193
|
if kms_key_id and not kms_key_id.startswith("arn:"):
|
194
194
|
data["kms_key_id"] = self._get_kms_key_spec(
|
195
195
|
spec.provisioner_name, kms_key_id
|
@@ -186,8 +186,8 @@ class ExternalResourcesInventory(MutableMapping):
|
|
186
186
|
|
187
187
|
|
188
188
|
class Action(StrEnum):
|
189
|
-
DESTROY
|
190
|
-
APPLY
|
189
|
+
DESTROY = "Destroy"
|
190
|
+
APPLY = "Apply"
|
191
191
|
|
192
192
|
|
193
193
|
class ExternalResourceModuleKey(BaseModel, frozen=True):
|
@@ -348,15 +348,15 @@ class ExternalResourceModuleConfiguration(BaseModel, frozen=True):
|
|
348
348
|
|
349
349
|
|
350
350
|
class ResourceStatus(StrEnum):
|
351
|
-
CREATED
|
352
|
-
DELETED
|
353
|
-
ABANDONED
|
354
|
-
NOT_EXISTS
|
355
|
-
IN_PROGRESS
|
356
|
-
DELETE_IN_PROGRESS
|
357
|
-
ERROR
|
358
|
-
PENDING_SECRET_SYNC
|
359
|
-
RECONCILIATION_REQUESTED
|
351
|
+
CREATED = "CREATED"
|
352
|
+
DELETED = "DELETED"
|
353
|
+
ABANDONED = "ABANDONED"
|
354
|
+
NOT_EXISTS = "NOT_EXISTS"
|
355
|
+
IN_PROGRESS = "IN_PROGRESS"
|
356
|
+
DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS"
|
357
|
+
ERROR = "ERROR"
|
358
|
+
PENDING_SECRET_SYNC = "PENDING_SECRET_SYNC"
|
359
|
+
RECONCILIATION_REQUESTED = "RECONCILIATION_REQUESTED"
|
360
360
|
|
361
361
|
@property
|
362
362
|
def does_not_exist(self) -> bool:
|
@@ -25,10 +25,10 @@ class StateNotFoundError(Exception):
|
|
25
25
|
|
26
26
|
|
27
27
|
class ReconcileStatus(StrEnum):
|
28
|
-
SUCCESS
|
29
|
-
ERROR
|
30
|
-
IN_PROGRESS
|
31
|
-
NOT_EXISTS
|
28
|
+
SUCCESS = "SUCCESS"
|
29
|
+
ERROR = "ERROR"
|
30
|
+
IN_PROGRESS = "IN_PROGRESS"
|
31
|
+
NOT_EXISTS = "NOT_EXISTS"
|
32
32
|
|
33
33
|
|
34
34
|
class ExternalResourceState(BaseModel):
|
reconcile/run_integration.py
CHANGED
@@ -120,7 +120,7 @@ def build_entry_point_args(
|
|
120
120
|
# we add it right before the extra_args
|
121
121
|
if (
|
122
122
|
integration_name
|
123
|
-
and isinstance(command, click.
|
123
|
+
and isinstance(command, click.Group)
|
124
124
|
and command.get_command(None, integration_name) # type: ignore
|
125
125
|
):
|
126
126
|
args.append(integration_name)
|
@@ -20,17 +20,17 @@ from kubernetes.client import (
|
|
20
20
|
|
21
21
|
|
22
22
|
class JobStatus(StrEnum):
|
23
|
-
SUCCESS
|
24
|
-
ERROR
|
25
|
-
IN_PROGRESS
|
26
|
-
NOT_EXISTS
|
23
|
+
SUCCESS = "SUCCESS"
|
24
|
+
ERROR = "ERROR"
|
25
|
+
IN_PROGRESS = "IN_PROGRESS"
|
26
|
+
NOT_EXISTS = "NOT_EXISTS"
|
27
27
|
|
28
28
|
|
29
29
|
class JobConcurrencyPolicy(IntFlag):
|
30
|
-
NO_REPLACE
|
31
|
-
REPLACE_FAILED
|
32
|
-
REPLACE_IN_PROGRESS
|
33
|
-
REPLACE_FINISHED
|
30
|
+
NO_REPLACE = 1
|
31
|
+
REPLACE_FAILED = 2
|
32
|
+
REPLACE_IN_PROGRESS = 4
|
33
|
+
REPLACE_FINISHED = 8
|
34
34
|
|
35
35
|
|
36
36
|
class JobValidationError(Exception):
|
reconcile/utils/ocm/upgrades.py
CHANGED
@@ -77,15 +77,6 @@ def create_upgrade_policy(ocm_api: OCMBaseClient, cluster_id: str, spec: dict) -
|
|
77
77
|
ocm_api.post(f"{build_cluster_url(cluster_id)}/upgrade_policies", spec)
|
78
78
|
|
79
79
|
|
80
|
-
def delete_upgrade_policy(
|
81
|
-
ocm_api: OCMBaseClient, cluster_id: str, policy_id: str
|
82
|
-
) -> None:
|
83
|
-
"""
|
84
|
-
Deletes an existing Upgrade Policy
|
85
|
-
"""
|
86
|
-
ocm_api.delete(f"{build_cluster_url(cluster_id)}/upgrade_policies/{policy_id}")
|
87
|
-
|
88
|
-
|
89
80
|
#
|
90
81
|
# CONTROL PLANE UPGRADE POLICIES
|
91
82
|
#
|
@@ -120,17 +111,6 @@ def create_control_plane_upgrade_policy(
|
|
120
111
|
)
|
121
112
|
|
122
113
|
|
123
|
-
def delete_control_plane_upgrade_policy(
|
124
|
-
ocm_api: OCMBaseClient, cluster_id: str, upgrade_policy_id: str
|
125
|
-
) -> None:
|
126
|
-
"""
|
127
|
-
Deletes an existing Control Plane Upgrade Policy
|
128
|
-
"""
|
129
|
-
ocm_api.delete(
|
130
|
-
f"{build_cluster_url(cluster_id)}/control_plane/upgrade_policies/{upgrade_policy_id}"
|
131
|
-
)
|
132
|
-
|
133
|
-
|
134
114
|
#
|
135
115
|
# NODE POOLUPGRADE POLICIES
|
136
116
|
#
|
@@ -993,9 +993,11 @@ class TerrascriptClient:
|
|
993
993
|
lifecycle.prevent_destroy = False
|
994
994
|
if lifecycle.ignore_changes is None:
|
995
995
|
lifecycle.ignore_changes = []
|
996
|
-
|
997
|
-
|
998
|
-
|
996
|
+
# 'all' must be passed as a string for ignore_changes! stupid terraform aws provider!
|
997
|
+
ignore_changes = (
|
998
|
+
"all" if "all" in lifecycle.ignore_changes else lifecycle.ignore_changes
|
999
|
+
)
|
1000
|
+
return lifecycle.dict(by_alias=True) | {"ignore_changes": ignore_changes}
|
999
1001
|
return None
|
1000
1002
|
|
1001
1003
|
def populate_additional_providers(self, infra_account_name: str, accounts):
|
tools/qontract_cli.py
CHANGED
@@ -1031,6 +1031,9 @@ def clusters_network(ctx: click.Context, name: str) -> None:
|
|
1031
1031
|
ocm_map.get(cluster_name),
|
1032
1032
|
provided_assume_role=None,
|
1033
1033
|
)
|
1034
|
+
assert account is not None, (
|
1035
|
+
f"Failed to build assume role for cluster {cluster_name} in account {management_account['name']}"
|
1036
|
+
)
|
1034
1037
|
account["resourcesDefaultRegion"] = management_account[
|
1035
1038
|
"resourcesDefaultRegion"
|
1036
1039
|
]
|
{qontract_reconcile-0.10.2.dev278.dist-info → qontract_reconcile-0.10.2.dev280.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|