qontract-reconcile 0.10.2.dev427__py3-none-any.whl → 0.10.2.dev456__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.

Potentially problematic release.


This version of qontract-reconcile might be problematic. Click here for more details.

Files changed (35) hide show
  1. {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/METADATA +1 -1
  2. {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/RECORD +35 -34
  3. {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/WHEEL +1 -1
  4. reconcile/aus/aus_sts_gate_handler.py +59 -0
  5. reconcile/aus/base.py +9 -5
  6. reconcile/aus/version_gate_approver.py +1 -16
  7. reconcile/aus/version_gates/sts_version_gate_handler.py +5 -125
  8. reconcile/aws_ecr_image_pull_secrets.py +1 -1
  9. reconcile/change_owners/change_owners.py +100 -34
  10. reconcile/cli.py +1 -1
  11. reconcile/external_resources/secrets_sync.py +2 -3
  12. reconcile/gql_definitions/common/aws_vpc_requests.py +3 -0
  13. reconcile/gql_definitions/common/clusters.py +2 -0
  14. reconcile/gql_definitions/external_resources/external_resources_namespaces.py +3 -1
  15. reconcile/gql_definitions/fragments/aws_vpc_request.py +5 -0
  16. reconcile/gql_definitions/introspection.json +48 -0
  17. reconcile/gql_definitions/rhcs/certs.py +1 -0
  18. reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py +1 -0
  19. reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +5 -1
  20. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +3 -0
  21. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +1 -0
  22. reconcile/openshift_namespaces.py +3 -4
  23. reconcile/openshift_rhcs_certs.py +51 -12
  24. reconcile/templates/rosa-classic-cluster-creation.sh.j2 +1 -1
  25. reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +1 -1
  26. reconcile/terraform_vpc_resources/integration.py +10 -7
  27. reconcile/typed_queries/saas_files.py +9 -4
  28. reconcile/utils/environ.py +5 -0
  29. reconcile/utils/gitlab_api.py +12 -0
  30. reconcile/utils/jjb_client.py +19 -3
  31. reconcile/utils/oc.py +8 -2
  32. reconcile/utils/rhcsv2_certs.py +87 -21
  33. reconcile/utils/terrascript_aws_client.py +140 -50
  34. reconcile/vpc_peerings_validator.py +13 -0
  35. {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.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.dev427
3
+ Version: 0.10.2.dev456
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
@@ -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,13 +60,13 @@ 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
67
67
  reconcile/openshift_resources.py,sha256=YnhDxCvsp0muxEmULiqWhoar9EzxohTrnbY-U7oS5Hc,1603
68
68
  reconcile/openshift_resources_base.py,sha256=tuOEH1UKoWksmPAfZJOhmLY6IghkvBcZyqa48kDLeR4,43172
69
- reconcile/openshift_rhcs_certs.py,sha256=R6ySElFRsdk0aqXSMtMeVSC9ptyp_F3TTAR1PPTz8bw,10320
69
+ reconcile/openshift_rhcs_certs.py,sha256=UjBFX344n4eFXZmoEUCVeGECBowWTpbjNyPGrEzAmkA,11544
70
70
  reconcile/openshift_rolebindings.py,sha256=G4n7wWTGZ34OsRgen0L3EpdPXuFEdZ_1E-b3ROvSb4I,10824
71
71
  reconcile/openshift_routes.py,sha256=xnA34f32xDdkfV2MXIC1QURFJioQUsXT8AZBiY7iSP0,1298
72
72
  reconcile/openshift_saas_deploy.py,sha256=YQRIjnb-V6x1a0fUv2w3hqjMj5tyqRirzkG8DzknYdc,13159
@@ -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=ph9gxWQ5JcusY9S8gAa1Lz1Z_1rd_0W6w_aZYO9Ypzc,54136
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,12 +128,12 @@ 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
@@ -162,7 +163,7 @@ reconcile/change_owners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
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=9M0_D52xiRiN7UQe-q22C0FZZCdWmCAWXajieGYjJRk,18418
166
167
  reconcile/change_owners/change_types.py,sha256=5eSvS2_npUriq9RN4LdAWdYUiNzF91K1pDUEVYDIQ4k,32023
167
168
  reconcile/change_owners/changes.py,sha256=YTqwUYutQ6JVSSYmC2Ph5ROCiVix42Vnzy47-i57z4Q,18119
168
169
  reconcile/change_owners/decision.py,sha256=755rHmrnhfM_xVKnCPlLPOVm_TCJVb3lSkkUvxFM61Q,7491
@@ -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=Kzq3r12ukcmtCAxbUpP5FisO0yZLuY4_lQin95wmrQw,2427551
217
+ reconcile/gql_definitions/introspection.json,sha256=RA-nGyii90zEWBMoF1mBiv2ue-d0mV5ofxwAJHOVj-M,2429636
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
@@ -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=XRqi539Xu_lFwmK_pyb_5VvwDjIlcUrRwX1Ht9WiRG0,46525
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
@@ -385,8 +386,8 @@ reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py,sha256=qv6tn
385
386
  reconcile/gql_definitions/quay_membership/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
386
387
  reconcile/gql_definitions/quay_membership/quay_membership.py,sha256=1Qj-UtDERTL9qSw047bMhz98DGDxLYV6vFHuQtLRZQM,3071
387
388
  reconcile/gql_definitions/rhcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
388
- reconcile/gql_definitions/rhcs/certs.py,sha256=wBEMTnLKldPTu3g-mxUi1LyJXD4OnQSDnBO6uQVJg2c,4181
389
- reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py,sha256=wlwJX2sihN7-EX6yyNo5VJtazx-p5kn32DLcI_d-gdU,1303
389
+ reconcile/gql_definitions/rhcs/certs.py,sha256=11hKter-i0eELiuSbzw74wGmHuQs98C5tn269_XuoxU,4202
390
+ reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py,sha256=ANQwqNUepRZmsf5knTkLbuYCICokQAGtTVKc61UU5R8,1382
390
391
  reconcile/gql_definitions/rhidp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
391
392
  reconcile/gql_definitions/rhidp/organizations.py,sha256=kbs2taA3frv74zDtSHzgf6cAL2w6RkI0Xf7C_TpCKqs,2546
392
393
  reconcile/gql_definitions/service_dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -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=wO8dycnslrO5THKDma8VSRboO5bSiBDUiYbJqMhr_6s,44673
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,8 +503,8 @@ 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
510
  reconcile/templating/validator.py,sha256=5f9f35PCHOOdjb7KZquL2YdabyuAUokPDa4xutSEHIQ,5360
@@ -516,7 +517,7 @@ 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/integration.py,sha256=q5il4l4Bd9fmCQePy4XSy5R3nokVvcz1v2znwadelhU,9703
520
521
  reconcile/terraform_vpc_resources/merge_request.py,sha256=loRymUigCIvaaT0s_NzktZchh-DGRQnCICdBSCAcFPY,1503
521
522
  reconcile/terraform_vpc_resources/merge_request_manager.py,sha256=6jfwgbqXEFQlgLM6zmModpOkQX8wqddpoE0pZJL1Acc,3256
522
523
  reconcile/typed_queries/__init__.py,sha256=rRk4CyslLsBr4vAh1pIPgt6s3P4R1M9NSEPLnyQgBpk,61
@@ -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=F6F59Uo1fkap3mpNjV7YoVfcSf2tN_ixowBaMpxaLyc,14667
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,7 +600,7 @@ 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
@@ -608,7 +609,7 @@ reconcile/utils/external_resources.py,sha256=YzTb0xAcNdmKO326mGQy7BmST56CZcdru4l
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
@@ -648,7 +649,7 @@ reconcile/utils/quay_mirror.py,sha256=dpWCNv5lITwIk6Q9RkmqaQKHNk_JPy27UQEribJ7E-
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
650
651
  reconcile/utils/rest_api_base.py,sha256=MT7tp6CQO2S5aKfVOzw_hipWg7wAGoOqkm4qurI1hEU,4342
651
- reconcile/utils/rhcsv2_certs.py,sha256=eTtusF9hGMNVuMJpiDM0VGeJyMRhdrSZZ8p8-47BFAU,4404
652
+ reconcile/utils/rhcsv2_certs.py,sha256=wt-dYeCeoiLTkt8VGHI2FXxQjBxuLAIIsWVRC9DfuxE,6613
652
653
  reconcile/utils/ruamel.py,sha256=FzL4_L0FnMOUZmgThrZSMJs5MTdXwiy-E9MZWfk8bh8,397
653
654
  reconcile/utils/secret_reader.py,sha256=9wcKdC6cuxHFn1j1GpLgBkWl3-7TVGTGWHcevmGtYL0,9988
654
655
  reconcile/utils/semver_helper.py,sha256=-WfPOMSA2v1h7hT3PwVf-Htg7wOsoKlQC1JdmDX2Ars,1268
@@ -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.dev427.dist-info/METADATA,sha256=NjqCRn18fEFCp48fYwMUJhH8KUPXRfczLzNLjF7BS0o,24948
805
- qontract_reconcile-0.10.2.dev427.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
806
- qontract_reconcile-0.10.2.dev427.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
807
- qontract_reconcile-0.10.2.dev427.dist-info/RECORD,,
805
+ qontract_reconcile-0.10.2.dev456.dist-info/METADATA,sha256=s_WqWgoFL4Yacm8I8TJYk6b3-Q_Wn9ONhB7GxO9tsN8,24948
806
+ qontract_reconcile-0.10.2.dev456.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
807
+ qontract_reconcile-0.10.2.dev456.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
808
+ qontract_reconcile-0.10.2.dev456.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):
@@ -518,7 +521,7 @@ class ClusterUpgradePolicy(AbstractUpgradePolicy):
518
521
  and self.should_upgrade_roles()
519
522
  ):
520
523
  logging.info(f"Updating account and operator roles for {self.cluster.name}")
521
- sts_gate_handler = sts_version_gate_handler.STSGateHandler(
524
+ aus_sts_gate_handler = AUSSTSGateHandler(
522
525
  job_controller=build_job_controller(
523
526
  integration=rosa_role_upgrade_handler_params.integration_name,
524
527
  integration_version=rosa_role_upgrade_handler_params.integration_version,
@@ -531,7 +534,7 @@ class ClusterUpgradePolicy(AbstractUpgradePolicy):
531
534
  rosa_job_service_account=rosa_role_upgrade_handler_params.rosa_job_service_account,
532
535
  rosa_job_image=rosa_role_upgrade_handler_params.rosa_job_image,
533
536
  )
534
- if not sts_gate_handler.upgrade_rosa_roles_v2(
537
+ if not aus_sts_gate_handler.upgrade_rosa_roles(
535
538
  ocm_api=ocm_api,
536
539
  cluster=self.cluster,
537
540
  dry_run=False,
@@ -549,6 +552,7 @@ class ClusterUpgradePolicy(AbstractUpgradePolicy):
549
552
  )
550
553
  if not handler_csv:
551
554
  return False
555
+
552
556
  return (
553
557
  self.cluster.is_sts()
554
558
  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
@@ -21,7 +21,7 @@ def get_password(token: str) -> str:
21
21
 
22
22
  def construct_dockercfg_secret_data(data: Mapping[str, Any]) -> dict[str, str]:
23
23
  auth_data = data["authorizationData"][0]
24
- server = auth_data["proxyEndpoint"]
24
+ server = auth_data["proxyEndpoint"].replace("https://", "")
25
25
  token = auth_data["authorizationToken"]
26
26
  password = get_password(token)
27
27
  data = {