qontract-reconcile 0.10.2.dev504__py3-none-any.whl → 0.10.2.dev505__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 (28) hide show
  1. {qontract_reconcile-0.10.2.dev504.dist-info → qontract_reconcile-0.10.2.dev505.dist-info}/METADATA +1 -4
  2. {qontract_reconcile-0.10.2.dev504.dist-info → qontract_reconcile-0.10.2.dev505.dist-info}/RECORD +10 -28
  3. reconcile/cli.py +0 -108
  4. reconcile/gql_definitions/integrations/integrations.py +1 -31
  5. reconcile/integrations_manager.py +0 -2
  6. reconcile/utils/external_resource_spec.py +1 -2
  7. reconcile/utils/runtime/sharding.py +0 -80
  8. tools/cli_commands/systems_and_tools.py +0 -23
  9. reconcile/gql_definitions/terraform_cloudflare_dns/__init__.py +0 -0
  10. reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +0 -62
  11. reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +0 -193
  12. reconcile/gql_definitions/terraform_cloudflare_resources/__init__.py +0 -0
  13. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +0 -127
  14. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +0 -359
  15. reconcile/gql_definitions/terraform_cloudflare_users/__init__.py +0 -0
  16. reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +0 -62
  17. reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +0 -139
  18. reconcile/terraform_cloudflare_dns.py +0 -379
  19. reconcile/terraform_cloudflare_resources.py +0 -445
  20. reconcile/terraform_cloudflare_users.py +0 -374
  21. reconcile/typed_queries/cloudflare.py +0 -10
  22. reconcile/utils/terrascript/__init__.py +0 -0
  23. reconcile/utils/terrascript/cloudflare_client.py +0 -310
  24. reconcile/utils/terrascript/cloudflare_resources.py +0 -432
  25. reconcile/utils/terrascript/models.py +0 -26
  26. reconcile/utils/terrascript/resources.py +0 -43
  27. {qontract_reconcile-0.10.2.dev504.dist-info → qontract_reconcile-0.10.2.dev505.dist-info}/WHEEL +0 -0
  28. {qontract_reconcile-0.10.2.dev504.dist-info → qontract_reconcile-0.10.2.dev505.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.dev504
3
+ Version: 0.10.2.dev505
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
@@ -302,9 +302,6 @@ OpenShift templates can be found [here](/openshift/qontract-reconcile.yaml). In
302
302
  template-validator Test app-interface templates.
303
303
  terraform-aws-route53 Manage AWS Route53 resources using
304
304
  Terraform.
305
- terraform-cloudflare-dns Manage Cloudflare DNS using Terraform.
306
- terraform-cloudflare-resources Manage Cloudflare Resources using Terraform.
307
- terraform-cloudflare-users Manage Cloudflare Users using Terraform.
308
305
  terraform-init Initialize AWS accounts for Terraform usage.
309
306
  terraform-repo Manages raw HCL Terraform from a separate
310
307
  repository.
@@ -8,7 +8,7 @@ reconcile/aws_iam_password_reset.py,sha256=5oajSspJVAvpGd445hKsxtEGYb75dM4l1_PJT
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=bGWl826ucs0KOwH7DciYJkdZvEV90bqoSlMs36gxgg4,116607
11
+ reconcile/cli.py,sha256=0xHsCeDEY8IdXrdI8K7FWw4VerBgAImcKgAfG6D8bRg,113602
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
@@ -33,7 +33,7 @@ reconcile/gitlab_mr_sqs_consumer.py,sha256=3FB5vbVB9INBxMj4s1PrDIX-I1Gwu-CGBOH2_
33
33
  reconcile/gitlab_owners.py,sha256=So7OWq3B1f3-aYlhd2kARYt1nwPV4jrbf5YPRXoHPrM,14663
34
34
  reconcile/gitlab_permissions.py,sha256=0H2UCa_44hgWbbOKFTw7zxjOjhjqDmS-m6r1gFFkaLQ,8188
35
35
  reconcile/gitlab_projects.py,sha256=JIB1UP8CnwSkngEMZE7DFQETMX6sJMp4DXaKoS-Pdkc,1879
36
- reconcile/integrations_manager.py,sha256=fk5Vt7MaJMb0XnC2AZjcSPi8RQ-wM8tf8LADKsdu6G0,9416
36
+ reconcile/integrations_manager.py,sha256=OCqNderRsiS-h1P_dXjCEo2BEJOSAFD87IHtlx3z2Ug,9282
37
37
  reconcile/jenkins_base.py,sha256=0Gocu3fU2YTltaxBlbDQOUvP-7CP2OSQV1ZRwtWeVXw,875
38
38
  reconcile/jenkins_job_builder.py,sha256=eRR3AL3RN7U_8A4hceUlj_k_jWf-qHMyLr9gqxcj3kQ,3469
39
39
  reconcile/jenkins_job_builds_cleaner.py,sha256=l9eLyvdgv1sN2tAlkGx3T8g6Db9kIfWW3LJh5H6dV9A,4080
@@ -103,9 +103,6 @@ reconcile/sql_query.py,sha256=Go_H36p3YTW4Xv-elYDxW_Fe6Q4ErFhD6eQoFh9Jylw,26424
103
103
  reconcile/status.py,sha256=h73oaSxO5sftEGqFrXVAlySBvNYPWpowDaYYplcky5A,565
104
104
  reconcile/status_board.py,sha256=iv2CR3IsX_uDY5aXHjTOySeTR5d3vsABykYNiYNjZew,15316
105
105
  reconcile/terraform_aws_route53.py,sha256=rmV6-AhGB2q_u4v7scIjol99jfSwjTJpmZZwePikZOU,10443
106
- reconcile/terraform_cloudflare_dns.py,sha256=L3vmwAq46Npc1eswQM3gDT48Zocbm6bwh-vsHuxf2aU,13474
107
- reconcile/terraform_cloudflare_resources.py,sha256=KxUH05BHSFxuF89Q1DT2lVxCIhTY_dVTw6vjvyv772g,15024
108
- reconcile/terraform_cloudflare_users.py,sha256=J48VZekuu6owmitdWuXCCji4PSPI1PI8TbLrzyDL2Rk,13540
109
106
  reconcile/terraform_repo.py,sha256=YkC-OD86oTMuvkcDPQijCQTWktrC78QrKVSof_pSV2I,15763
110
107
  reconcile/terraform_resources.py,sha256=aqhOX7WyFQA5ALppbrGetdwkM2_rYZn4g6qa-3eUF6s,19907
111
108
  reconcile/terraform_tgw_attachments.py,sha256=zWDvTkjUp7iHgQpyolmJeg9YMaRuDlqgL14iSvvW3x8,19324
@@ -358,7 +355,7 @@ reconcile/gql_definitions/glitchtip/glitchtip_project.py,sha256=S2EMzBNjAt5TLDib
358
355
  reconcile/gql_definitions/glitchtip_project_alerts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
359
356
  reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py,sha256=lOUipTG-B_4JVVmMvTOE8f85xligovO2hgFcMzIO3Ww,5193
360
357
  reconcile/gql_definitions/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
361
- reconcile/gql_definitions/integrations/integrations.py,sha256=IPG3dqeZY7Ax1SIdXzB-wBeRFQfnhxYucrHKtIjWXbg,11560
358
+ reconcile/gql_definitions/integrations/integrations.py,sha256=_6iPnU-1fYz69hRl3Lu1km8RE40msR6Znp7Pcz5RBwk,10585
362
359
  reconcile/gql_definitions/jenkins_configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
360
  reconcile/gql_definitions/jenkins_configs/jenkins_configs.py,sha256=Boepc9jr03xJB_qvOYyKmSqPVtLwHfRndrhhU7850jM,2948
364
361
  reconcile/gql_definitions/jenkins_configs/jenkins_instances.py,sha256=DYUY-HuZVFOJzHIlnj2HVI_18Sn6tM4isTsbHuETqpA,2151
@@ -419,15 +416,6 @@ reconcile/gql_definitions/statuspage/statuspages.py,sha256=TJVD-0rwJ8WEzHLju4bn4
419
416
  reconcile/gql_definitions/templating/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
420
417
  reconcile/gql_definitions/templating/template_collection.py,sha256=pHkxuBQmk3yIA58bJnu2zCa_wb5a1SZl90Appg2hV5U,4118
421
418
  reconcile/gql_definitions/templating/templates.py,sha256=Cv2NhRngl_9oW_eLM7wMYfajDrCboyqfDmwoWqwvHcc,3367
422
- reconcile/gql_definitions/terraform_cloudflare_dns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
423
- reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py,sha256=wjj3g0UBnS7FsfSoFMRHq_x8WJ4BfgfX0IbAS8bIMcY,1916
424
- reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py,sha256=F9A6csePJZNUxr0N7-8CC_RcZ4RPMdNwuFMaBtXZqzQ,5817
425
- reconcile/gql_definitions/terraform_cloudflare_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
426
- reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py,sha256=Wd6i1oo5WxlyXHeab2GuyXL8xgpm1NXCphCyMdQ2MLw,3707
427
- reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py,sha256=btJaFYHp1jxOXEsScRTIgLDlgoyytTdFBFBHvH7ymjY,12257
428
- reconcile/gql_definitions/terraform_cloudflare_users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
429
- reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py,sha256=gRxCfy4X9otRyOHtTo038gdYYD3lJ6FTz0yiGavGbfY,1956
430
- reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py,sha256=CFYS6kM0q3Wqrsyr7zhCLfeAkVK_Z6pD5xmkMwOyrG4,4012
431
419
  reconcile/gql_definitions/terraform_init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
432
420
  reconcile/gql_definitions/terraform_init/aws_accounts.py,sha256=xutFbwVVBVhmhjHp3z_O5t53fRoPT1ePrPVM9sm3ZSI,3037
433
421
  reconcile/gql_definitions/terraform_repo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -547,7 +535,6 @@ reconcile/typed_queries/apps.py,sha256=IzgDQnKnvGKvFsgfIkha935I1T24tAYEp_LwrLrwV
547
535
  reconcile/typed_queries/aws_account_tags.py,sha256=ifD3ZTiQ-1_aNmNFtQ0oKbUHnsoBDGce_Zx2l_TOMJA,1319
548
536
  reconcile/typed_queries/aws_vpc_requests.py,sha256=fr2o1vp_j_0JAlTYfbwGqPr-99EihCfCOFjC5z4Sx5M,345
549
537
  reconcile/typed_queries/aws_vpcs.py,sha256=SBQ-uQeXLj98Rqqju1m-3cx2-IYRqINK5Pi7cdwbNoc,326
550
- reconcile/typed_queries/cloudflare.py,sha256=jOsqgCzMrjomPaIWc1isTcQAGONmMIJDTBcpmCheonA,308
551
538
  reconcile/typed_queries/clusters.py,sha256=0GJO4T3AKQUDNsUucwcV6QBmOiTKlcM3R6zqmjcgxIQ,458
552
539
  reconcile/typed_queries/clusters_minimal.py,sha256=XmEvQoSTG_2Xx92kVRGWDWzgo4f6oKwwLk9MFQAZnLY,469
553
540
  reconcile/typed_queries/clusters_with_dms.py,sha256=QkT7wMgW2039G-GGPfnDYCAiHx2McIJZijndFtTBcyI,506
@@ -619,7 +606,7 @@ reconcile/utils/environ.py,sha256=UOYbV7K1MpU7lwcjslKB7oJ7Ek8pOAwf12fA2lV9LM4,81
619
606
  reconcile/utils/exceptions.py,sha256=2cKJD01d_uZM_j0CTcvDoo-WDisZJVYaeY2KUbfUHCc,686
620
607
  reconcile/utils/expiration.py,sha256=6GrQp-sYDKf6scuzzUPxSS8_q_6IiQyjcdvZEVQZzGc,1353
621
608
  reconcile/utils/extended_early_exit.py,sha256=QSktrmfw37zSRMNk930tDbQsVeKxaPPPD43e79DGwZw,6754
622
- reconcile/utils/external_resource_spec.py,sha256=itiV8s87pD5LZ7Xx_rMTf3P-VsEdR7F5Sh7EDXJIGdE,8309
609
+ reconcile/utils/external_resource_spec.py,sha256=rVJT5kbD_MonUXnlDXS_3Kg4xq1BkRII9SeASXjkxHo,8176
623
610
  reconcile/utils/external_resources.py,sha256=YzTb0xAcNdmKO326mGQy7BmST56CZcdru4lX7ai_7kw,7579
624
611
  reconcile/utils/filtering.py,sha256=rvCr0drVeD9x4yVox-kvbHEufBktlz3yyQjM-y3IJsM,422
625
612
  reconcile/utils/git.py,sha256=o4p9m8jlzCJDcutl2HErvGLhL6sZ1NB4Aw3zGcQIzso,2427
@@ -767,7 +754,7 @@ reconcile/utils/runtime/environment.py,sha256=rRrj4t11R1JSQO08RcJxkQkyHhRGI8ePo-
767
754
  reconcile/utils/runtime/integration.py,sha256=etpSg6D9iqud3mG6UMmovBrRFBWHpjKLW6AUdlu5q5w,15172
768
755
  reconcile/utils/runtime/meta.py,sha256=M_EOxrb0KhQA4TwpHekbog2jOZqaBPVTIijXyRuMjn0,255
769
756
  reconcile/utils/runtime/runner.py,sha256=p7xCT1IDlDz6wKYMDMPOTEdztM4hbcxo0fw9gQf4q-A,9028
770
- reconcile/utils/runtime/sharding.py,sha256=r0ieUtNed7NvknSw6qQrCkKpVXE1shuHGnfFcnpA_k4,16142
757
+ reconcile/utils/runtime/sharding.py,sha256=bfcrQYAHiriM99koZGonrurWk8hPzifpOJAumjV4baE,13026
771
758
  reconcile/utils/saasherder/__init__.py,sha256=3U8plqMAPRE1kjwZ5YnIsYsggTf4_gS7flRUEuXVBAs,343
772
759
  reconcile/utils/saasherder/interfaces.py,sha256=9zEb02A1hnjyc7L5A7uzgYXifEaDWJ6AEPqeTo0qhNg,9447
773
760
  reconcile/utils/saasherder/models.py,sha256=QHxc-F1CekKG7x8KkDYpzyCyvd_nQHc5QfmRhVEwYE8,13036
@@ -775,11 +762,6 @@ reconcile/utils/saasherder/saasherder.py,sha256=-zbE4Zt5K-ig6cQDDJe7P_PkSroon_Q6
775
762
  reconcile/utils/terraform/__init__.py,sha256=zNbiyTWo35AT1sFTElL2j_AA0jJ_yWE_bfFn-nD2xik,250
776
763
  reconcile/utils/terraform/config.py,sha256=5UVrd563TMcvi4ooa5JvWVDW1I3bIWg484u79evfV_8,164
777
764
  reconcile/utils/terraform/config_client.py,sha256=gRL1rQ0AqvShei_rcGqC3HDYGskOFKE1nPrJyJE9yno,4676
778
- reconcile/utils/terrascript/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
779
- reconcile/utils/terrascript/cloudflare_client.py,sha256=pHEjwqguHDQVr8zsWmXBAx9Jx4mx6BkLymXOmpBgFqc,10493
780
- reconcile/utils/terrascript/cloudflare_resources.py,sha256=mGU4WBveVWXr3FQL104Z2suduHBdeCHcV7S_u3x481A,15947
781
- reconcile/utils/terrascript/models.py,sha256=DZfSEqyaZh8fCE_g7toa9TUCzcn3MHnuumoWCdzACh0,441
782
- reconcile/utils/terrascript/resources.py,sha256=ucuudrCjmJYeSleklXTlmeSEwZOqVtEfzWFEiDZydxM,1361
783
765
  reconcile/utils/unleash/__init__.py,sha256=2PsN3GlLU8DOyWSvv5q9uzwuFn_vYtfEo-mmVaIFtpA,219
784
766
  reconcile/utils/unleash/client.py,sha256=YrJnauxjcy1ml7W2AHg7dzIH_fVK_GugoRu7IFmk6e0,3505
785
767
  reconcile/utils/unleash/server.py,sha256=X79h8E371IeBjJlKtufKxwfo3EBUPxrJ17yVRFMC2Ac,4403
@@ -797,7 +779,7 @@ tools/cli_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
797
779
  tools/cli_commands/container_images_report.py,sha256=8mAjCS6XR0yD7k0mfiVBlt6xbYU47q_ftdYNi5o5VKE,5566
798
780
  tools/cli_commands/erv2.py,sha256=0qx-BZJex4SUNpnSxlIkr3r7buOzjmMHhmB46C9cnJ0,24051
799
781
  tools/cli_commands/gpg_encrypt.py,sha256=EzCR3JvlCfO-a8VLG-mArD3edwM-aa0mUrDj1y0_NW0,5032
800
- tools/cli_commands/systems_and_tools.py,sha256=cBSHPOzjWhbYVFr50zsre5vGcVnovFkrZVSGsssUgqU,16985
782
+ tools/cli_commands/systems_and_tools.py,sha256=QYc7dpHK2so2eo5spS1Sdo1-pl2EuftxHI6-E_zvHAE,16065
801
783
  tools/cli_commands/cost_report/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
802
784
  tools/cli_commands/cost_report/aws.py,sha256=JtwDfhaYLfa4Uz1LR6OfSBh_3nBlb90kQq6i3MV_ims,4563
803
785
  tools/cli_commands/cost_report/cost_management_api.py,sha256=lWBIsR8Q0NlbvVLMdgsPbYO4S3DfNnWK8uHTnmMqR_w,4686
@@ -817,7 +799,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
817
799
  tools/saas_promotion_state/saas_promotion_state.py,sha256=uQv2QJAmUXP1g2GPIH30WTlvL9soY6m9lefpZEVDM5w,3965
818
800
  tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
819
801
  tools/sre_checkpoints/util.py,sha256=KcYVfa3UmJHVP_ocgrKe8NkrO5IDB9aWEDydSokPcRk,975
820
- qontract_reconcile-0.10.2.dev504.dist-info/METADATA,sha256=u1D6L0x1bQlbczcO7NirnJCDRnask9Rj_SjQuHsUgdo,24958
821
- qontract_reconcile-0.10.2.dev504.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
822
- qontract_reconcile-0.10.2.dev504.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
823
- qontract_reconcile-0.10.2.dev504.dist-info/RECORD,,
802
+ qontract_reconcile-0.10.2.dev505.dist-info/METADATA,sha256=jXUVjfTPEzImBRH60j4FCxgYOFyB1s0ij0TCpyE7Rz8,24731
803
+ qontract_reconcile-0.10.2.dev505.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
804
+ qontract_reconcile-0.10.2.dev505.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
805
+ qontract_reconcile-0.10.2.dev505.dist-info/RECORD,,
reconcile/cli.py CHANGED
@@ -364,12 +364,6 @@ def account_name(function: Callable) -> Callable:
364
364
  return function
365
365
 
366
366
 
367
- def cloudflare_zone_name(function: Callable) -> Callable:
368
- function = click.option("--zone-name", default=None)(function)
369
-
370
- return function
371
-
372
-
373
367
  def account_name_multiple(function: Callable) -> Callable:
374
368
  """This option can be used when more than one account needs to be passed as argument"""
375
369
  function = click.option(
@@ -2337,108 +2331,6 @@ def terraform_resources(
2337
2331
  )
2338
2332
 
2339
2333
 
2340
- @integration.command(short_help="Manage Cloudflare Resources using Terraform.")
2341
- @print_to_file
2342
- @enable_deletion(default=False)
2343
- @threaded()
2344
- @binary(["terraform"])
2345
- @binary_version("terraform", ["version"], TERRAFORM_VERSION_REGEX, TERRAFORM_VERSION)
2346
- @account_name
2347
- @vault_output_path
2348
- @use_jump_host()
2349
- @internal()
2350
- @click.pass_context
2351
- def terraform_cloudflare_resources(
2352
- ctx: click.Context,
2353
- print_to_file: str | None,
2354
- enable_deletion: bool,
2355
- thread_pool_size: int,
2356
- account_name: str | None,
2357
- vault_output_path: str,
2358
- internal: bool,
2359
- use_jump_host: bool,
2360
- ) -> None:
2361
- import reconcile.terraform_cloudflare_resources
2362
-
2363
- run_integration(
2364
- reconcile.terraform_cloudflare_resources,
2365
- ctx,
2366
- print_to_file,
2367
- enable_deletion,
2368
- thread_pool_size,
2369
- account_name,
2370
- vault_output_path,
2371
- internal,
2372
- use_jump_host,
2373
- )
2374
-
2375
-
2376
- @integration.command(short_help="Manage Cloudflare DNS using Terraform.")
2377
- @print_to_file
2378
- @enable_deletion(default=False)
2379
- @threaded()
2380
- @binary(["terraform"])
2381
- @binary_version("terraform", ["version"], TERRAFORM_VERSION_REGEX, TERRAFORM_VERSION)
2382
- @account_name
2383
- @cloudflare_zone_name
2384
- @click.pass_context
2385
- def terraform_cloudflare_dns(
2386
- ctx: click.Context,
2387
- print_to_file: str | None,
2388
- enable_deletion: bool,
2389
- thread_pool_size: int,
2390
- account_name: str | None,
2391
- zone_name: str | None,
2392
- ) -> None:
2393
- from reconcile import terraform_cloudflare_dns
2394
-
2395
- run_class_integration(
2396
- integration=terraform_cloudflare_dns.TerraformCloudflareDNSIntegration(
2397
- terraform_cloudflare_dns.TerraformCloudflareDNSIntegrationParams(
2398
- print_to_file=print_to_file,
2399
- enable_deletion=enable_deletion,
2400
- thread_pool_size=thread_pool_size,
2401
- selected_account=account_name,
2402
- selected_zone=zone_name,
2403
- )
2404
- ),
2405
- ctx=ctx,
2406
- )
2407
-
2408
-
2409
- @integration.command(short_help="Manage Cloudflare Users using Terraform.")
2410
- @print_to_file
2411
- @binary(["terraform"])
2412
- @threaded()
2413
- @binary_version("terraform", ["version"], TERRAFORM_VERSION_REGEX, TERRAFORM_VERSION)
2414
- @account_name
2415
- @enable_deletion(default=True)
2416
- @click.pass_context
2417
- def terraform_cloudflare_users(
2418
- ctx: click.Context,
2419
- print_to_file: str | None,
2420
- account_name: str | None,
2421
- thread_pool_size: int,
2422
- enable_deletion: bool,
2423
- ) -> None:
2424
- from reconcile.terraform_cloudflare_users import (
2425
- TerraformCloudflareUsers,
2426
- TerraformCloudflareUsersParams,
2427
- )
2428
-
2429
- run_class_integration(
2430
- TerraformCloudflareUsers(
2431
- TerraformCloudflareUsersParams(
2432
- print_to_file=print_to_file,
2433
- account_name=account_name,
2434
- thread_pool_size=thread_pool_size,
2435
- enable_deletion=enable_deletion,
2436
- )
2437
- ),
2438
- ctx,
2439
- )
2440
-
2441
-
2442
2334
  @integration.command(short_help="Manage auto-promotions defined in SaaS files")
2443
2335
  @threaded()
2444
2336
  @click.option("--env-name", default=None, help="environment to filter saas files by")
@@ -174,20 +174,6 @@ query Integrations {
174
174
  }
175
175
  }
176
176
  }
177
-
178
- ... on CloudflareDNSZoneSharding_v1 {
179
- shardSpecOverrides {
180
- shard {
181
- zone
182
- identifier
183
- }
184
- imageRef
185
- disabled
186
- resources {
187
- ...DeployResourcesFields
188
- }
189
- }
190
- }
191
177
  }
192
178
  }
193
179
  }
@@ -323,26 +309,10 @@ class AWSAccountShardingV1(IntegrationShardingV1):
323
309
  shard_spec_overrides: Optional[list[AWSAccountShardSpecOverrideV1]] = Field(..., alias="shardSpecOverrides")
324
310
 
325
311
 
326
- class CloudflareDnsZoneV1(ConfiguredBaseModel):
327
- zone: str = Field(..., alias="zone")
328
- identifier: str = Field(..., alias="identifier")
329
-
330
-
331
- class CloudflareDNSZoneShardSpecOverrideV1(ConfiguredBaseModel):
332
- shard: CloudflareDnsZoneV1 = Field(..., alias="shard")
333
- image_ref: Optional[str] = Field(..., alias="imageRef")
334
- disabled: Optional[bool] = Field(..., alias="disabled")
335
- resources: Optional[DeployResourcesFields] = Field(..., alias="resources")
336
-
337
-
338
- class CloudflareDNSZoneShardingV1(IntegrationShardingV1):
339
- shard_spec_overrides: Optional[list[CloudflareDNSZoneShardSpecOverrideV1]] = Field(..., alias="shardSpecOverrides")
340
-
341
-
342
312
  class IntegrationManagedV1(ConfiguredBaseModel):
343
313
  namespace: NamespaceV1 = Field(..., alias="namespace")
344
314
  spec: IntegrationSpecV1 = Field(..., alias="spec")
345
- sharding: Optional[Union[StaticShardingV1, OpenshiftClusterShardingV1, OCMOrganizationShardingV1, AWSAccountShardingV1, CloudflareDNSZoneShardingV1, IntegrationShardingV1]] = Field(..., alias="sharding")
315
+ sharding: Optional[Union[StaticShardingV1, OpenshiftClusterShardingV1, OCMOrganizationShardingV1, AWSAccountShardingV1, IntegrationShardingV1]] = Field(..., alias="sharding")
346
316
 
347
317
 
348
318
  class IntegrationV1(ConfiguredBaseModel):
@@ -41,7 +41,6 @@ from reconcile.utils.openshift_resource import (
41
41
  from reconcile.utils.runtime.meta import IntegrationMeta
42
42
  from reconcile.utils.runtime.sharding import (
43
43
  AWSAccountShardingStrategy,
44
- CloudflareDnsZoneShardingStrategy,
45
44
  IntegrationShardManager,
46
45
  OCMOrganizationShardingStrategy,
47
46
  OpenshiftClusterShardingStrategy,
@@ -257,7 +256,6 @@ def run(
257
256
  StaticShardingStrategy.IDENTIFIER: StaticShardingStrategy(),
258
257
  AWSAccountShardingStrategy.IDENTIFIER: AWSAccountShardingStrategy(),
259
258
  OpenshiftClusterShardingStrategy.IDENTIFIER: OpenshiftClusterShardingStrategy(),
260
- CloudflareDnsZoneShardingStrategy.IDENTIFIER: CloudflareDnsZoneShardingStrategy(),
261
259
  OCMOrganizationShardingStrategy.IDENTIFIER: OCMOrganizationShardingStrategy(),
262
260
  },
263
261
  integration_runtime_meta=integration_runtime_meta,
@@ -125,8 +125,7 @@ class ExternalResourceSpec:
125
125
  def output_prefix(self) -> str:
126
126
  # Adhere to DNS-1123 subdomain names spec. It's reasonable to have provider
127
127
  # names that have underscores, but without replacing them with hyphens we run
128
- # into issues. Alternatively, we could change Cloudflare worker_script to
129
- # worker-script and prevent the use of underscores going forward.
128
+ # into issues.
130
129
  #
131
130
  # More info can be found at:
132
131
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.
@@ -14,8 +14,6 @@ from reconcile.gql_definitions.fragments.minimal_ocm_organization import (
14
14
  from reconcile.gql_definitions.integrations.integrations import (
15
15
  AWSAccountShardingV1,
16
16
  AWSAccountShardSpecOverrideV1,
17
- CloudflareDNSZoneShardingV1,
18
- CloudflareDNSZoneShardSpecOverrideV1,
19
17
  IntegrationManagedV1,
20
18
  IntegrationShardingV1,
21
19
  IntegrationSpecV1,
@@ -31,12 +29,6 @@ from reconcile.gql_definitions.sharding import aws_accounts as sharding_aws_acco
31
29
  from reconcile.gql_definitions.sharding import (
32
30
  ocm_organization as sharding_ocm_organization,
33
31
  )
34
- from reconcile.gql_definitions.terraform_cloudflare_dns import (
35
- terraform_cloudflare_zones,
36
- )
37
- from reconcile.gql_definitions.terraform_cloudflare_dns.terraform_cloudflare_zones import (
38
- CloudflareDnsZoneV1,
39
- )
40
32
  from reconcile.typed_queries.clusters_minimal import get_clusters_minimal
41
33
  from reconcile.utils import gql
42
34
  from reconcile.utils.runtime.meta import IntegrationMeta
@@ -49,7 +41,6 @@ class ShardSpec(BaseModel):
49
41
  shard_spec_overrides: (
50
42
  AWSAccountShardSpecOverrideV1
51
43
  | OpenshiftClusterShardSpecOverrideV1
52
- | CloudflareDNSZoneShardSpecOverrideV1
53
44
  | OCMOrganizationShardSpecOverrideV1
54
45
  | None
55
46
  ) = None
@@ -363,77 +354,6 @@ class OpenshiftClusterShardingStrategy:
363
354
  return shards
364
355
 
365
356
 
366
- class CloudflareDnsZoneShardingStrategy:
367
- """
368
- This provides a new sharding strategy that each shard is targeting a Cloudflare zone.
369
- It uses the combination of the Cloudflare account name and the zone's identifier as the unique sharding key.
370
- """
371
-
372
- IDENTIFIER = "per-cloudflare-dns-zone"
373
-
374
- def __init__(self, cloudflare_zones: Iterable[CloudflareDnsZoneV1] | None = None):
375
- if not cloudflare_zones:
376
- self.cloudflare_zones = (
377
- terraform_cloudflare_zones.query(query_func=gql.get_api().query).zones
378
- or []
379
- )
380
- else:
381
- self.cloudflare_zones = list(cloudflare_zones)
382
-
383
- def _get_shard_key(self, dns_zone: CloudflareDnsZoneV1) -> str:
384
- return f"{dns_zone.account.name}-{dns_zone.identifier}"
385
-
386
- def get_shard_spec_overrides(
387
- self, sharding: IntegrationShardingV1 | None
388
- ) -> dict[str, CloudflareDNSZoneShardSpecOverrideV1]:
389
- spos: dict[str, CloudflareDNSZoneShardSpecOverrideV1] = {}
390
-
391
- if (
392
- isinstance(sharding, CloudflareDNSZoneShardingV1)
393
- and sharding.shard_spec_overrides
394
- ):
395
- for override in sharding.shard_spec_overrides:
396
- key = f"{override.shard.zone}-{override.shard.identifier}"
397
- spos[key] = override
398
- return spos
399
-
400
- def check_integration_sharding_params(self, meta: IntegrationMeta) -> None:
401
- if "--zone-name" not in meta.args:
402
- raise ValueError(
403
- f"integration {meta.name} does not support the provided argument. "
404
- f"--zone-name is required by the '{self.IDENTIFIER}' sharding "
405
- "strategy."
406
- )
407
-
408
- def build_shard_spec(
409
- self,
410
- dns_zone: CloudflareDnsZoneV1,
411
- integration_spec: IntegrationSpecV1,
412
- spo: CloudflareDNSZoneShardSpecOverrideV1 | None,
413
- ) -> ShardSpec:
414
- return ShardSpec(
415
- shard_key=self._get_shard_key(dns_zone),
416
- shard_name_suffix=f"-{self._get_shard_key(dns_zone)}",
417
- extra_args=(integration_spec.extra_args or "")
418
- + f" --zone-name {dns_zone.identifier}",
419
- shard_spec_overrides=spo,
420
- )
421
-
422
- def build_integration_shards(
423
- self,
424
- integration_meta: IntegrationMeta,
425
- integration_managed: IntegrationManagedV1,
426
- ) -> list[ShardSpec]:
427
- self.check_integration_sharding_params(integration_meta)
428
- spos = self.get_shard_spec_overrides(integration_managed.sharding)
429
- shards = []
430
- for zone in self.cloudflare_zones or []:
431
- spo = spos.get(self._get_shard_key(zone))
432
- base_shard = self.build_shard_spec(zone, integration_managed.spec, spo)
433
- shards.append(base_shard)
434
- return shards
435
-
436
-
437
357
  @dataclass
438
358
  class IntegrationShardManager:
439
359
  strategies: dict[str, ShardingStrategy]
@@ -85,12 +85,6 @@ from reconcile.gql_definitions.statuspage.statuspages import (
85
85
  from reconcile.gql_definitions.statuspage.statuspages import (
86
86
  StatusPageV1,
87
87
  )
88
- from reconcile.gql_definitions.terraform_cloudflare_resources.terraform_cloudflare_accounts import (
89
- DEFINITION as CLOUDFLARE_ACCOUNTS_DEFINITION,
90
- )
91
- from reconcile.gql_definitions.terraform_cloudflare_resources.terraform_cloudflare_accounts import (
92
- CloudflareAccountV1,
93
- )
94
88
  from reconcile.gql_definitions.terraform_tgw_attachments.aws_accounts import (
95
89
  DEFINITION as AWS_ACCOUNTS_DEFINITION,
96
90
  )
@@ -110,7 +104,6 @@ from reconcile.gql_definitions.vault_instances.vault_instances import (
110
104
  VaultInstanceV1,
111
105
  )
112
106
  from reconcile.statuspage.integration import get_status_pages
113
- from reconcile.typed_queries.cloudflare import get_cloudflare_accounts
114
107
  from reconcile.typed_queries.clusters import get_clusters
115
108
  from reconcile.typed_queries.dynatrace import get_dynatrace_environments
116
109
  from reconcile.typed_queries.gitlab_instances import (
@@ -180,8 +173,6 @@ class SystemTool(BaseModel):
180
173
  return cls.init_from_unleash_instance(model, enumeration)
181
174
  case VaultInstanceV1():
182
175
  return cls.init_from_vault_instance(model, enumeration)
183
- case CloudflareAccountV1():
184
- return cls.init_from_cloudflare_account(model, enumeration)
185
176
  case AppCodeComponentsV1():
186
177
  return cls.init_from_code_component(model, enumeration)
187
178
  case _:
@@ -368,19 +359,6 @@ class SystemTool(BaseModel):
368
359
  enumeration=enumeration,
369
360
  )
370
361
 
371
- @classmethod
372
- def init_from_cloudflare_account(
373
- cls, a: CloudflareAccountV1, enumeration: Any
374
- ) -> Self:
375
- return cls(
376
- system_type="cloudflare",
377
- system_id=a.name,
378
- name=a.name,
379
- url="https://dash.cloudflare.com/",
380
- description=a.description,
381
- enumeration=enumeration,
382
- )
383
-
384
362
  @classmethod
385
363
  def init_from_code_component(cls, c: AppCodeComponentsV1, enumeration: Any) -> Self:
386
364
  return cls(
@@ -469,7 +447,6 @@ def get_systems_and_tools_inventory() -> SystemToolInventory:
469
447
  inventory.update(get_status_pages(), STATUS_PAGES_DEFINITION)
470
448
  inventory.update(get_unleash_instances(), UNLEASH_INSTANCES_DEFINITION)
471
449
  inventory.update(get_vault_instances(), VAULT_INSTANCES_DEFINITION)
472
- inventory.update(get_cloudflare_accounts(), CLOUDFLARE_ACCOUNTS_DEFINITION)
473
450
  inventory.update(
474
451
  [
475
452
  c
@@ -1,62 +0,0 @@
1
- """
2
- Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
- """
4
- from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
- from datetime import datetime # noqa: F401 # pylint: disable=W0611
6
- from enum import Enum # noqa: F401 # pylint: disable=W0611
7
- from typing import ( # noqa: F401 # pylint: disable=W0611
8
- Any,
9
- Optional,
10
- Union,
11
- )
12
-
13
- from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
- BaseModel,
15
- ConfigDict,
16
- Field,
17
- Json,
18
- )
19
-
20
-
21
- DEFINITION = """
22
- query AppInterfaceSettingCloudflareDNS {
23
- settings: app_interface_settings_v1 {
24
- cloudflareDNSZoneMaxRecords
25
- vault
26
- }
27
- }
28
- """
29
-
30
-
31
- class ConfiguredBaseModel(BaseModel):
32
- model_config = ConfigDict(
33
- extra='forbid'
34
- )
35
-
36
-
37
- class AppInterfaceSettingsV1(ConfiguredBaseModel):
38
- cloudflare_dns_zone_max_records: Optional[int] = Field(..., alias="cloudflareDNSZoneMaxRecords")
39
- vault: bool = Field(..., alias="vault")
40
-
41
-
42
- class AppInterfaceSettingCloudflareDNSQueryData(ConfiguredBaseModel):
43
- settings: Optional[list[AppInterfaceSettingsV1]] = Field(..., alias="settings")
44
-
45
-
46
- def query(query_func: Callable, **kwargs: Any) -> AppInterfaceSettingCloudflareDNSQueryData:
47
- """
48
- This is a convenience function which queries and parses the data into
49
- concrete types. It should be compatible with most GQL clients.
50
- You do not have to use it to consume the generated data classes.
51
- Alternatively, you can also mime and alternate the behavior
52
- of this function in the caller.
53
-
54
- Parameters:
55
- query_func (Callable): Function which queries your GQL Server
56
- kwargs: optional arguments that will be passed to the query function
57
-
58
- Returns:
59
- AppInterfaceSettingCloudflareDNSQueryData: queried data parsed into generated classes
60
- """
61
- raw_data: dict[Any, Any] = query_func(DEFINITION, **kwargs)
62
- return AppInterfaceSettingCloudflareDNSQueryData(**raw_data)