qontract-reconcile 0.10.2.dev430__py3-none-any.whl → 0.10.2.dev474__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.
Files changed (47) hide show
  1. {qontract_reconcile-0.10.2.dev430.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/METADATA +2 -2
  2. {qontract_reconcile-0.10.2.dev430.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/RECORD +47 -46
  3. {qontract_reconcile-0.10.2.dev430.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/WHEEL +1 -1
  4. reconcile/aus/aus_sts_gate_handler.py +59 -0
  5. reconcile/aus/base.py +9 -8
  6. reconcile/aus/version_gate_approver.py +1 -16
  7. reconcile/aus/version_gates/sts_version_gate_handler.py +5 -125
  8. reconcile/aws_account_manager/integration.py +13 -1
  9. reconcile/aws_account_manager/utils.py +1 -1
  10. reconcile/aws_ecr_image_pull_secrets.py +1 -1
  11. reconcile/change_owners/README.md +1 -1
  12. reconcile/change_owners/change_owners.py +108 -42
  13. reconcile/change_owners/decision.py +1 -1
  14. reconcile/cli.py +1 -1
  15. reconcile/external_resources/secrets_sync.py +2 -3
  16. reconcile/gql_definitions/aws_account_manager/aws_accounts.py +9 -0
  17. reconcile/gql_definitions/common/aws_vpc_requests.py +3 -0
  18. reconcile/gql_definitions/common/clusters.py +2 -0
  19. reconcile/gql_definitions/external_resources/external_resources_namespaces.py +6 -2
  20. reconcile/gql_definitions/fragments/aws_vpc_request.py +5 -0
  21. reconcile/gql_definitions/introspection.json +51 -7
  22. reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +8 -2
  23. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +3 -0
  24. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +1 -0
  25. reconcile/openshift_namespaces.py +3 -4
  26. reconcile/quay_base.py +25 -6
  27. reconcile/quay_membership.py +55 -29
  28. reconcile/quay_mirror_org.py +6 -4
  29. reconcile/quay_permissions.py +81 -75
  30. reconcile/quay_repos.py +35 -37
  31. reconcile/queries.py +1 -1
  32. reconcile/templates/rosa-classic-cluster-creation.sh.j2 +1 -1
  33. reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +1 -1
  34. reconcile/templating/validator.py +4 -4
  35. reconcile/terraform_vpc_resources/integration.py +10 -7
  36. reconcile/terraform_vpc_resources/merge_request.py +12 -2
  37. reconcile/terraform_vpc_resources/merge_request_manager.py +43 -19
  38. reconcile/typed_queries/saas_files.py +9 -4
  39. reconcile/utils/environ.py +5 -0
  40. reconcile/utils/external_resource_spec.py +2 -0
  41. reconcile/utils/gitlab_api.py +12 -0
  42. reconcile/utils/jjb_client.py +19 -3
  43. reconcile/utils/oc.py +8 -2
  44. reconcile/utils/quay_api.py +74 -87
  45. reconcile/utils/terrascript_aws_client.py +140 -50
  46. reconcile/vpc_peerings_validator.py +13 -0
  47. {qontract_reconcile-0.10.2.dev430.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qontract-reconcile
3
- Version: 0.10.2.dev430
3
+ Version: 0.10.2.dev474
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
@@ -18,7 +18,7 @@ Requires-Dist: botocore==1.34.94
18
18
  Requires-Dist: click<9.0,>=7.0
19
19
  Requires-Dist: croniter<1.1.0,>=1.0.15
20
20
  Requires-Dist: dateparser~=1.1.7
21
- Requires-Dist: deepdiff==6.7.1
21
+ Requires-Dist: deepdiff==8.6.1
22
22
  Requires-Dist: dnspython~=2.1
23
23
  Requires-Dist: dt==1.1.73
24
24
  Requires-Dist: filetype~=1.2.0
@@ -2,13 +2,13 @@ reconcile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  reconcile/acs_policies.py,sha256=1LKnRRPa6h3QewsDhv0epINi9RJtQmT88mPgcU2LhDM,8667
3
3
  reconcile/acs_rbac.py,sha256=HSX6wCKh7tW8iXuJa2OXLdOfiLjJb2R5AkaR6x6vDJg,22670
4
4
  reconcile/aws_ami_share.py,sha256=JqevGzjLKlktRDeL01ukBko5ope5Xhl_0NvdjfGdENA,3503
5
- reconcile/aws_ecr_image_pull_secrets.py,sha256=r9Dy01w4kNPWh3LO2tSGH_x4rQg3B2FJc5sVjPJxZdI,2622
5
+ reconcile/aws_ecr_image_pull_secrets.py,sha256=2WTCPaZFcERsE9sGMJINAlNoWuukcYj2TYCpgM5T0U4,2646
6
6
  reconcile/aws_iam_keys.py,sha256=YHp-K8K8Dqm7vVKzry0RyhM6Egmpp7eCWMNdKk0vbME,4118
7
7
  reconcile/aws_iam_password_reset.py,sha256=5oajSspJVAvpGd445hKsxtEGYb75dM4l1_PJTzrfHk0,3253
8
8
  reconcile/aws_support_cases_sos.py,sha256=G9g0oM6ohvuJ5N592ePjiPeaDug4_vapAy58RyG-S3Y,3478
9
9
  reconcile/blackbox_exporter_endpoint_monitoring.py,sha256=O1wFp52EyF538c6txaWBs8eMtUIy19gyHZ6VzJ6QXS8,3512
10
10
  reconcile/checkpoint.py,sha256=Q5Ru36ZEwWw95ZkUXBf4VfvCmqDS9TcAF7QVroOf9Vk,5375
11
- reconcile/cli.py,sha256=_-0hLUqvfcvtKkLX_S77i-srmnN246p5m2K8sV_sS8I,115258
11
+ reconcile/cli.py,sha256=EqwFVBlDDABGD0j35I4nnw2NSis1d3NqKrOi262B7v4,115258
12
12
  reconcile/closedbox_endpoint_monitoring_base.py,sha256=_OKz7K7HHw0-gzxeEma8PcUCtd70pRBy7JMoaAm8IVU,4940
13
13
  reconcile/cluster_deployment_mapper.py,sha256=aKroYLY6-nNxWi2jxDu7VRMuNZ3YgSI0J6ek7Fet2AQ,2241
14
14
  reconcile/dashdotdb_base.py,sha256=83ZWIf5JJk3P_D69y2TmXRcQr6ELJGlv10OM0h7fJVs,4767
@@ -60,7 +60,7 @@ reconcile/openshift_clusterrolebindings.py,sha256=jwSaYQvUUY7noQGc148Dkqm6woYxvO
60
60
  reconcile/openshift_groups.py,sha256=XpIyhgnWY1XUQio1wi6sHoDtoMYdk-lpHp0-1d1RC7o,9471
61
61
  reconcile/openshift_limitranges.py,sha256=-MVmUWMMLUbX50GuZ-XClm4RIH8uIKNqAAMYD1IIs0I,4017
62
62
  reconcile/openshift_namespace_labels.py,sha256=zjQNini7qgb-x_0QRBfD1zVBeX_5Pgk8ixDkBA4v488,16241
63
- reconcile/openshift_namespaces.py,sha256=PkgPGe9ph9tD_IPy6Kjd1A1OrSh2HK_Qlr6DhKcttDU,5374
63
+ reconcile/openshift_namespaces.py,sha256=xzFP5o4ZokqocRswAY_fpmTuu3K1HNOO5ENSqr5VfzU,5372
64
64
  reconcile/openshift_network_policies.py,sha256=e6yo7F0zpeGySycqeK0ugzSmC_kn_5h4WX-trG5r8Bg,4718
65
65
  reconcile/openshift_prometheus_rules.py,sha256=FVVx1D7KCUnNZh7NwVNbD6t4lXKRSO7ph5bvAXruPno,1417
66
66
  reconcile/openshift_resourcequotas.py,sha256=0CSuCre3T2ON42Ku1UDhTRugfmUNBx8PILpxIQaAzJU,2882
@@ -82,13 +82,13 @@ reconcile/openshift_tekton_resources.py,sha256=5mUWEQqU9RpMLQZxHOb6IkbbZzx4iJnaV
82
82
  reconcile/openshift_upgrade_watcher.py,sha256=93l8X1-RHNtL89GzPg1XWivWart49l_hpAVFChvT6Wg,6643
83
83
  reconcile/openshift_users.py,sha256=lxHYrOhKntLnRy5mVZfh_8XWvwZaUgzrDNqkoon905U,5508
84
84
  reconcile/openshift_vault_secrets.py,sha256=Ax-_EBWWU1VRHYyKaUkGJkIjHGwWM3bZgjXL5CkPW8k,1883
85
- reconcile/quay_base.py,sha256=hfHv8ET6iw0GqPyncYJMRH7YFwJc5E1C9z7zET5MCjo,2327
86
- reconcile/quay_membership.py,sha256=No2sgEyTVj-hr5VPLy_xdrYAPvt-xo-CPpOt0X3x_6o,6623
85
+ reconcile/quay_base.py,sha256=4gNca076ICJ2fDoTwCgcA3L-DqmVmBgHWLCubTk78uc,2832
86
+ reconcile/quay_membership.py,sha256=tSS1j34RzoMXZJHmeuW3yVyM2E9onSha9SMJO3RcUMo,7694
87
87
  reconcile/quay_mirror.py,sha256=vhPL44TMEsritkiJhNQLf2Ir45RLApdO_mh3aZV0OuI,14334
88
- reconcile/quay_mirror_org.py,sha256=ltPbHuWUI8Wnl8gV4aeYmvoYFA1uXLWqlXqEPpw7Hi0,11065
89
- reconcile/quay_permissions.py,sha256=BF539lRxjpgwm88WzazklzgaCF_ipRALwbO2AdpqUqE,4388
90
- reconcile/quay_repos.py,sha256=fBleLzMtfDmTidpzbrTt8kGCy-Bk3J06EO4hhyghGnQ,7570
91
- reconcile/queries.py,sha256=L0NbIr6-M12P7xqU2s_2-tgi5BOC5QEo6Otu33WG5tI,56598
88
+ reconcile/quay_mirror_org.py,sha256=9YeOpRsuTOWxnql1oj-rbUAkb_aGSlzmHVbMyLhSalM,11092
89
+ reconcile/quay_permissions.py,sha256=wsQZ5wi2jrlTlV3Aq3dn_mJpjMlcjnjVvFNflBFBdGk,4706
90
+ reconcile/quay_repos.py,sha256=JpR9vyvDIdKfP4EwLw1c2X53LOjLZY35pJ8AvNxZIGo,7674
91
+ reconcile/queries.py,sha256=nEko5_luE4Xoj-nBI1XEX3YRcxfAObtvqZbN7LSlJVY,56597
92
92
  reconcile/query_validator.py,sha256=csOSkKxcf6ZlpchJu4ck2jLYKUN6y1l-UmSQUFHgssY,1618
93
93
  reconcile/requests_sender.py,sha256=g-tlrudvIqhneQPDMrfYF0Xsq7BSW2QcBPirl7hFM6I,4058
94
94
  reconcile/resource_scraper.py,sha256=TcMhXga7konX9x97NhpoijnDGWA-ZjdpiiXjm5qCmPk,2249
@@ -113,11 +113,12 @@ reconcile/terraform_tgw_attachments.py,sha256=zWDvTkjUp7iHgQpyolmJeg9YMaRuDlqgL1
113
113
  reconcile/terraform_users.py,sha256=6ONjHoe1Pq4Xw1KPcFnCObxRQ3cjDIj0iDQAclVucSg,10882
114
114
  reconcile/terraform_vpc_peerings.py,sha256=KNdlt4DvmobSd-9YP8TFUdkyTPPoUHcUaB5JRJvFsrU,28128
115
115
  reconcile/vault_replication.py,sha256=vNPVO9J0EjH4nV7lvhLxet7V1L0m5KtejfoOYjGB1tw,19762
116
- reconcile/vpc_peerings_validator.py,sha256=_77eu6DSy6VjTE5mhV-sOIVOGIiBvDEEDCdwwRdrgVQ,7101
116
+ reconcile/vpc_peerings_validator.py,sha256=f-u4YMAeWgKZpgzgqje4MqoHZI8SO-v1oR81Gbxc0-M,7658
117
117
  reconcile/aus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
118
  reconcile/aus/advanced_upgrade_service.py,sha256=byOl5wtDRG_VJiN50IM3dwA9vQz39ibSEh9uY5HI9jE,24201
119
119
  reconcile/aus/aus_label_source.py,sha256=o0S2f0qwcII_8nzhHZhRQ83gEZ1DrSXyO4xzSwLebuU,4382
120
- reconcile/aus/base.py,sha256=z2C1-knQIsqD3HZPrZrDkjRknzS18QTmORy-XluDH9Q,54173
120
+ reconcile/aus/aus_sts_gate_handler.py,sha256=7MDHtd4G_t3_ItcnpfpqN7sI6QbFNJEFGJOibfALI-o,2075
121
+ reconcile/aus/base.py,sha256=NXknPntO9EwLTuQMyFxPVtw8r7d9IbwUg-GadDNOU5w,54078
121
122
  reconcile/aus/cluster_version_data.py,sha256=rrMYtS-gSWwV4vibf3HKP06Hh3FHO4cBzhZzEInMRlo,7506
122
123
  reconcile/aus/healthchecks.py,sha256=jR9c-syh9impnkV0fd6XW3Bnk7iRN5zv8oCRYM-yIRY,2700
123
124
  reconcile/aus/metrics.py,sha256=BhIvZVTn25fIzijz3xFynJngS2sXDBTxxprUUVWJcFo,4246
@@ -127,22 +128,22 @@ reconcile/aus/ocm_addons_upgrade_scheduler_org.py,sha256=3Ezt-FGDKlK_bqaAVntMTr9
127
128
  reconcile/aus/ocm_upgrade_scheduler.py,sha256=8gN_B_Jw6-ridTsIiMdVoD_mJupVyEIKGlIZWSC0GbQ,3945
128
129
  reconcile/aus/ocm_upgrade_scheduler_org.py,sha256=RU_WRpCy7tCSm2JhNtb3eQBilvU9po42nkpYwcv1QT4,4482
129
130
  reconcile/aus/upgrades.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
- reconcile/aus/version_gate_approver.py,sha256=Y-0GSV9sPEyZ42DJyRoAxn57L4J6jL_dQ__4fMlNrVI,7414
131
+ reconcile/aus/version_gate_approver.py,sha256=_PxXDctxIvmMaXuyDCoaahtBar9GtgDubzl2IWfhtJ4,6711
131
132
  reconcile/aus/version_gates/__init__.py,sha256=AlfmPhMbuuRnJloODTKTgPhM-iFSW3XKsJhbiewBT1s,454
132
133
  reconcile/aus/version_gates/handler.py,sha256=S_isQPYHbG4DERiUEvQBZ6ngiFX3uMmATA-Q_eNKmFk,839
133
134
  reconcile/aus/version_gates/ingress_gate_handler.py,sha256=ZCtyggBzzcb0prtdbMpJsVkj5leYN-vS7srM9vbq9xo,1096
134
135
  reconcile/aus/version_gates/ocp_gate_handler.py,sha256=RW1ppDaCZXVegV9AzzqYXxDUu_Z_7d43Z5h2Pk_piKc,716
135
- reconcile/aus/version_gates/sts_version_gate_handler.py,sha256=L0ifdUMXGbNZt36bnnRgDyEvoQq40bfDvRUrYLczj3c,5355
136
+ reconcile/aus/version_gates/sts_version_gate_handler.py,sha256=RIEiISyRIO2SHiY7yLLtUWHlIfma-wCqrSQVcXzo06c,1111
136
137
  reconcile/automated_actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
138
  reconcile/automated_actions/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
139
  reconcile/automated_actions/config/integration.py,sha256=uvaZbLp4FQz3DHfr9dA77FyHaRJHTvJDgdqGp7wdCNg,15303
139
140
  reconcile/aws_account_manager/README.md,sha256=_XFM3GZNHUzv--e_navqJuaUWpjC6QrHfulreHynFf0,262
140
141
  reconcile/aws_account_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- reconcile/aws_account_manager/integration.py,sha256=kVh8BgIOYDo482ExldGhuqmj1KN8qtlO15YVRvLxMDU,15397
142
+ reconcile/aws_account_manager/integration.py,sha256=qpqefqnq4sPtXW13LBL0D2a5wXdq44mZzi3JxJtM7P0,16042
142
143
  reconcile/aws_account_manager/merge_request_manager.py,sha256=ePdn3c5MHZEW9iawgQWg7L5ydPLh0YZzfmRYV-rBCD8,3987
143
144
  reconcile/aws_account_manager/metrics.py,sha256=YB10ea4kIGwJfs5N14RF-RoXPb-QQWaDBz1jLZ3YWE0,917
144
145
  reconcile/aws_account_manager/reconciler.py,sha256=xbCih3aOFk_98Nxly7-W8QMrT67loTH2-HVyQudjH00,17162
145
- reconcile/aws_account_manager/utils.py,sha256=iYPPOtbZ7FiKkz9v5f1YXRIHw5YFOtSavUkF8oMwfJY,1439
146
+ reconcile/aws_account_manager/utils.py,sha256=m40ntjpxREpVPuzJv4pCG3LWtojAeqEoPOfbeIbmQUU,1443
146
147
  reconcile/aws_ami_cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
148
  reconcile/aws_ami_cleanup/integration.py,sha256=NJhGzl9lMOG4VgYf8IsoZFJeYTRS1e5ORpHfIUEl3tA,9264
148
149
  reconcile/aws_cloudwatch_log_retention/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -157,15 +158,15 @@ reconcile/aws_version_sync/utils.py,sha256=x-45QT7zAwdNvCg7w_qJNwLaksFcfz1_6KQoD
157
158
  reconcile/aws_version_sync/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
159
  reconcile/aws_version_sync/merge_request_manager/merge_request.py,sha256=2FbqLLdqxycWNvX1eNbwMjWSVBb7q0p-8t5Db0m7b4Q,4842
159
160
  reconcile/aws_version_sync/merge_request_manager/merge_request_manager.py,sha256=7EwpSMsAYk41yEqb3uB_EjU73qqWeF28c7UTuQaNjUQ,5522
160
- reconcile/change_owners/README.md,sha256=NEXVw4SioTWTGo9elSQUjqY10RIUoisl4zkzEBvly8s,3946
161
+ reconcile/change_owners/README.md,sha256=ETmGkj1hRklv0EFoHTZ89NsM3yjta0ikoIPvjn96BZo,3944
161
162
  reconcile/change_owners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
163
  reconcile/change_owners/approver.py,sha256=Z3_11vnK2WNOxjEEXVDh0224-_-qbt9d6mBeVE-7fsc,2259
163
164
  reconcile/change_owners/bundle.py,sha256=6a51hi8yn2QwxQLQ4xc9zwlL5IT2sCbHriFuVJVeqzQ,5376
164
165
  reconcile/change_owners/change_log_tracking.py,sha256=njIBC6pRb6U2GmeXxAAc_CruIfnDpEUhOp05DrPFsuk,9531
165
- reconcile/change_owners/change_owners.py,sha256=e9ujTibYL5-2Pbf1UuewMFw9Vettfe_WLqiHl4Ad9Y0,17133
166
+ reconcile/change_owners/change_owners.py,sha256=Ay3KdLJBKH59xMdNYbiNTr2ow71bKPm0URiv4DjcB2M,18400
166
167
  reconcile/change_owners/change_types.py,sha256=5eSvS2_npUriq9RN4LdAWdYUiNzF91K1pDUEVYDIQ4k,32023
167
168
  reconcile/change_owners/changes.py,sha256=YTqwUYutQ6JVSSYmC2Ph5ROCiVix42Vnzy47-i57z4Q,18119
168
- reconcile/change_owners/decision.py,sha256=755rHmrnhfM_xVKnCPlLPOVm_TCJVb3lSkkUvxFM61Q,7491
169
+ reconcile/change_owners/decision.py,sha256=WaT7ehJFYofsgSbbpabj3a5jniomxy8R4wQpb3xsdsw,7487
169
170
  reconcile/change_owners/diff.py,sha256=xuyvnHcdRuQ8Twl0QST3rbbPo-hiH1uTycTet_AoT8k,8944
170
171
  reconcile/change_owners/implicit_ownership.py,sha256=6BehZvx4IjrphmOt_LLLk9_02Fl5BY5jd00Wuz_PBZk,4234
171
172
  reconcile/change_owners/self_service_roles.py,sha256=xSe5AKZxXAIo0vWOMM5hImQ_rd-dQ38y_5dG5L6X0so,9655
@@ -193,7 +194,7 @@ reconcile/external_resources/meta.py,sha256=RM8qGE6UoJR58nLqABReIJrrdmx4Tqt_Ocdl
193
194
  reconcile/external_resources/metrics.py,sha256=ahvlgrc48B214NwBq-G6ncwQE3Qrtif61jtOrklfylQ,3903
194
195
  reconcile/external_resources/model.py,sha256=Kfwxm9TLa6j7Vs-rxXQTIQoNmJPHilSJbjLdlQmNZc4,15172
195
196
  reconcile/external_resources/reconciler.py,sha256=hb32ERLhxkNR-RRYWaE0ngjKjHBM8uarBy8bDVPGGmE,9732
196
- reconcile/external_resources/secrets_sync.py,sha256=Nn15MPDu_YaN2SKnPD_oHbUSW0Qza_GWFldBYMPJhhU,16191
197
+ reconcile/external_resources/secrets_sync.py,sha256=vdcy2Ydz67pKkSHT2U0-Ucu9cxMr99r15RovLTxmoZU,16162
197
198
  reconcile/external_resources/state.py,sha256=zWla2_j6BI1FBrSPqRRfuo55bXK0QWAxtEeafb8ffTg,13811
198
199
  reconcile/fleet_labeler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
200
  reconcile/fleet_labeler/dependencies.py,sha256=kS0E_Cm_RrOgCtyPBVO2KoFlUsE-U7uml4I8zA0bUoY,3238
@@ -213,7 +214,7 @@ reconcile/glitchtip_project_alerts/integration.py,sha256=prje61EOuLEIZLLxlJS_YN0
213
214
  reconcile/glitchtip_project_dsn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
215
  reconcile/glitchtip_project_dsn/integration.py,sha256=3GgcqUM6hWhLpo9Yx5Xr9vrdexF-WNevVCNL9bJ0Upc,8162
215
216
  reconcile/gql_definitions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
- reconcile/gql_definitions/introspection.json,sha256=pvXV99sPoJrzYDPC8nRNqkw5JJNPlBc_qUqI5ikn1dU,2428072
217
+ reconcile/gql_definitions/introspection.json,sha256=liDjRAOJ0_ZN7bagOacrd1yGlybaxK8V9rQTflnecxo,2429961
217
218
  reconcile/gql_definitions/acs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
219
  reconcile/gql_definitions/acs/acs_instances.py,sha256=VySMcnWddg-jXj-bj_ddLIwLX3u1GSFUm02H8rJDBYU,2167
219
220
  reconcile/gql_definitions/acs/acs_policies.py,sha256=jEV1U8j4VYL9ih17JSK1tiz2s_1CegVECmXU-NVEQvA,4333
@@ -229,7 +230,7 @@ reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py,sha256=9x3
229
230
  reconcile/gql_definitions/automated_actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
231
  reconcile/gql_definitions/automated_actions/instance.py,sha256=w-68URz5Q5DVR_dAn13r5mP5YgtutdVHOv3LGQmfxxM,15810
231
232
  reconcile/gql_definitions/aws_account_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
- reconcile/gql_definitions/aws_account_manager/aws_accounts.py,sha256=p-ojQL0zeY_u694irRGG2HT6XaWkksoOtzCkPrdkXJo,5133
233
+ reconcile/gql_definitions/aws_account_manager/aws_accounts.py,sha256=dc3zbFPHW3eUcG3PPSKK498p_Q3a3DuJmyfVOPkfWIk,5401
233
234
  reconcile/gql_definitions/aws_ami_cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
235
  reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py,sha256=XmJ-8_77QnATbeDmXzFiaLkWsxdlkbMWHlTlP9nTqfY,4226
235
236
  reconcile/gql_definitions/aws_cloudwatch_log_retention/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -259,9 +260,9 @@ reconcile/gql_definitions/common/app_interface_state_settings.py,sha256=cIEPai2W
259
260
  reconcile/gql_definitions/common/app_interface_vault_settings.py,sha256=7-waLtwgJ4kEzbGqeAX2KNNm_tG6FHyTTeUulii9q8k,1766
260
261
  reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py,sha256=iZilp3EExUuJvXRzHSlSyCnryVY0U60IDAXBn9XB70U,3231
261
262
  reconcile/gql_definitions/common/apps.py,sha256=DrKG0TVW2a7OYPP8ZpTaeSRCpzcCF9Ea8zsR7CQVP9c,1863
262
- reconcile/gql_definitions/common/aws_vpc_requests.py,sha256=i0L5ToVzICrhtVA0CbGx9ZpD-CjE-PlXD_c3y1Nj5vo,2568
263
+ reconcile/gql_definitions/common/aws_vpc_requests.py,sha256=wDJf8Lb56pvNhixLF7SpQhUoLmJfIa9DXZTsWFurkac,2607
263
264
  reconcile/gql_definitions/common/aws_vpcs.py,sha256=mbnK6yghV-q9Q7WbsCEatDQa3hySFFb8_3RBBrpQ7uM,1877
264
- reconcile/gql_definitions/common/clusters.py,sha256=MEwED0jd-eniVWTeiuFkOEqctDGY9ZXfXxDgOIGuKfY,21991
265
+ reconcile/gql_definitions/common/clusters.py,sha256=WeJqFVTQG2UYsJlKNOCzDi4IaZacbRWQI0JLJ8ylLJY,22162
265
266
  reconcile/gql_definitions/common/clusters_minimal.py,sha256=zJxvtO32n0fpYYru7xyUrh-r0zqYim0aItKEGSaEGA4,4616
266
267
  reconcile/gql_definitions/common/clusters_with_dms.py,sha256=SJsNxpUppYR_4tEXB7_d0YXZmX8nlxm2JlpizmeROAM,2238
267
268
  reconcile/gql_definitions/common/clusters_with_peering.py,sha256=yW0wJ7CHpNXZzRDFtmPNah7DhdQxDrwMLgmcpxbdIEU,11883
@@ -306,7 +307,7 @@ reconcile/gql_definitions/endpoints_discovery/apps.py,sha256=p3hvzvrtkCCQfQoJ3mi
306
307
  reconcile/gql_definitions/external_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
307
308
  reconcile/gql_definitions/external_resources/aws_accounts.py,sha256=bRzfuPDLJvVJRx7IzqAJKnqpd7SBWdj3trI1rNPeYnU,2033
308
309
  reconcile/gql_definitions/external_resources/external_resources_modules.py,sha256=w07PFh526GaYnZRe-SH92MaxA-aeD2TDT2kG_3Da_HE,3241
309
- reconcile/gql_definitions/external_resources/external_resources_namespaces.py,sha256=NGlutB2iWCfFdyLDkEn-HzbQgkZfhOJZ7Jf2ahHQB1w,46451
310
+ reconcile/gql_definitions/external_resources/external_resources_namespaces.py,sha256=DGKKoJK7rOng2FBan8vxunLdlysX9Hb9_GTPsm2wyf8,46616
310
311
  reconcile/gql_definitions/external_resources/external_resources_settings.py,sha256=RvAMgipgH3MoLfWaqCPaYUy8GS3v0Dr4Cod17OsaNx0,3567
311
312
  reconcile/gql_definitions/external_resources/fragments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
312
313
  reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py,sha256=jjABgAhVx7LO3NJd9l90JH8s-_TJFvduBZRbdVquLfY,1313
@@ -320,7 +321,7 @@ reconcile/gql_definitions/fragments/aws_account_sso.py,sha256=cUDUmS91J0sHXf7VcV
320
321
  reconcile/gql_definitions/fragments/aws_infra_management_account.py,sha256=RnF4xXyND72Pf9DzRSJFpPf-QA5o9kHLc-6uqJDfe7Q,1249
321
322
  reconcile/gql_definitions/fragments/aws_organization.py,sha256=cUgkSoluksDiUH8B6SB-EM7jPTTcV63TtbVu8mPVvSc,878
322
323
  reconcile/gql_definitions/fragments/aws_vpc.py,sha256=od8N59ekpALXbu1AQZ41Vfl4FSw7lDc6jYSJ8Xhj-NM,1429
323
- reconcile/gql_definitions/fragments/aws_vpc_request.py,sha256=Y8uO-FdRaGmgJCvK5o32ov0mqr6z3uamtulICBnvSRM,2837
324
+ reconcile/gql_definitions/fragments/aws_vpc_request.py,sha256=o0-EXt-KU6x_nVrgi-SzVzxNJE-9OTUTtODkN5k6Qb0,3049
324
325
  reconcile/gql_definitions/fragments/container_image_mirror.py,sha256=3JRKT4RyKytxLB-XJbZbaYq1fOK3BPzVmEt9bdcD_p4,963
325
326
  reconcile/gql_definitions/fragments/deploy_resources.py,sha256=ef1XZLLxm0ejV_FD4LSn_fFF-iZJaxiXOr3we2WDRLo,1084
326
327
  reconcile/gql_definitions/fragments/disable.py,sha256=6Kn2S5wIx8vlOVfLLW5pAbPgjAFHuNCsX4Q5Khq5upM,710
@@ -426,7 +427,7 @@ reconcile/gql_definitions/terraform_repo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5
426
427
  reconcile/gql_definitions/terraform_repo/terraform_repo.py,sha256=vocF7fpLk4Rdz1maZ2Hi_d5l4bt3kuL2HyDGvFIUu8M,3868
427
428
  reconcile/gql_definitions/terraform_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
428
429
  reconcile/gql_definitions/terraform_resources/database_access_manager.py,sha256=17CC1Wk65HtBn45Bo6iGsFNaLOnKD03MV3QQtixFtPw,4808
429
- reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py,sha256=1Iqx2qL8djB78deqBeegVARsdNGWzkuHneGhcIrkpG0,44504
430
+ reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py,sha256=oaLnYx6FtG33zDtE2TN8_iPXFfP8mRvPivYtoPo_8M8,44764
430
431
  reconcile/gql_definitions/terraform_tgw_attachments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
431
432
  reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py,sha256=VVWXcTGrHlZ8xqAf7p9Ygocwkm7dWZRaO_B6d_SamCc,2719
432
433
  reconcile/gql_definitions/unleash_feature_toggles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -436,8 +437,8 @@ reconcile/gql_definitions/vault_instances/vault_instances.py,sha256=ADl8D76G42t6
436
437
  reconcile/gql_definitions/vault_policies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
437
438
  reconcile/gql_definitions/vault_policies/vault_policies.py,sha256=lz3KG_T9BchfQrMpQitIu5-E1oUTkH8faHlO2zerNcg,1885
438
439
  reconcile/gql_definitions/vpc_peerings_validator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
439
- reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py,sha256=1RMZdiYj18luB5m9dYLWuGN5sTRXVrJczlTA0FVEF5g,4445
440
- reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py,sha256=tnkv5ZyFQSGFYhVZqXh4HcVr6Bu9BswOYLupp5P5fGI,1062
440
+ reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py,sha256=u_fmb8tO1sz4o4FZEaVnbOEc8INhI9BXx4DywjUmfXc,4658
441
+ reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py,sha256=rJxKDhu8A30PWuuEFmqu6LumHowAkIsJCMfqRiFkU1Y,1189
441
442
  reconcile/ldap_groups/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
442
443
  reconcile/ldap_groups/integration.py,sha256=kDKGtgxECR-SgINWQ3Wsjb53jdjoPtqO533WcERVV_U,10628
443
444
  reconcile/ocm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -502,11 +503,11 @@ reconcile/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
502
503
  reconcile/templates/aws_access_key_email.j2,sha256=2MUr1ERmyISzKgHqsWYLd-1Wbl-peUa-FsGUS-JLUFc,238
503
504
  reconcile/templates/email.yml.j2,sha256=MknE9rEeVRCvyh1JnelQ5dBtiV0CPPq9dqu_N7WsEms,682
504
505
  reconcile/templates/jira-checkpoint-missinginfo.j2,sha256=c_Vvg-lEENsB3tgxm9B6Y9igCUQhCnFDYh6xw-zcIbU,570
505
- reconcile/templates/rosa-classic-cluster-creation.sh.j2,sha256=7SfJ6m_VwetJnM64z_AsUmPtLGQwGhB2OFw80ZSgqt0,2157
506
- reconcile/templates/rosa-hcp-cluster-creation.sh.j2,sha256=t-yiFzGhG1nHdM6oZZDkT52_aBuW69eP815QU5v9atg,2411
506
+ reconcile/templates/rosa-classic-cluster-creation.sh.j2,sha256=7VlxlKpqIA9Pq7SMnaWsNH1iXvE-LEH0_Dlof8drXHA,2122
507
+ reconcile/templates/rosa-hcp-cluster-creation.sh.j2,sha256=UbLexFWBsDbSUUe3-5S5aLaH1u_t8ikZnoKd5QTk_ro,2376
507
508
  reconcile/templating/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
508
509
  reconcile/templating/renderer.py,sha256=nR1CM3DDOoLOH7UOxO0PMDkOmhiYFbGriKcjDA-Z8j8,14810
509
- reconcile/templating/validator.py,sha256=5f9f35PCHOOdjb7KZquL2YdabyuAUokPDa4xutSEHIQ,5360
510
+ reconcile/templating/validator.py,sha256=cyvSNsQqheIBl78HHDu4u_H82rt0zC8_YZL5BtT_Y1w,5266
510
511
  reconcile/templating/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
511
512
  reconcile/templating/lib/merge_request_manager.py,sha256=MaEI9Vrtblb5LIpaa394ACut0Rq_gzxJTfNVSgG113o,5234
512
513
  reconcile/templating/lib/model.py,sha256=YVUIXuPny3_kpFgBMSud8q_ndY5o882wKiX0l0A14L4,481
@@ -516,9 +517,9 @@ reconcile/terraform_init/integration.py,sha256=_MtGrxLcBvZaOQEFBPrzkllSYrnSW1hdt
516
517
  reconcile/terraform_init/merge_request.py,sha256=3CYtgSd7Q9zjKg4wsDz437EPCRfGeZZ8fZ0Y-ChKXJY,1475
517
518
  reconcile/terraform_init/merge_request_manager.py,sha256=TQmtHq4DH-xgyYvuRyGu7VEgjPU2Yjj-uexIy-L7i88,3098
518
519
  reconcile/terraform_vpc_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
519
- reconcile/terraform_vpc_resources/integration.py,sha256=j21rsxCg4Kzx8YVXSvMe07eMsbn4nEpvj-7SwbnomzU,9499
520
- reconcile/terraform_vpc_resources/merge_request.py,sha256=loRymUigCIvaaT0s_NzktZchh-DGRQnCICdBSCAcFPY,1503
521
- reconcile/terraform_vpc_resources/merge_request_manager.py,sha256=6jfwgbqXEFQlgLM6zmModpOkQX8wqddpoE0pZJL1Acc,3256
520
+ reconcile/terraform_vpc_resources/integration.py,sha256=q5il4l4Bd9fmCQePy4XSy5R3nokVvcz1v2znwadelhU,9703
521
+ reconcile/terraform_vpc_resources/merge_request.py,sha256=MFRG7JQojmCTgr-9rLXVotcjH9mMIZZ0-kPai9UDJWA,1732
522
+ reconcile/terraform_vpc_resources/merge_request_manager.py,sha256=erCC9aY-gWMCVeLrFxG5_q3G2p3iVBS8eeYIUZR_6_o,4123
522
523
  reconcile/typed_queries/__init__.py,sha256=rRk4CyslLsBr4vAh1pIPgt6s3P4R1M9NSEPLnyQgBpk,61
523
524
  reconcile/typed_queries/alerting_services_settings.py,sha256=YKQd60O_2C_H103nLrYgcUInndM2vFypqW_NO706L2E,833
524
525
  reconcile/typed_queries/app_interface_custom_messages.py,sha256=bgSAJEzqee8aiPVCj_bIIqb4VTkrF0-vti1dos7ebEg,684
@@ -559,7 +560,7 @@ reconcile/typed_queries/quay.py,sha256=3IMy9jjHF2f9t47EXZOQVA3p0nFkWFhaFhxhvib-7
559
560
  reconcile/typed_queries/repos.py,sha256=8A93dKDt6igT4ClqMjt7YUTsoP4qh1Wnm0W3xsMgj48,824
560
561
  reconcile/typed_queries/reserved_networks.py,sha256=XY9y3amtIQT0n06O0Toubqr_UmylJ2ELAv9-BJCK890,345
561
562
  reconcile/typed_queries/rhcs_provider_settings.py,sha256=fxD84CPCiH25_qc02p48LOIJHv39Wlc1VwOhs9ZVsKk,743
562
- reconcile/typed_queries/saas_files.py,sha256=Bl8WXhAWgiL1dt4ce89d_dTQIddPlQAL22tJIOyxcNw,14231
563
+ reconcile/typed_queries/saas_files.py,sha256=yVJiba_kIKYaRqSxXovNC2Zupf-KfWoVWQdOmeD1ccY,14666
563
564
  reconcile/typed_queries/slack.py,sha256=r30lspctHloyygPn8_DVybxPwUWwiBpvBRRXiTVcQYk,251
564
565
  reconcile/typed_queries/slo_documents.py,sha256=YMdox_-lBRqrdxamPhdnUlRTY_Ro35ptsupq7OaynUQ,362
565
566
  reconcile/typed_queries/smtp.py,sha256=aSLglYa5bHKmlGwKkxq2RZqyMWuAf0a4S_mOuhDa084,542
@@ -599,16 +600,16 @@ reconcile/utils/disabled_integrations.py,sha256=z1ZGUOKjZ99R-YZ68w1xnLQ_wUccI27N
599
600
  reconcile/utils/dnsutils.py,sha256=Zit4U-DAt_6AD4NVvic3I7EO5DdjNEeu8Qn_x84i-44,258
600
601
  reconcile/utils/early_exit_cache.py,sha256=D69if1mu4qD9NuoR7FHSlkTZvrabRoFH70b2YmjAFvU,8767
601
602
  reconcile/utils/elasticsearch_exceptions.py,sha256=4lwms6yjDYJzhD_xXgb96Juax5DHp_LXEUaME6t59A4,578
602
- reconcile/utils/environ.py,sha256=j43kXnqE9uVg__N-83HpcWUqv1Q8ge8ykTL3OnVs-yc,653
603
+ reconcile/utils/environ.py,sha256=UOYbV7K1MpU7lwcjslKB7oJ7Ek8pOAwf12fA2lV9LM4,818
603
604
  reconcile/utils/exceptions.py,sha256=2cKJD01d_uZM_j0CTcvDoo-WDisZJVYaeY2KUbfUHCc,686
604
605
  reconcile/utils/expiration.py,sha256=6GrQp-sYDKf6scuzzUPxSS8_q_6IiQyjcdvZEVQZzGc,1353
605
606
  reconcile/utils/extended_early_exit.py,sha256=QSktrmfw37zSRMNk930tDbQsVeKxaPPPD43e79DGwZw,6754
606
- reconcile/utils/external_resource_spec.py,sha256=y-jZvio-kPIqQ07ApWegbx5DWUnlkL8cXTg586mHBqc,8188
607
+ reconcile/utils/external_resource_spec.py,sha256=itiV8s87pD5LZ7Xx_rMTf3P-VsEdR7F5Sh7EDXJIGdE,8309
607
608
  reconcile/utils/external_resources.py,sha256=YzTb0xAcNdmKO326mGQy7BmST56CZcdru4lX7ai_7kw,7579
608
609
  reconcile/utils/filtering.py,sha256=rvCr0drVeD9x4yVox-kvbHEufBktlz3yyQjM-y3IJsM,422
609
610
  reconcile/utils/git.py,sha256=o4p9m8jlzCJDcutl2HErvGLhL6sZ1NB4Aw3zGcQIzso,2427
610
611
  reconcile/utils/github_api.py,sha256=S1vO-hvYPzm5BIychVIHSYibMns0HBmLgS78MkPfunE,3402
611
- reconcile/utils/gitlab_api.py,sha256=GQxa1InVt151z_pGo3VwKuFBTEy-pm_rMSZxkMxmVfA,28573
612
+ reconcile/utils/gitlab_api.py,sha256=bwJ605-Sef9i9EdlqDKeBqd6Y606rNQ_a3sQ4TvIqDc,29039
612
613
  reconcile/utils/gpg.py,sha256=VCNERVnIFZtIu62VbBtM_MtokTPVQ0bsCWs2evGKLeo,1254
613
614
  reconcile/utils/gql.py,sha256=68PGQE1Cm0tDwVawrnz4qvcSWNKcd2NO5zXQhZLAyPs,14562
614
615
  reconcile/utils/grouping.py,sha256=vr9SFHZ7bqmHYrvYcEZt-Er3-yQYfAAdq5sHLZVmXPY,456
@@ -618,7 +619,7 @@ reconcile/utils/imap_client.py,sha256=sJSBBCObR34JTk70raIkJYXZbmEOOyc8IDQ1CrcSO1
618
619
  reconcile/utils/instrumented_wrappers.py,sha256=BwJBirum_ISxDy1Zf1_90PaQ9Q5JSp0TInv26CmkjiE,1935
619
620
  reconcile/utils/jenkins_api.py,sha256=A7J2AnOxHHZfA-dqjUCtFgy4145peA7WwUvRIXjR5Qo,8623
620
621
  reconcile/utils/jira_client.py,sha256=dEDGFxJYF_JmbqD72qLeTWyUhVQ-YTgBqTr6UMrdn1c,11777
621
- reconcile/utils/jjb_client.py,sha256=_IbOG0soO98jaRbrPTH7y040onlOCSgKB9Q6zUFkF3Q,16326
622
+ reconcile/utils/jjb_client.py,sha256=4YyfvQj7Uh7bJ1boczvOo9yrbWUfEDjGjlISw6HW8OE,16917
622
623
  reconcile/utils/json.py,sha256=okNqZCz_R54TL4WCTrnsxpdI11VB7wKTSMu7OrKjaAo,2045
623
624
  reconcile/utils/jsonpath.py,sha256=wdxOMqR-GMpQf5vRPWRMqAF7bCiXDBkkcFfY2U4j_tk,5536
624
625
  reconcile/utils/jump_host.py,sha256=gi8vGUDgdTVwJvROvRVauFxtL0YAramhbWvG70L7AY8,5137
@@ -629,7 +630,7 @@ reconcile/utils/make.py,sha256=QaEwucrzbl8-VHS66Wfdjfo0ubmAcvt_hZGpiGsKU50,231
629
630
  reconcile/utils/metrics.py,sha256=2aqd17TUMXdU8FbsZp4YG5EyBcI8ztehdUIAS1u70p0,18506
630
631
  reconcile/utils/models.py,sha256=XqIwR-XMNhZ7m-jpfrQhuxC5TkFUMoCO5ShqUHuV3Bk,14560
631
632
  reconcile/utils/oauth2_backend_application_session.py,sha256=6W16sMpnWEPFDUX7qi5Cui2yOnmLfpgUxWtB3Ii35D0,4177
632
- reconcile/utils/oc.py,sha256=FYhTad_Nhc1Vn9dIBvxMCb-iYuOnlPlOv6AJaMsMgO0,69744
633
+ reconcile/utils/oc.py,sha256=rZlb-6aekfKwNB3lVQ98N8AIMGdQES5xWBZs5yVTyW4,70005
633
634
  reconcile/utils/oc_connection_parameters.py,sha256=-H2crz0UOVKWlNrexf04ip8Vu57rE2QZLJuurvin1_c,9705
634
635
  reconcile/utils/oc_filters.py,sha256=DXIA2--jlYadPGsKynnnXW_LIZra6N2wmD0MVngir5Y,1427
635
636
  reconcile/utils/oc_map.py,sha256=ougQ-Wlsa8ymoE_lPQ7g2LlpsUOsHVeRCLYW_6fjeWU,8976
@@ -643,7 +644,7 @@ reconcile/utils/password_validator.py,sha256=knR6jJGc-v44v-hhQFvpYrEubuFfCCc3Qly
643
644
  reconcile/utils/prometheus.py,sha256=Ad0rwLbxRuuYjHwkwJloHEdK0bvy42h-p-HIT1DhDhs,3832
644
645
  reconcile/utils/promotion_state.py,sha256=4NTBswYkzxlJIIkMz4j92dOj-jn0m36DKQg8CqZEyo8,3910
645
646
  reconcile/utils/promtool.py,sha256=YnqwMAzsQVGuBZ1j9zy3UcVPFQVJgBMLzQkxhK_KFkU,3079
646
- reconcile/utils/quay_api.py,sha256=ZWjfjzFnIsbKRDcdAnP9tWQezclf53I7VWZJ0gbF2kE,8260
647
+ reconcile/utils/quay_api.py,sha256=zlzM-1_GsVSQVd2z0SMwx3uv5wqzZ7JUKE5ZOqQPKXc,7728
647
648
  reconcile/utils/quay_mirror.py,sha256=dpWCNv5lITwIk6Q9RkmqaQKHNk_JPy27UQEribJ7E-U,1324
648
649
  reconcile/utils/raw_github_api.py,sha256=ZUDtOxdMSMs-Z0noKi0pyMtXHi5V2nCMFDB5JIM_oQ0,3057
649
650
  reconcile/utils/repo_owners.py,sha256=c6Z-U5TkiRPvuhr_zYWvZG9HZGzoT-l-d2PJ33lGflE,6507
@@ -661,7 +662,7 @@ reconcile/utils/sqs_gateway.py,sha256=GoStXLTP75zBQIL0ntwVy1oHOquY3XHtadybzifLdX
661
662
  reconcile/utils/state.py,sha256=kOI5ZorbJKWomQbnOql7uBuO7A0zQu54tUxUTZ2lEKE,16416
662
663
  reconcile/utils/structs.py,sha256=ZS3mYM3s188lfLZjcWpOoIpU8Xq76sxaapgRHJCdF-g,377
663
664
  reconcile/utils/terraform_client.py,sha256=VexlnYM9h-2-g6Y8HiE48BFi8AX-mYLhIapl2G2PUPQ,37769
664
- reconcile/utils/terrascript_aws_client.py,sha256=1PGO4WxJGin9yhBSYtlJw0GCBo3-AdTVvqZ9q8RWiY0,304412
665
+ reconcile/utils/terrascript_aws_client.py,sha256=qazXB2Re1DFReDcHwplcIF7_SmlE__z0XJv6hvd0L50,307485
665
666
  reconcile/utils/three_way_diff_strategy.py,sha256=yDEbP3HWvDDVzo_8FEbcT0pA6lz72HviXZkh5wmzkkY,4837
666
667
  reconcile/utils/throughput.py,sha256=KNDCVsCLSp89V4pO3sEUd7bJUuh6gNfsxsc_18rEv_Y,357
667
668
  reconcile/utils/vault.py,sha256=e5zo-PmqG6ccp87-Ip6d3_RPZ1eZEtawS1WbRAVP73Y,15366
@@ -801,7 +802,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
801
802
  tools/saas_promotion_state/saas_promotion_state.py,sha256=uQv2QJAmUXP1g2GPIH30WTlvL9soY6m9lefpZEVDM5w,3965
802
803
  tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
803
804
  tools/sre_checkpoints/util.py,sha256=KcYVfa3UmJHVP_ocgrKe8NkrO5IDB9aWEDydSokPcRk,975
804
- qontract_reconcile-0.10.2.dev430.dist-info/METADATA,sha256=kJzPO4XaAK6gRUXXyLcH4mLo6Ewdy4uY-Bl6sfnN9XU,24948
805
- qontract_reconcile-0.10.2.dev430.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
806
- qontract_reconcile-0.10.2.dev430.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
807
- qontract_reconcile-0.10.2.dev430.dist-info/RECORD,,
805
+ qontract_reconcile-0.10.2.dev474.dist-info/METADATA,sha256=oYW2fCk5f3JAjGbdGytQi68vJr65LZHBBT-U3Gi_JLQ,24948
806
+ qontract_reconcile-0.10.2.dev474.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
807
+ qontract_reconcile-0.10.2.dev474.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
808
+ qontract_reconcile-0.10.2.dev474.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,59 @@
1
+ import logging
2
+
3
+ from reconcile.utils.jobcontroller.controller import K8sJobController
4
+ from reconcile.utils.ocm.base import OCMCluster
5
+ from reconcile.utils.ocm_base_client import OCMBaseClient
6
+ from reconcile.utils.rosa.rosa_cli import RosaCliError
7
+ from reconcile.utils.rosa.session import RosaSession
8
+ from reconcile.utils.semver_helper import get_version_prefix
9
+
10
+ STS_GATE_LABEL = "api.openshift.com/gate-sts"
11
+ AUS_VERSION_GATE_APPROVALS_LABEL = "sre-capabilities.aus.version-gate-approvals"
12
+
13
+
14
+ class AUSSTSGateHandler:
15
+ def __init__(
16
+ self,
17
+ job_controller: K8sJobController,
18
+ aws_iam_role: str,
19
+ rosa_job_service_account: str | None = None,
20
+ rosa_job_image: str | None = None,
21
+ ) -> None:
22
+ self.job_controller = job_controller
23
+ self.aws_iam_role = aws_iam_role
24
+ self.rosa_job_image = rosa_job_image
25
+ self.rosa_job_service_account = rosa_job_service_account
26
+
27
+ def upgrade_rosa_roles(
28
+ self,
29
+ cluster: OCMCluster,
30
+ upgrade_version: str,
31
+ dry_run: bool,
32
+ ocm_api: OCMBaseClient,
33
+ ocm_org_id: str,
34
+ ) -> bool:
35
+ if not cluster.aws:
36
+ return False
37
+ rosa = RosaSession(
38
+ aws_account_id=cluster.aws.aws_account_id,
39
+ aws_region=cluster.region.id,
40
+ aws_iam_role=self.aws_iam_role,
41
+ ocm_org_id=ocm_org_id,
42
+ ocm_api=ocm_api,
43
+ job_controller=self.job_controller,
44
+ image=self.rosa_job_image,
45
+ service_account=self.rosa_job_service_account,
46
+ )
47
+ policy_version = get_version_prefix(upgrade_version)
48
+ try:
49
+ rosa.upgrade_rosa_roles(
50
+ cluster_name=cluster.name,
51
+ upgrade_version=upgrade_version,
52
+ policy_version=policy_version,
53
+ dry_run=dry_run,
54
+ )
55
+ except RosaCliError as e:
56
+ logging.error(f"Failed to upgrade roles for cluster {cluster.name}: {e}")
57
+ e.write_logs_to_logger(logging.error)
58
+ return False
59
+ return True
reconcile/aus/base.py CHANGED
@@ -20,6 +20,11 @@ from pydantic import BaseModel
20
20
  from requests.exceptions import HTTPError
21
21
  from semver import VersionInfo
22
22
 
23
+ from reconcile.aus.aus_sts_gate_handler import (
24
+ AUS_VERSION_GATE_APPROVALS_LABEL,
25
+ STS_GATE_LABEL,
26
+ AUSSTSGateHandler,
27
+ )
23
28
  from reconcile.aus.cluster_version_data import (
24
29
  VersionData,
25
30
  VersionDataMap,
@@ -46,7 +51,7 @@ from reconcile.aus.models import (
46
51
  OrganizationUpgradeSpec,
47
52
  Sector,
48
53
  )
49
- from reconcile.aus.version_gates import HANDLERS, sts_version_gate_handler
54
+ from reconcile.aus.version_gates import HANDLERS
50
55
  from reconcile.gql_definitions.advanced_upgrade_service.aus_organization import (
51
56
  query as aus_organizations_query,
52
57
  )
@@ -113,8 +118,6 @@ from reconcile.utils.semver_helper import (
113
118
  from reconcile.utils.state import init_state
114
119
 
115
120
  MIN_DELTA_MINUTES = 6
116
- STS_GATE_LABEL = "api.openshift.com/gate-sts"
117
- AUS_VERSION_GATE_APPROVALS_LABEL = "sre-capabilities.aus.version-gate-approvals"
118
121
 
119
122
 
120
123
  class RosaRoleUpgradeHandlerParams(PydanticRunParams):
@@ -457,9 +460,6 @@ class AddonUpgradePolicy(AbstractUpgradePolicy, arbitrary_types_allowed=True):
457
460
  addon_id: str
458
461
  addon_service: AddonService
459
462
 
460
- class Config:
461
- arbitrary_types_allowed = True
462
-
463
463
  def create(
464
464
  self,
465
465
  ocm_api: OCMBaseClient,
@@ -518,7 +518,7 @@ class ClusterUpgradePolicy(AbstractUpgradePolicy):
518
518
  and self.should_upgrade_roles()
519
519
  ):
520
520
  logging.info(f"Updating account and operator roles for {self.cluster.name}")
521
- sts_gate_handler = sts_version_gate_handler.STSGateHandler(
521
+ aus_sts_gate_handler = AUSSTSGateHandler(
522
522
  job_controller=build_job_controller(
523
523
  integration=rosa_role_upgrade_handler_params.integration_name,
524
524
  integration_version=rosa_role_upgrade_handler_params.integration_version,
@@ -531,7 +531,7 @@ class ClusterUpgradePolicy(AbstractUpgradePolicy):
531
531
  rosa_job_service_account=rosa_role_upgrade_handler_params.rosa_job_service_account,
532
532
  rosa_job_image=rosa_role_upgrade_handler_params.rosa_job_image,
533
533
  )
534
- if not sts_gate_handler.upgrade_rosa_roles_v2(
534
+ if not aus_sts_gate_handler.upgrade_rosa_roles(
535
535
  ocm_api=ocm_api,
536
536
  cluster=self.cluster,
537
537
  dry_run=False,
@@ -549,6 +549,7 @@ class ClusterUpgradePolicy(AbstractUpgradePolicy):
549
549
  )
550
550
  if not handler_csv:
551
551
  return False
552
+
552
553
  return (
553
554
  self.cluster.is_sts()
554
555
  and self.cluster.is_rosa_classic()
@@ -14,9 +14,6 @@ from reconcile.gql_definitions.common.ocm_environments import (
14
14
  )
15
15
  from reconcile.utils import gql
16
16
  from reconcile.utils.grouping import group_by
17
- from reconcile.utils.jobcontroller.controller import (
18
- build_job_controller,
19
- )
20
17
  from reconcile.utils.ocm.base import (
21
18
  ClusterDetails,
22
19
  LabelContainer,
@@ -63,19 +60,7 @@ class VersionGateApprover(QontractReconcileIntegration[VersionGateApproverParams
63
60
 
64
61
  def initialize_handlers(self, query_func: Callable) -> None:
65
62
  self.handlers: dict[str, GateHandler] = {
66
- sts_version_gate_handler.GATE_LABEL: sts_version_gate_handler.STSGateHandler(
67
- job_controller=build_job_controller(
68
- integration=QONTRACT_INTEGRATION,
69
- integration_version=QONTRACT_INTEGRATION_VERSION,
70
- cluster=self.params.job_controller_cluster,
71
- namespace=self.params.job_controller_namespace,
72
- secret_reader=self.secret_reader,
73
- dry_run=False,
74
- ),
75
- aws_iam_role=self.params.rosa_role,
76
- rosa_job_service_account=self.params.rosa_job_service_account,
77
- rosa_job_image=self.params.rosa_job_image,
78
- ),
63
+ sts_version_gate_handler.GATE_LABEL: sts_version_gate_handler.STSGateHandler(),
79
64
  ocp_gate_handler.GATE_LABEL: ocp_gate_handler.OCPGateHandler(),
80
65
  ingress_gate_handler.GATE_LABEL: ingress_gate_handler.IngressGateHandler(),
81
66
  }
@@ -1,28 +1,16 @@
1
- import logging
2
-
3
1
  from reconcile.aus.version_gates.handler import GateHandler
4
- from reconcile.utils.jobcontroller.controller import K8sJobController
5
2
  from reconcile.utils.ocm.base import OCMCluster, OCMVersionGate
6
3
  from reconcile.utils.ocm_base_client import OCMBaseClient
7
- from reconcile.utils.rosa.rosa_cli import RosaCliError
8
- from reconcile.utils.rosa.session import RosaSession
9
- from reconcile.utils.semver_helper import get_version_prefix
10
4
 
11
5
  GATE_LABEL = "api.openshift.com/gate-sts"
12
6
 
13
7
 
14
8
  class STSGateHandler(GateHandler):
15
- def __init__(
16
- self,
17
- job_controller: K8sJobController,
18
- aws_iam_role: str,
19
- rosa_job_service_account: str | None = None,
20
- rosa_job_image: str | None = None,
21
- ) -> None:
22
- self.job_controller = job_controller
23
- self.aws_iam_role = aws_iam_role
24
- self.rosa_job_image = rosa_job_image
25
- self.rosa_job_service_account = rosa_job_service_account
9
+ """
10
+ This handler is used to handle the STS version gate.
11
+ Right now we just ack all gate-sts gates
12
+ The actual job of role upgrade is now a part of AUS and is handled by the AUSSTSGateHandler.
13
+ """
26
14
 
27
15
  @staticmethod
28
16
  def gate_applicable_to_cluster(cluster: OCMCluster) -> bool:
@@ -42,112 +30,4 @@ class STSGateHandler(GateHandler):
42
30
  gate: OCMVersionGate,
43
31
  dry_run: bool,
44
32
  ) -> bool:
45
- if (
46
- not cluster.id
47
- or not cluster.aws
48
- or not cluster.aws.sts
49
- or not cluster.is_sts()
50
- ):
51
- # checked already but mypy :/
52
- return False
53
-
54
- if cluster.is_rosa_hypershift():
55
- # thanks to hypershift managed policies, there is nothing to do for us here
56
- # returning True will ack the version gate
57
- return True
58
- if not cluster.is_rosa_classic():
59
- # we manage roels only for rosa classic clusters
60
- # returning here will prevent OSD STS clusters to be handled right now
61
- logging.error(
62
- f"Cluster {cluster.id} is not a ROSA cluster. "
63
- "STS version gates are only handled for ROSA classic clusters."
64
- )
65
- return False
66
-
67
- return self.upgrade_rosa_roles(
68
- cluster=cluster,
69
- version_raw_id_prefix=gate.version_raw_id_prefix,
70
- dry_run=dry_run,
71
- ocm_api=ocm_api,
72
- ocm_org_id=ocm_org_id,
73
- )
74
-
75
- def upgrade_rosa_roles(
76
- self,
77
- cluster: OCMCluster,
78
- version_raw_id_prefix: str,
79
- dry_run: bool,
80
- ocm_api: OCMBaseClient,
81
- ocm_org_id: str,
82
- ) -> bool:
83
- if not cluster.aws:
84
- return False
85
- rosa = RosaSession(
86
- aws_account_id=cluster.aws.aws_account_id,
87
- aws_region=cluster.region.id,
88
- aws_iam_role=self.aws_iam_role,
89
- ocm_org_id=ocm_org_id,
90
- ocm_api=ocm_api,
91
- job_controller=self.job_controller,
92
- image=self.rosa_job_image,
93
- service_account=self.rosa_job_service_account,
94
- )
95
-
96
- try:
97
- # account role handling
98
- account_role_prefix = cluster.aws.account_role_prefix
99
- if not account_role_prefix:
100
- raise Exception(
101
- f"Can't upgrade account roles. Cluster {cluster.name} does not define spec.aws.account_role_prefix"
102
- )
103
- rosa.upgrade_account_roles(
104
- role_prefix=account_role_prefix,
105
- minor_version=version_raw_id_prefix,
106
- channel_group=cluster.version.channel_group,
107
- dry_run=dry_run,
108
- )
109
-
110
- # operator role handling
111
- rosa.upgrade_operator_roles(
112
- cluster_id=cluster.id,
113
- dry_run=dry_run,
114
- )
115
- except RosaCliError as e:
116
- logging.error(f"Failed to upgrade roles for cluster {cluster.name}: {e}")
117
- e.write_logs_to_logger(logging.error)
118
- return False
119
- return True
120
-
121
- def upgrade_rosa_roles_v2(
122
- self,
123
- cluster: OCMCluster,
124
- upgrade_version: str,
125
- dry_run: bool,
126
- ocm_api: OCMBaseClient,
127
- ocm_org_id: str,
128
- ) -> bool:
129
- if not cluster.aws:
130
- return False
131
- rosa = RosaSession(
132
- aws_account_id=cluster.aws.aws_account_id,
133
- aws_region=cluster.region.id,
134
- aws_iam_role=self.aws_iam_role,
135
- ocm_org_id=ocm_org_id,
136
- ocm_api=ocm_api,
137
- job_controller=self.job_controller,
138
- image=self.rosa_job_image,
139
- service_account=self.rosa_job_service_account,
140
- )
141
- policy_version = get_version_prefix(upgrade_version)
142
- try:
143
- rosa.upgrade_rosa_roles(
144
- cluster_name=cluster.name,
145
- upgrade_version=upgrade_version,
146
- policy_version=policy_version,
147
- dry_run=dry_run,
148
- )
149
- except RosaCliError as e:
150
- logging.error(f"Failed to upgrade roles for cluster {cluster.name}: {e}")
151
- e.write_logs_to_logger(logging.error)
152
- return False
153
33
  return True