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.
- {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/METADATA +1 -1
- {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/RECORD +35 -34
- {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/WHEEL +1 -1
- reconcile/aus/aus_sts_gate_handler.py +59 -0
- reconcile/aus/base.py +9 -5
- reconcile/aus/version_gate_approver.py +1 -16
- reconcile/aus/version_gates/sts_version_gate_handler.py +5 -125
- reconcile/aws_ecr_image_pull_secrets.py +1 -1
- reconcile/change_owners/change_owners.py +100 -34
- reconcile/cli.py +1 -1
- reconcile/external_resources/secrets_sync.py +2 -3
- reconcile/gql_definitions/common/aws_vpc_requests.py +3 -0
- reconcile/gql_definitions/common/clusters.py +2 -0
- reconcile/gql_definitions/external_resources/external_resources_namespaces.py +3 -1
- reconcile/gql_definitions/fragments/aws_vpc_request.py +5 -0
- reconcile/gql_definitions/introspection.json +48 -0
- reconcile/gql_definitions/rhcs/certs.py +1 -0
- reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py +1 -0
- reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +5 -1
- reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +3 -0
- reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +1 -0
- reconcile/openshift_namespaces.py +3 -4
- reconcile/openshift_rhcs_certs.py +51 -12
- reconcile/templates/rosa-classic-cluster-creation.sh.j2 +1 -1
- reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +1 -1
- reconcile/terraform_vpc_resources/integration.py +10 -7
- reconcile/typed_queries/saas_files.py +9 -4
- reconcile/utils/environ.py +5 -0
- reconcile/utils/gitlab_api.py +12 -0
- reconcile/utils/jjb_client.py +19 -3
- reconcile/utils/oc.py +8 -2
- reconcile/utils/rhcsv2_certs.py +87 -21
- reconcile/utils/terrascript_aws_client.py +140 -50
- reconcile/vpc_peerings_validator.py +13 -0
- {qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/entry_points.txt +0 -0
{qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qontract-reconcile
|
|
3
|
-
Version: 0.10.2.
|
|
3
|
+
Version: 0.10.2.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
|
{qontract_reconcile-0.10.2.dev427.dist-info → qontract_reconcile-0.10.2.dev456.dist-info}/RECORD
RENAMED
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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/
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
389
|
-
reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py,sha256=
|
|
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=
|
|
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=
|
|
440
|
-
reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py,sha256=
|
|
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=
|
|
506
|
-
reconcile/templates/rosa-hcp-cluster-creation.sh.j2,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
805
|
-
qontract_reconcile-0.10.2.
|
|
806
|
-
qontract_reconcile-0.10.2.
|
|
807
|
-
qontract_reconcile-0.10.2.
|
|
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,,
|
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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 = {
|