qontract-reconcile 0.10.1rc592__py3-none-any.whl → 0.10.1rc594__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.1rc592.dist-info → qontract_reconcile-0.10.1rc594.dist-info}/METADATA +1 -1
- {qontract_reconcile-0.10.1rc592.dist-info → qontract_reconcile-0.10.1rc594.dist-info}/RECORD +14 -14
- reconcile/aus/advanced_upgrade_service.py +8 -0
- reconcile/aus/aus_label_source.py +1 -0
- reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +1 -0
- reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +1 -0
- reconcile/gql_definitions/common/clusters.py +1 -0
- reconcile/gql_definitions/fragments/upgrade_policy.py +1 -0
- reconcile/terraform_resources.py +11 -2
- reconcile/test/test_openshift_upgrade_watcher.py +2 -1
- reconcile/test/test_terraform_resources.py +5 -1
- {qontract_reconcile-0.10.1rc592.dist-info → qontract_reconcile-0.10.1rc594.dist-info}/WHEEL +0 -0
- {qontract_reconcile-0.10.1rc592.dist-info → qontract_reconcile-0.10.1rc594.dist-info}/entry_points.txt +0 -0
- {qontract_reconcile-0.10.1rc592.dist-info → qontract_reconcile-0.10.1rc594.dist-info}/top_level.txt +0 -0
{qontract_reconcile-0.10.1rc592.dist-info → qontract_reconcile-0.10.1rc594.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.1rc594
|
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.1rc592.dist-info → qontract_reconcile-0.10.1rc594.dist-info}/RECORD
RENAMED
@@ -111,15 +111,15 @@ reconcile/terraform_cloudflare_dns.py,sha256=auU4bzeLwd4S8D8oqpqJbrCUoEdELXrgi7v
|
|
111
111
|
reconcile/terraform_cloudflare_resources.py,sha256=EbQQaoDnZ7brvRCpbFtwlD7KLk2hDVNcjhrJGaAywEk,15023
|
112
112
|
reconcile/terraform_cloudflare_users.py,sha256=1EbTHwJgiPkJpMP-Ag340QNgGK3mXn3dcC3DpLakudM,13987
|
113
113
|
reconcile/terraform_repo.py,sha256=c0GZFuY3rCm6VHjHqYbsgOHrEkRWKF_1LrMThsn2XDw,16127
|
114
|
-
reconcile/terraform_resources.py,sha256=
|
114
|
+
reconcile/terraform_resources.py,sha256=hnW_C8i8am1rAojIOyoDG2FZofeBxK3GxH1S281eSqo,19278
|
115
115
|
reconcile/terraform_tgw_attachments.py,sha256=_g7QSHM03YZzTU7O189S4HYtUn7WmwOBq67G4AieU24,15298
|
116
116
|
reconcile/terraform_users.py,sha256=kXRUxCUchKCP2dbXXOzctynqMii4oyCP6bYZHQTrlTg,10202
|
117
117
|
reconcile/terraform_vpc_peerings.py,sha256=rnDH1u93OyzrBM8Hib0HwSnlxZtx4ScRQaZAcn3mx-k,25402
|
118
118
|
reconcile/vault_replication.py,sha256=79GZ_kCimPoQcxkdhkWTQxPOAa46E0mNhf05s_Mk5so,17385
|
119
119
|
reconcile/vpc_peerings_validator.py,sha256=Kv22HJVlTW9l9GB2eXwjPWqdDbr_VuvQBNPttox6s5o,7177
|
120
120
|
reconcile/aus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
121
|
-
reconcile/aus/advanced_upgrade_service.py,sha256=
|
122
|
-
reconcile/aus/aus_label_source.py,sha256=
|
121
|
+
reconcile/aus/advanced_upgrade_service.py,sha256=PkVcXBMrveW5euvqjEBO4e5-9KDb_6hszLI2GrWpx2w,21378
|
122
|
+
reconcile/aus/aus_label_source.py,sha256=qoP8Fgxuu1tCuhG6ixCWve7Ll-KD6a79E2uLAmC0ifw,4184
|
123
123
|
reconcile/aus/base.py,sha256=Qdktz7W7J9TWVCYJZHwyKoIf4sVI7W9o_WwzsOBxLfQ,44912
|
124
124
|
reconcile/aus/cluster_version_data.py,sha256=j4UyEBi5mQuvPq5Lo7a_L_0blxvH790wJV07uAiikFU,7126
|
125
125
|
reconcile/aus/metrics.py,sha256=fIew-rzi_kYuI5Gxn3-4bQVIr2oNibiKPyGnhB-xKU4,3538
|
@@ -174,8 +174,8 @@ reconcile/gql_definitions/acs/acs_instances.py,sha256=L91WW9LbhJbBSrECqShQpFtjoB
|
|
174
174
|
reconcile/gql_definitions/acs/acs_policies.py,sha256=Z6Z7duvS9W4cbciBED4oK40Vg9QyYti3zXvoEXM-fak,4422
|
175
175
|
reconcile/gql_definitions/acs/acs_rbac.py,sha256=cZsIlCWliPQdQHgmBsIMx54fJNOtkdRXLzmOKZmJNHk,3009
|
176
176
|
reconcile/gql_definitions/advanced_upgrade_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
177
|
-
reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py,sha256=
|
178
|
-
reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py,sha256=
|
177
|
+
reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py,sha256=z-duZbkMLU1B7P7PSzjUQYVOr2ccP6rvpQLjgzHCj-4,4244
|
178
|
+
reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py,sha256=_H8jhf_kzFj5AWa8auawXIwFmrQw3a1RK6MOi4qQ6zA,3242
|
179
179
|
reconcile/gql_definitions/app_interface_metrics_exporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
180
180
|
reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py,sha256=uVEEqU6YYmKsNTo6EWlFnoVmqha2rvBDx-wiD64VmG0,1679
|
181
181
|
reconcile/gql_definitions/aws_ami_cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -204,7 +204,7 @@ reconcile/gql_definitions/common/app_interface_repo_settings.py,sha256=rud0rz9NI
|
|
204
204
|
reconcile/gql_definitions/common/app_interface_state_settings.py,sha256=VXIK0Hmyv6GTShI86IGkjxyHGwufqUBAh617XKUAKaI,2507
|
205
205
|
reconcile/gql_definitions/common/app_interface_vault_settings.py,sha256=w8quvdG0cSq71ZyJokPPp7MyMpoDb6-HLQ3o9JHVGRQ,1771
|
206
206
|
reconcile/gql_definitions/common/aws_vpcs.py,sha256=Dss9dQ3xagnz3Ltg1e9mtG2PAmQGBbUzKCmmzvuN28s,1892
|
207
|
-
reconcile/gql_definitions/common/clusters.py,sha256=
|
207
|
+
reconcile/gql_definitions/common/clusters.py,sha256=b9RLeV4H-y1aAPotySaid6IMT6-jPNE1smu70eSDYH4,23201
|
208
208
|
reconcile/gql_definitions/common/clusters_minimal.py,sha256=yZpjS9qWyusCEiWtD8wzf0tak298uQyxiN4lC6KNo4s,4475
|
209
209
|
reconcile/gql_definitions/common/clusters_with_peering.py,sha256=7ORLr469qEmsqescriARsZrJyQaB0JOFP6UVVlFWfk0,11548
|
210
210
|
reconcile/gql_definitions/common/github_orgs.py,sha256=rZ0pDAA2_9hF9N-ykRZIxPtEmczTSjuA_k3nkp0k1W0,2039
|
@@ -243,7 +243,7 @@ reconcile/gql_definitions/fragments/resource_requests_requirements.py,sha256=TFK
|
|
243
243
|
reconcile/gql_definitions/fragments/resource_values.py,sha256=-N2lNRhWp8PgocmIeX3U9f3l90Q97N2lXoq1pXdb_LE,742
|
244
244
|
reconcile/gql_definitions/fragments/saas_target_namespace.py,sha256=y4hA73Vchi3I1UW94r7CmecZe6KoHkCMEVuoiAF2xnc,3660
|
245
245
|
reconcile/gql_definitions/fragments/terraform_state.py,sha256=S5QuTR9YlvUObiU7hevS9ybxZEssWoRGqCR9YtGwePs,1024
|
246
|
-
reconcile/gql_definitions/fragments/upgrade_policy.py,sha256=
|
246
|
+
reconcile/gql_definitions/fragments/upgrade_policy.py,sha256=cVza8zfra1E3yBsHiS-hKbys17fvv572GFnKshJjluE,1246
|
247
247
|
reconcile/gql_definitions/fragments/user.py,sha256=84RGYYSYnZmyrwHlCX89-EgAu7UaLFOTMQXobmHCfz8,939
|
248
248
|
reconcile/gql_definitions/fragments/vault_secret.py,sha256=8xoQJNx1jKw_1yradq1iLEYWzuOHra1bEHHU7WHKxqo,833
|
249
249
|
reconcile/gql_definitions/gitlab_members/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -437,7 +437,7 @@ reconcile/test/test_openshift_resources_base.py,sha256=LtlR9x3o7KkSEw0JN0fZhinFe
|
|
437
437
|
reconcile/test/test_openshift_saas_deploy.py,sha256=YLJGkc--u5aP0UkQ-b9ZGEFGS2gw25jjcSgknQdI3Ic,5892
|
438
438
|
reconcile/test/test_openshift_saas_deploy_change_tester.py,sha256=1yVe54Hx9YdVjn6qdnKge5Sa_s732c-8uZqCnuT1gGI,12871
|
439
439
|
reconcile/test/test_openshift_tekton_resources.py,sha256=RtRWsdm51S13OSkENC9nY_rOH0QELSCaO5tjF0XqIDI,11222
|
440
|
-
reconcile/test/test_openshift_upgrade_watcher.py,sha256=
|
440
|
+
reconcile/test/test_openshift_upgrade_watcher.py,sha256=0GDQ_YFHIX8DbkbDYSuLv9uZeeg4NwP1vlOqvSaZvN4,7183
|
441
441
|
reconcile/test/test_prometheus_rules_tester.py,sha256=Qc9J4k0lSVie361lGr_cOy0EaBTD5LDqGZf7CYVFKr8,5677
|
442
442
|
reconcile/test/test_quay_membership.py,sha256=e29Giz5S9ckFgjpTO8PBo8qVPocIQmy4WqsRhgTFd9A,2643
|
443
443
|
reconcile/test/test_quay_mirror.py,sha256=UBLQDtet5WkWnh98ev5cI3yAflQl07awg2dXTefqoUk,6311
|
@@ -458,7 +458,7 @@ reconcile/test/test_terraform_cloudflare_dns.py,sha256=aQTXX8Vr4h9aWvJZTnpZEhMGY
|
|
458
458
|
reconcile/test/test_terraform_cloudflare_resources.py,sha256=NK_uktyWihkQ3gMN4bCaKerpi43CXAVYGIKTfcz05rY,13550
|
459
459
|
reconcile/test/test_terraform_cloudflare_users.py,sha256=RAFtMMdqZha3jNnNNsqbNQQUDSqUzdoM63rCw7fs4Fo,27456
|
460
460
|
reconcile/test/test_terraform_repo.py,sha256=soKFJfF8tWIimDs39RQl3Hnh-Od-bR4PfnEA2s1UprM,11552
|
461
|
-
reconcile/test/test_terraform_resources.py,sha256=
|
461
|
+
reconcile/test/test_terraform_resources.py,sha256=VQ9nCJfEWEaO7WonUmwgLYc5Sf6ansVRDJngtkL5qLg,15268
|
462
462
|
reconcile/test/test_terraform_tgw_attachments.py,sha256=cAq6exc-K-jtLla1CZUZQzVnBkyDnIlL7jybnddhLKc,36861
|
463
463
|
reconcile/test/test_terraform_users.py,sha256=Xn4y6EcxnNQb6XcPoOhz_Ikxmh9Nrsu88OM1scN9hzY,5434
|
464
464
|
reconcile/test/test_terraform_vpc_peerings.py,sha256=ubcsKh0TrUIwuI1-W3ETIgzsFvzAyeoFmEJFC-IK6JY,20538
|
@@ -693,8 +693,8 @@ tools/test/test_app_interface_metrics_exporter.py,sha256=SX7qL3D1SIRKFo95FoQztvf
|
|
693
693
|
tools/test/test_qontract_cli.py,sha256=OvalpVRfY4pNmpMaWHHYqBjV68b1eGQjX8SCyTAXb1w,3501
|
694
694
|
tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
|
695
695
|
tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
|
696
|
-
qontract_reconcile-0.10.
|
697
|
-
qontract_reconcile-0.10.
|
698
|
-
qontract_reconcile-0.10.
|
699
|
-
qontract_reconcile-0.10.
|
700
|
-
qontract_reconcile-0.10.
|
696
|
+
qontract_reconcile-0.10.1rc594.dist-info/METADATA,sha256=FbIwYOHtBj7VdEK0G9r1zv9lIlu9_bLSKp1d03lWs3c,2349
|
697
|
+
qontract_reconcile-0.10.1rc594.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
698
|
+
qontract_reconcile-0.10.1rc594.dist-info/entry_points.txt,sha256=rTjAv28I_CHLM8ID3OPqMI_suoQ9s7tFbim4aYjn9kk,376
|
699
|
+
qontract_reconcile-0.10.1rc594.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
|
700
|
+
qontract_reconcile-0.10.1rc594.dist-info/RECORD,,
|
@@ -364,6 +364,9 @@ class ClusterUpgradePolicyLabelSet(BaseModel):
|
|
364
364
|
mutexes: Optional[CSV] = Field(alias=aus_label_key("mutexes"))
|
365
365
|
sector: Optional[str] = Field(alias=aus_label_key("sector"))
|
366
366
|
blocked_versions: Optional[CSV] = Field(alias=aus_label_key("blocked-versions"))
|
367
|
+
version_gate_approvals: Optional[CSV] = Field(
|
368
|
+
alias=aus_label_key("version-gate-approvals")
|
369
|
+
)
|
367
370
|
_schedule_validator = validator("schedule", allow_reuse=True)(cron_validator)
|
368
371
|
|
369
372
|
def build_labels_dict(self) -> dict[str, str]:
|
@@ -388,6 +391,7 @@ def build_cluster_upgrade_policy_label_set(
|
|
388
391
|
mutexes: Optional[list[str]] = None,
|
389
392
|
sector: Optional[str] = None,
|
390
393
|
blocked_versions: Optional[list[str]] = None,
|
394
|
+
version_gate_approvals: Optional[list[str]] = None,
|
391
395
|
) -> ClusterUpgradePolicyLabelSet:
|
392
396
|
return ClusterUpgradePolicyLabelSet(**{
|
393
397
|
aus_label_key("workloads"): ",".join(workloads),
|
@@ -398,6 +402,9 @@ def build_cluster_upgrade_policy_label_set(
|
|
398
402
|
aus_label_key("blocked-versions"): ",".join(blocked_versions)
|
399
403
|
if blocked_versions
|
400
404
|
else None,
|
405
|
+
aus_label_key("version-gate-approvals"): ",".join(version_gate_approvals)
|
406
|
+
if version_gate_approvals
|
407
|
+
else None,
|
401
408
|
})
|
402
409
|
|
403
410
|
|
@@ -410,6 +417,7 @@ def _build_policy_from_labels(labels: LabelContainer) -> ClusterUpgradePolicyV1:
|
|
410
417
|
policy_labelset = build_labelset(labels, ClusterUpgradePolicyLabelSet)
|
411
418
|
return ClusterUpgradePolicyV1(
|
412
419
|
workloads=policy_labelset.workloads,
|
420
|
+
versionGateApprovals=policy_labelset.version_gate_approvals,
|
413
421
|
schedule=policy_labelset.schedule,
|
414
422
|
conditions=ClusterUpgradePolicyConditionsV1(
|
415
423
|
soakDays=policy_labelset.soak_days,
|
@@ -52,6 +52,7 @@ class AUSClusterUpgradePolicyLabelSource(LabelSource):
|
|
52
52
|
mutexes=policy.conditions.mutexes,
|
53
53
|
sector=policy.conditions.sector,
|
54
54
|
blocked_versions=policy.conditions.blocked_versions,
|
55
|
+
version_gate_approvals=policy.version_gate_approvals,
|
55
56
|
).build_labels_dict()
|
56
57
|
|
57
58
|
|
@@ -34,4 +34,5 @@ class ClusterUpgradePolicyConditionsV1(ConfiguredBaseModel):
|
|
34
34
|
class ClusterUpgradePolicyV1(ConfiguredBaseModel):
|
35
35
|
workloads: list[str] = Field(..., alias="workloads")
|
36
36
|
schedule: str = Field(..., alias="schedule")
|
37
|
+
version_gate_approvals: Optional[list[str]] = Field(..., alias="versionGateApprovals")
|
37
38
|
conditions: ClusterUpgradePolicyConditionsV1 = Field(..., alias="conditions")
|
reconcile/terraform_resources.py
CHANGED
@@ -67,7 +67,7 @@ from reconcile.utils.vault import (
|
|
67
67
|
)
|
68
68
|
|
69
69
|
QONTRACT_INTEGRATION = "terraform_resources"
|
70
|
-
QONTRACT_INTEGRATION_VERSION = make_semver(0, 5,
|
70
|
+
QONTRACT_INTEGRATION_VERSION = make_semver(0, 5, 3)
|
71
71
|
QONTRACT_TF_PREFIX = "qrtf"
|
72
72
|
|
73
73
|
|
@@ -350,6 +350,11 @@ class MultipleAccountNamesInDryRunException(Exception):
|
|
350
350
|
pass
|
351
351
|
|
352
352
|
|
353
|
+
class CacheSource(TypedDict):
|
354
|
+
terraform_configurations: dict[str, str]
|
355
|
+
resource_spec_inventory: ExternalResourceSpecInventory
|
356
|
+
|
357
|
+
|
353
358
|
@defer
|
354
359
|
def run(
|
355
360
|
dry_run: bool,
|
@@ -414,11 +419,15 @@ def run(
|
|
414
419
|
"terraform-resources-extended-early-exit",
|
415
420
|
default=False,
|
416
421
|
):
|
422
|
+
cache_source = CacheSource(
|
423
|
+
terraform_configurations=ts.terraform_configurations(),
|
424
|
+
resource_spec_inventory=ts.resource_spec_inventory,
|
425
|
+
)
|
417
426
|
extended_early_exit_run(
|
418
427
|
integration=QONTRACT_INTEGRATION,
|
419
428
|
integration_version=QONTRACT_INTEGRATION_VERSION,
|
420
429
|
dry_run=dry_run,
|
421
|
-
cache_source=
|
430
|
+
cache_source=cache_source,
|
422
431
|
shard="_".join(account_name) if account_name else "",
|
423
432
|
ttl_seconds=extended_early_exit_cache_ttl_seconds,
|
424
433
|
logger=logging.getLogger(),
|
@@ -8,13 +8,14 @@ import pytest
|
|
8
8
|
from reconcile import openshift_upgrade_watcher as ouw
|
9
9
|
from reconcile.gql_definitions.common.clusters import ClusterV1
|
10
10
|
from reconcile.test.fixtures import Fixtures
|
11
|
+
from reconcile.utils.models import data_default_none
|
11
12
|
|
12
13
|
fxt = Fixtures("openshift_upgrade_watcher")
|
13
14
|
|
14
15
|
|
15
16
|
def load_cluster(path: str) -> ClusterV1:
|
16
17
|
content = fxt.get_anymarkup(path)
|
17
|
-
return ClusterV1(**content)
|
18
|
+
return ClusterV1(**data_default_none(ClusterV1, content))
|
18
19
|
|
19
20
|
|
20
21
|
@pytest.fixture
|
@@ -370,12 +370,16 @@ def test_run_with_extended_early_exit_run_enabled(
|
|
370
370
|
log_cached_log_output=True,
|
371
371
|
defer=defer,
|
372
372
|
)
|
373
|
+
expected_cache_source = {
|
374
|
+
"terraform_configurations": mocks["ts"].terraform_configurations.return_value,
|
375
|
+
"resource_spec_inventory": mocks["ts"].resource_spec_inventory,
|
376
|
+
}
|
373
377
|
|
374
378
|
mocks["extended_early_exit_run"].assert_called_once_with(
|
375
379
|
integration=integ.QONTRACT_INTEGRATION,
|
376
380
|
integration_version=integ.QONTRACT_INTEGRATION_VERSION,
|
377
381
|
dry_run=True,
|
378
|
-
cache_source=
|
382
|
+
cache_source=expected_cache_source,
|
379
383
|
shard="a",
|
380
384
|
ttl_seconds=60,
|
381
385
|
logger=mocks["logging"].getLogger.return_value,
|
File without changes
|
File without changes
|
{qontract_reconcile-0.10.1rc592.dist-info → qontract_reconcile-0.10.1rc594.dist-info}/top_level.txt
RENAMED
File without changes
|