qontract-reconcile 0.10.2.dev428__tar.gz → 0.10.2.dev459__tar.gz

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 (808) hide show
  1. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/PKG-INFO +1 -1
  2. qontract_reconcile-0.10.2.dev459/reconcile/aus/aus_sts_gate_handler.py +59 -0
  3. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/base.py +9 -5
  4. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/version_gate_approver.py +1 -16
  5. qontract_reconcile-0.10.2.dev459/reconcile/aus/version_gates/sts_version_gate_handler.py +33 -0
  6. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_ecr_image_pull_secrets.py +1 -1
  7. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/README.md +1 -1
  8. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/change_owners.py +108 -42
  9. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/decision.py +1 -1
  10. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/cli.py +1 -1
  11. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/secrets_sync.py +2 -3
  12. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/aws_vpc_requests.py +3 -0
  13. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/clusters.py +2 -0
  14. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/external_resources/external_resources_namespaces.py +3 -1
  15. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aws_vpc_request.py +5 -0
  16. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/introspection.json +36 -0
  17. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +5 -1
  18. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +3 -0
  19. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +1 -0
  20. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_namespaces.py +3 -4
  21. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templates/rosa-classic-cluster-creation.sh.j2 +1 -1
  22. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +1 -1
  23. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_vpc_resources/integration.py +10 -7
  24. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/saas_files.py +9 -4
  25. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/environ.py +5 -0
  26. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/gitlab_api.py +12 -0
  27. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jjb_client.py +19 -3
  28. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/oc.py +8 -2
  29. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terrascript_aws_client.py +140 -50
  30. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/vpc_peerings_validator.py +13 -0
  31. qontract_reconcile-0.10.2.dev428/reconcile/aus/version_gates/sts_version_gate_handler.py +0 -153
  32. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/README.md +0 -0
  33. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/pyproject.toml +0 -0
  34. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/__init__.py +0 -0
  35. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/acs_policies.py +0 -0
  36. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/acs_rbac.py +0 -0
  37. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/__init__.py +0 -0
  38. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/advanced_upgrade_service.py +0 -0
  39. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/aus_label_source.py +0 -0
  40. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/cluster_version_data.py +0 -0
  41. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/healthchecks.py +0 -0
  42. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/metrics.py +0 -0
  43. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/models.py +0 -0
  44. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/node_pool_spec.py +0 -0
  45. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/ocm_addons_upgrade_scheduler_org.py +0 -0
  46. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/ocm_upgrade_scheduler.py +0 -0
  47. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/ocm_upgrade_scheduler_org.py +0 -0
  48. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/upgrades.py +0 -0
  49. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/version_gates/__init__.py +0 -0
  50. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/version_gates/handler.py +0 -0
  51. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/version_gates/ingress_gate_handler.py +0 -0
  52. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aus/version_gates/ocp_gate_handler.py +0 -0
  53. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/automated_actions/__init__.py +0 -0
  54. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/automated_actions/config/__init__.py +0 -0
  55. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/automated_actions/config/integration.py +0 -0
  56. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_account_manager/README.md +0 -0
  57. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_account_manager/__init__.py +0 -0
  58. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_account_manager/integration.py +0 -0
  59. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_account_manager/merge_request_manager.py +0 -0
  60. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_account_manager/metrics.py +0 -0
  61. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_account_manager/reconciler.py +0 -0
  62. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_account_manager/utils.py +0 -0
  63. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_ami_cleanup/__init__.py +0 -0
  64. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_ami_cleanup/integration.py +0 -0
  65. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_ami_share.py +0 -0
  66. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_cloudwatch_log_retention/__init__.py +0 -0
  67. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_cloudwatch_log_retention/integration.py +0 -0
  68. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_iam_keys.py +0 -0
  69. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_iam_password_reset.py +0 -0
  70. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_saml_idp/__init__.py +0 -0
  71. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_saml_idp/integration.py +0 -0
  72. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_saml_roles/__init__.py +0 -0
  73. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_saml_roles/integration.py +0 -0
  74. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_support_cases_sos.py +0 -0
  75. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_version_sync/__init__.py +0 -0
  76. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_version_sync/integration.py +0 -0
  77. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_version_sync/merge_request_manager/__init__.py +0 -0
  78. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_version_sync/merge_request_manager/merge_request.py +0 -0
  79. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_version_sync/merge_request_manager/merge_request_manager.py +0 -0
  80. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/aws_version_sync/utils.py +0 -0
  81. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/blackbox_exporter_endpoint_monitoring.py +0 -0
  82. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/__init__.py +0 -0
  83. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/approver.py +0 -0
  84. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/bundle.py +0 -0
  85. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/change_log_tracking.py +0 -0
  86. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/change_types.py +0 -0
  87. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/changes.py +0 -0
  88. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/diff.py +0 -0
  89. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/implicit_ownership.py +0 -0
  90. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/self_service_roles.py +0 -0
  91. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/change_owners/tester.py +0 -0
  92. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/checkpoint.py +0 -0
  93. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/closedbox_endpoint_monitoring_base.py +0 -0
  94. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/cluster_auth_rhidp/__init__.py +0 -0
  95. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/cluster_auth_rhidp/integration.py +0 -0
  96. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/cluster_deployment_mapper.py +0 -0
  97. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dashdotdb_base.py +0 -0
  98. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dashdotdb_dora.py +0 -0
  99. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dashdotdb_dvo.py +0 -0
  100. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dashdotdb_slo.py +0 -0
  101. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/database_access_manager.py +0 -0
  102. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/deadmanssnitch.py +0 -0
  103. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dynatrace_token_provider/__init__.py +0 -0
  104. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dynatrace_token_provider/dependencies.py +0 -0
  105. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dynatrace_token_provider/integration.py +0 -0
  106. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dynatrace_token_provider/metrics.py +0 -0
  107. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dynatrace_token_provider/model.py +0 -0
  108. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dynatrace_token_provider/ocm.py +0 -0
  109. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/dynatrace_token_provider/validate.py +0 -0
  110. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/email_sender.py +0 -0
  111. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/endpoints_discovery/__init__.py +0 -0
  112. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/endpoints_discovery/integration.py +0 -0
  113. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/endpoints_discovery/merge_request.py +0 -0
  114. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/endpoints_discovery/merge_request_manager.py +0 -0
  115. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/__init__.py +0 -0
  116. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/aws.py +0 -0
  117. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/factories.py +0 -0
  118. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/integration.py +0 -0
  119. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/integration_secrets_sync.py +0 -0
  120. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/manager.py +0 -0
  121. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/meta.py +0 -0
  122. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/metrics.py +0 -0
  123. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/model.py +0 -0
  124. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/reconciler.py +0 -0
  125. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/external_resources/state.py +0 -0
  126. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/__init__.py +0 -0
  127. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/dependencies.py +0 -0
  128. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/integration.py +0 -0
  129. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/merge_request.py +0 -0
  130. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/meta.py +0 -0
  131. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/metrics.py +0 -0
  132. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/ocm.py +0 -0
  133. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/validate.py +0 -0
  134. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/fleet_labeler/vcs.py +0 -0
  135. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gabi_authorized_users.py +0 -0
  136. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gcp_image_mirror.py +0 -0
  137. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/github_org.py +0 -0
  138. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/github_owners.py +0 -0
  139. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/github_repo_invites.py +0 -0
  140. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/github_repo_permissions_validator.py +0 -0
  141. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/github_validator.py +0 -0
  142. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_fork_compliance.py +0 -0
  143. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_housekeeping.py +0 -0
  144. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_labeler.py +0 -0
  145. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_members.py +0 -0
  146. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_mr_sqs_consumer.py +0 -0
  147. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_owners.py +0 -0
  148. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_permissions.py +0 -0
  149. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gitlab_projects.py +0 -0
  150. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip/README.md +0 -0
  151. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip/__init__.py +0 -0
  152. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip/integration.py +0 -0
  153. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip/reconciler.py +0 -0
  154. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip_project_alerts/__init__.py +0 -0
  155. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip_project_alerts/integration.py +0 -0
  156. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip_project_dsn/__init__.py +0 -0
  157. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/glitchtip_project_dsn/integration.py +0 -0
  158. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/__init__.py +0 -0
  159. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/acs/__init__.py +0 -0
  160. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/acs/acs_instances.py +0 -0
  161. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/acs/acs_policies.py +0 -0
  162. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/acs/acs_rbac.py +0 -0
  163. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/advanced_upgrade_service/__init__.py +0 -0
  164. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +0 -0
  165. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +0 -0
  166. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/app_interface_metrics_exporter/__init__.py +0 -0
  167. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +0 -0
  168. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/__init__.py +0 -0
  169. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +0 -0
  170. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +0 -0
  171. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/automated_actions/__init__.py +0 -0
  172. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/automated_actions/instance.py +0 -0
  173. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_account_manager/__init__.py +0 -0
  174. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_account_manager/aws_accounts.py +0 -0
  175. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_ami_cleanup/__init__.py +0 -0
  176. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +0 -0
  177. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_cloudwatch_log_retention/__init__.py +0 -0
  178. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_cloudwatch_log_retention/aws_accounts.py +0 -0
  179. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_saml_idp/__init__.py +0 -0
  180. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +0 -0
  181. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_saml_roles/__init__.py +0 -0
  182. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +0 -0
  183. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_saml_roles/roles.py +0 -0
  184. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_version_sync/__init__.py +0 -0
  185. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_version_sync/clusters.py +0 -0
  186. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/aws_version_sync/namespaces.py +0 -0
  187. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/change_owners/__init__.py +0 -0
  188. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/change_owners/queries/__init__.py +0 -0
  189. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/change_owners/queries/change_types.py +0 -0
  190. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/change_owners/queries/self_service_roles.py +0 -0
  191. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/cluster_auth_rhidp/__init__.py +0 -0
  192. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +0 -0
  193. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/__init__.py +0 -0
  194. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/alerting_services_settings.py +0 -0
  195. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_code_component_repos.py +0 -0
  196. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_interface_custom_messages.py +0 -0
  197. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_interface_dms_settings.py +0 -0
  198. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_interface_repo_settings.py +0 -0
  199. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_interface_roles.py +0 -0
  200. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_interface_state_settings.py +0 -0
  201. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_interface_vault_settings.py +0 -0
  202. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +0 -0
  203. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/apps.py +0 -0
  204. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/aws_vpcs.py +0 -0
  205. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/clusters_minimal.py +0 -0
  206. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/clusters_with_dms.py +0 -0
  207. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/clusters_with_peering.py +0 -0
  208. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/github_orgs.py +0 -0
  209. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/jira_settings.py +0 -0
  210. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/jiralert_settings.py +0 -0
  211. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/ldap_settings.py +0 -0
  212. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/namespaces.py +0 -0
  213. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/namespaces_minimal.py +0 -0
  214. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/ocm_env_telemeter.py +0 -0
  215. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/ocm_environments.py +0 -0
  216. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/pagerduty_instances.py +0 -0
  217. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/pgp_reencryption_settings.py +0 -0
  218. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/pipeline_providers.py +0 -0
  219. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/quay_instances.py +0 -0
  220. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/quay_orgs.py +0 -0
  221. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/reserved_networks.py +0 -0
  222. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/rhcs_provider_settings.py +0 -0
  223. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/saas_files.py +0 -0
  224. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/saas_target_namespaces.py +0 -0
  225. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/saasherder_settings.py +0 -0
  226. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/slack_workspaces.py +0 -0
  227. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/smtp_client_settings.py +0 -0
  228. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/state_aws_account.py +0 -0
  229. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/users.py +0 -0
  230. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/common/users_with_paths.py +0 -0
  231. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/cost_report/__init__.py +0 -0
  232. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/cost_report/app_names.py +0 -0
  233. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/cost_report/cost_namespaces.py +0 -0
  234. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/cost_report/settings.py +0 -0
  235. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/dashdotdb_slo/__init__.py +0 -0
  236. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +0 -0
  237. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/dynatrace_token_provider/__init__.py +0 -0
  238. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +0 -0
  239. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +0 -0
  240. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/email_sender/__init__.py +0 -0
  241. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/email_sender/apps.py +0 -0
  242. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/email_sender/emails.py +0 -0
  243. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/email_sender/users.py +0 -0
  244. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/endpoints_discovery/__init__.py +0 -0
  245. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/endpoints_discovery/apps.py +0 -0
  246. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/external_resources/__init__.py +0 -0
  247. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/external_resources/aws_accounts.py +0 -0
  248. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/external_resources/external_resources_modules.py +0 -0
  249. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/external_resources/external_resources_settings.py +0 -0
  250. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/external_resources/fragments/__init__.py +0 -0
  251. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py +0 -0
  252. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fleet_labeler/__init__.py +0 -0
  253. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fleet_labeler/fleet_labels.py +0 -0
  254. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/__init__.py +0 -0
  255. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aus_organization.py +0 -0
  256. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aws_account_common.py +0 -0
  257. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aws_account_managed.py +0 -0
  258. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aws_account_sso.py +0 -0
  259. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aws_infra_management_account.py +0 -0
  260. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aws_organization.py +0 -0
  261. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/aws_vpc.py +0 -0
  262. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/container_image_mirror.py +0 -0
  263. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/deploy_resources.py +0 -0
  264. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/disable.py +0 -0
  265. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/email_service.py +0 -0
  266. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/email_user.py +0 -0
  267. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/jumphost_common_fields.py +0 -0
  268. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/membership_source.py +0 -0
  269. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/minimal_ocm_organization.py +0 -0
  270. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/oc_connection_cluster.py +0 -0
  271. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/ocm_environment.py +0 -0
  272. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/pipeline_provider_retention.py +0 -0
  273. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/prometheus_instance.py +0 -0
  274. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/resource_limits_requirements.py +0 -0
  275. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/resource_requests_requirements.py +0 -0
  276. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/resource_values.py +0 -0
  277. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/saas_slo_document.py +0 -0
  278. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/saas_target_namespace.py +0 -0
  279. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/serviceaccount_token.py +0 -0
  280. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/terraform_state.py +0 -0
  281. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/upgrade_policy.py +0 -0
  282. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/user.py +0 -0
  283. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/fragments/vault_secret.py +0 -0
  284. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/gcp/__init__.py +0 -0
  285. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/gcp/gcp_docker_repos.py +0 -0
  286. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/gcp/gcp_projects.py +0 -0
  287. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/gitlab_members/__init__.py +0 -0
  288. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/gitlab_members/gitlab_instances.py +0 -0
  289. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/gitlab_members/permissions.py +0 -0
  290. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/glitchtip/__init__.py +0 -0
  291. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/glitchtip/glitchtip_instance.py +0 -0
  292. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/glitchtip/glitchtip_project.py +0 -0
  293. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/glitchtip_project_alerts/__init__.py +0 -0
  294. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +0 -0
  295. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/integrations/__init__.py +0 -0
  296. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/integrations/integrations.py +0 -0
  297. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jenkins_configs/__init__.py +0 -0
  298. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +0 -0
  299. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +0 -0
  300. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jira/__init__.py +0 -0
  301. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jira/jira_servers.py +0 -0
  302. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jira_permissions_validator/__init__.py +0 -0
  303. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +0 -0
  304. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jumphosts/__init__.py +0 -0
  305. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/jumphosts/jumphosts.py +0 -0
  306. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/ldap_groups/__init__.py +0 -0
  307. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/ldap_groups/roles.py +0 -0
  308. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/ldap_groups/settings.py +0 -0
  309. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/maintenance/__init__.py +0 -0
  310. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/maintenance/maintenances.py +0 -0
  311. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/membershipsources/__init__.py +0 -0
  312. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/membershipsources/roles.py +0 -0
  313. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/ocm_labels/__init__.py +0 -0
  314. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/ocm_labels/clusters.py +0 -0
  315. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/ocm_labels/organizations.py +0 -0
  316. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/openshift_cluster_bots/__init__.py +0 -0
  317. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/openshift_cluster_bots/clusters.py +0 -0
  318. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/openshift_groups/__init__.py +0 -0
  319. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/openshift_groups/managed_groups.py +0 -0
  320. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/openshift_groups/managed_roles.py +0 -0
  321. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/openshift_serviceaccount_tokens/__init__.py +0 -0
  322. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +0 -0
  323. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/quay_membership/__init__.py +0 -0
  324. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/quay_membership/quay_membership.py +0 -0
  325. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/rhcs/__init__.py +0 -0
  326. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/rhcs/certs.py +0 -0
  327. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py +0 -0
  328. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/rhidp/__init__.py +0 -0
  329. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/rhidp/organizations.py +0 -0
  330. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/service_dependencies/__init__.py +0 -0
  331. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +0 -0
  332. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/service_dependencies/service_dependencies.py +0 -0
  333. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/sharding/__init__.py +0 -0
  334. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/sharding/aws_accounts.py +0 -0
  335. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/sharding/ocm_organization.py +0 -0
  336. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/skupper_network/__init__.py +0 -0
  337. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/skupper_network/site_controller_template.py +0 -0
  338. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/skupper_network/skupper_networks.py +0 -0
  339. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/slack_usergroups/__init__.py +0 -0
  340. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/slack_usergroups/clusters.py +0 -0
  341. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/slack_usergroups/permissions.py +0 -0
  342. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/slack_usergroups/users.py +0 -0
  343. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/slo_documents/__init__.py +0 -0
  344. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/slo_documents/slo_documents.py +0 -0
  345. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/status_board/__init__.py +0 -0
  346. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/status_board/status_board.py +0 -0
  347. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/statuspage/__init__.py +0 -0
  348. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/statuspage/statuspages.py +0 -0
  349. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/templating/__init__.py +0 -0
  350. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/templating/template_collection.py +0 -0
  351. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/templating/templates.py +0 -0
  352. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_dns/__init__.py +0 -0
  353. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +0 -0
  354. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +0 -0
  355. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_resources/__init__.py +0 -0
  356. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +0 -0
  357. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +0 -0
  358. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_users/__init__.py +0 -0
  359. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +0 -0
  360. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +0 -0
  361. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_init/__init__.py +0 -0
  362. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_init/aws_accounts.py +0 -0
  363. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_repo/__init__.py +0 -0
  364. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_repo/terraform_repo.py +0 -0
  365. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_resources/__init__.py +0 -0
  366. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_resources/database_access_manager.py +0 -0
  367. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_tgw_attachments/__init__.py +0 -0
  368. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +0 -0
  369. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/unleash_feature_toggles/__init__.py +0 -0
  370. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +0 -0
  371. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/vault_instances/__init__.py +0 -0
  372. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/vault_instances/vault_instances.py +0 -0
  373. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/vault_policies/__init__.py +0 -0
  374. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/vault_policies/vault_policies.py +0 -0
  375. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/gql_definitions/vpc_peerings_validator/__init__.py +0 -0
  376. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/integrations_manager.py +0 -0
  377. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jenkins_base.py +0 -0
  378. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jenkins_job_builder.py +0 -0
  379. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jenkins_job_builds_cleaner.py +0 -0
  380. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jenkins_roles.py +0 -0
  381. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jenkins_webhooks.py +0 -0
  382. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jenkins_webhooks_cleaner.py +0 -0
  383. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jenkins_worker_fleets.py +0 -0
  384. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/jira_permissions_validator.py +0 -0
  385. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ldap_groups/__init__.py +0 -0
  386. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ldap_groups/integration.py +0 -0
  387. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ldap_users.py +0 -0
  388. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/mr_client_gateway.py +0 -0
  389. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm/__init__.py +0 -0
  390. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm/types.py +0 -0
  391. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_additional_routers.py +0 -0
  392. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_addons.py +0 -0
  393. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_addons_upgrade_tests_trigger.py +0 -0
  394. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_aws_infrastructure_access.py +0 -0
  395. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_clusters.py +0 -0
  396. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_external_configuration_labels.py +0 -0
  397. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_groups.py +0 -0
  398. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_internal_notifications/__init__.py +0 -0
  399. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_internal_notifications/integration.py +0 -0
  400. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_labels/__init__.py +0 -0
  401. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_labels/integration.py +0 -0
  402. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_machine_pools.py +0 -0
  403. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_update_recommended_version.py +0 -0
  404. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/ocm_upgrade_scheduler_org_updater.py +0 -0
  405. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_base.py +0 -0
  406. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_cluster_bots.py +0 -0
  407. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_clusterrolebindings.py +0 -0
  408. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_groups.py +0 -0
  409. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_limitranges.py +0 -0
  410. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_namespace_labels.py +0 -0
  411. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_network_policies.py +0 -0
  412. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_prometheus_rules.py +0 -0
  413. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_resourcequotas.py +0 -0
  414. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_resources.py +0 -0
  415. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_resources_base.py +0 -0
  416. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_rhcs_certs.py +0 -0
  417. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_rolebindings.py +0 -0
  418. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_routes.py +0 -0
  419. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy.py +0 -0
  420. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy_change_tester.py +0 -0
  421. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy_trigger_base.py +0 -0
  422. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy_trigger_cleaner.py +0 -0
  423. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy_trigger_configs.py +0 -0
  424. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy_trigger_images.py +0 -0
  425. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy_trigger_moving_commits.py +0 -0
  426. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_saas_deploy_trigger_upstream_jobs.py +0 -0
  427. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_serviceaccount_tokens.py +0 -0
  428. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_tekton_resources.py +0 -0
  429. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_upgrade_watcher.py +0 -0
  430. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_users.py +0 -0
  431. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/openshift_vault_secrets.py +0 -0
  432. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/oum/__init__.py +0 -0
  433. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/oum/base.py +0 -0
  434. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/oum/labelset.py +0 -0
  435. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/oum/metrics.py +0 -0
  436. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/oum/models.py +0 -0
  437. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/oum/providers.py +0 -0
  438. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/oum/standalone.py +0 -0
  439. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/prometheus_rules_tester/__init__.py +0 -0
  440. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/prometheus_rules_tester/integration.py +0 -0
  441. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/quay_base.py +0 -0
  442. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/quay_membership.py +0 -0
  443. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/quay_mirror.py +0 -0
  444. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/quay_mirror_org.py +0 -0
  445. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/quay_permissions.py +0 -0
  446. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/quay_repos.py +0 -0
  447. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/queries.py +0 -0
  448. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/query_validator.py +0 -0
  449. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/requests_sender.py +0 -0
  450. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/resource_scraper.py +0 -0
  451. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/resource_template_tester.py +0 -0
  452. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/__init__.py +0 -0
  453. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/common.py +0 -0
  454. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/metrics.py +0 -0
  455. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/ocm_oidc_idp/__init__.py +0 -0
  456. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/ocm_oidc_idp/base.py +0 -0
  457. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/ocm_oidc_idp/integration.py +0 -0
  458. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/ocm_oidc_idp/metrics.py +0 -0
  459. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/sso_client/__init__.py +0 -0
  460. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/sso_client/base.py +0 -0
  461. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/sso_client/integration.py +0 -0
  462. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/rhidp/sso_client/metrics.py +0 -0
  463. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/run_integration.py +0 -0
  464. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/__init__.py +0 -0
  465. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/dependencies.py +0 -0
  466. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/integration.py +0 -0
  467. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/__init__.py +0 -0
  468. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/batcher.py +0 -0
  469. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/desired_state.py +0 -0
  470. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request.py +0 -0
  471. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request_manager_v2.py +0 -0
  472. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/metrics.py +0 -0
  473. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/mr_parser.py +0 -0
  474. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/open_merge_requests.py +0 -0
  475. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py +0 -0
  476. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/meta.py +0 -0
  477. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/publisher.py +0 -0
  478. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/s3_exporter.py +0 -0
  479. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/subscriber.py +0 -0
  480. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/utils/__init__.py +0 -0
  481. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_auto_promotions_manager/utils/saas_files_inventory.py +0 -0
  482. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/saas_file_validator.py +0 -0
  483. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/sendgrid_teammates.py +0 -0
  484. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/service_dependencies.py +0 -0
  485. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/signalfx_endpoint_monitoring.py +0 -0
  486. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/skupper_network/__init__.py +0 -0
  487. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/skupper_network/integration.py +0 -0
  488. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/skupper_network/models.py +0 -0
  489. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/skupper_network/reconciler.py +0 -0
  490. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/skupper_network/site_controller.py +0 -0
  491. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/slack_base.py +0 -0
  492. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/slack_usergroups.py +0 -0
  493. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/sql_query.py +0 -0
  494. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/status.py +0 -0
  495. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/status_board.py +0 -0
  496. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/__init__.py +0 -0
  497. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/atlassian.py +0 -0
  498. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/integration.py +0 -0
  499. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/integrations/__init__.py +0 -0
  500. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/integrations/components.py +0 -0
  501. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/integrations/maintenances.py +0 -0
  502. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/page.py +0 -0
  503. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/state.py +0 -0
  504. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/statuspage/status.py +0 -0
  505. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templates/__init__.py +0 -0
  506. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templates/aws_access_key_email.j2 +0 -0
  507. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templates/email.yml.j2 +0 -0
  508. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templates/jira-checkpoint-missinginfo.j2 +0 -0
  509. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templating/__init__.py +0 -0
  510. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templating/lib/__init__.py +0 -0
  511. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templating/lib/merge_request_manager.py +0 -0
  512. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templating/lib/model.py +0 -0
  513. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templating/lib/rendering.py +0 -0
  514. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templating/renderer.py +0 -0
  515. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/templating/validator.py +0 -0
  516. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_aws_route53.py +0 -0
  517. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_cloudflare_dns.py +0 -0
  518. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_cloudflare_resources.py +0 -0
  519. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_cloudflare_users.py +0 -0
  520. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_init/__init__.py +0 -0
  521. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_init/integration.py +0 -0
  522. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_init/merge_request.py +0 -0
  523. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_init/merge_request_manager.py +0 -0
  524. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_repo.py +0 -0
  525. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_resources.py +0 -0
  526. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_tgw_attachments.py +0 -0
  527. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_users.py +0 -0
  528. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_vpc_peerings.py +0 -0
  529. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_vpc_resources/__init__.py +0 -0
  530. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_vpc_resources/merge_request.py +0 -0
  531. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/terraform_vpc_resources/merge_request_manager.py +0 -0
  532. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/__init__.py +0 -0
  533. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/alerting_services_settings.py +0 -0
  534. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_custom_messages.py +0 -0
  535. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_deadmanssnitch_settings.py +0 -0
  536. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_metrics_exporter/__init__.py +0 -0
  537. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_metrics_exporter/onboarding_status.py +0 -0
  538. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_metrics_exporter/terraform_repo.py +0 -0
  539. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_repo_url.py +0 -0
  540. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_roles.py +0 -0
  541. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_state_settings.py +0 -0
  542. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_interface_vault_settings.py +0 -0
  543. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/app_quay_repos_escalation_policies.py +0 -0
  544. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/apps.py +0 -0
  545. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/aws_account_tags.py +0 -0
  546. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/aws_cloudwatch_log_retention/aws_accounts.py +0 -0
  547. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/aws_vpc_requests.py +0 -0
  548. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/aws_vpcs.py +0 -0
  549. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/cloudflare.py +0 -0
  550. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/clusters.py +0 -0
  551. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/clusters_minimal.py +0 -0
  552. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/clusters_with_dms.py +0 -0
  553. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/clusters_with_peering.py +0 -0
  554. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/cost_report/__init__.py +0 -0
  555. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/cost_report/app_names.py +0 -0
  556. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/cost_report/cost_namespaces.py +0 -0
  557. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/cost_report/settings.py +0 -0
  558. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/dynatrace.py +0 -0
  559. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/dynatrace_environments.py +0 -0
  560. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/dynatrace_token_provider_token_specs.py +0 -0
  561. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/external_resources.py +0 -0
  562. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/fleet_labels.py +0 -0
  563. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/get_state_aws_account.py +0 -0
  564. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/github_orgs.py +0 -0
  565. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/gitlab_instances.py +0 -0
  566. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/glitchtip.py +0 -0
  567. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/jenkins.py +0 -0
  568. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/jira.py +0 -0
  569. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/jira_settings.py +0 -0
  570. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/jiralert_settings.py +0 -0
  571. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/ldap_settings.py +0 -0
  572. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/namespaces.py +0 -0
  573. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/namespaces_minimal.py +0 -0
  574. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/ocm.py +0 -0
  575. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/pagerduty_instances.py +0 -0
  576. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/quay.py +0 -0
  577. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/repos.py +0 -0
  578. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/reserved_networks.py +0 -0
  579. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/rhcs_provider_settings.py +0 -0
  580. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/slack.py +0 -0
  581. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/slo_documents.py +0 -0
  582. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/smtp.py +0 -0
  583. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/status_board.py +0 -0
  584. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/tekton_pipeline_providers.py +0 -0
  585. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/terraform_namespaces.py +0 -0
  586. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/terraform_tgw_attachments/__init__.py +0 -0
  587. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/terraform_tgw_attachments/aws_accounts.py +0 -0
  588. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/unleash.py +0 -0
  589. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/users.py +0 -0
  590. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/users_with_paths.py +0 -0
  591. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/typed_queries/vault.py +0 -0
  592. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/unleash_feature_toggles/__init__.py +0 -0
  593. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/unleash_feature_toggles/integration.py +0 -0
  594. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/__init__.py +0 -0
  595. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/acs/__init__.py +0 -0
  596. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/acs/base.py +0 -0
  597. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/acs/policies.py +0 -0
  598. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/acs/rbac.py +0 -0
  599. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aggregated_list.py +0 -0
  600. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/amtool.py +0 -0
  601. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api.py +0 -0
  602. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/__init__.py +0 -0
  603. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/account.py +0 -0
  604. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/api.py +0 -0
  605. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/cloudformation.py +0 -0
  606. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/dynamodb.py +0 -0
  607. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/iam.py +0 -0
  608. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/logs.py +0 -0
  609. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/organization.py +0 -0
  610. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/s3.py +0 -0
  611. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/service_quotas.py +0 -0
  612. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/sts.py +0 -0
  613. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_api_typed/support.py +0 -0
  614. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/aws_helper.py +0 -0
  615. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/batches.py +0 -0
  616. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/binary.py +0 -0
  617. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/cloud_resource_best_practice/__init__.py +0 -0
  618. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/cloud_resource_best_practice/aws_rds.py +0 -0
  619. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/clusterhealth/__init__.py +0 -0
  620. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/clusterhealth/providerbase.py +0 -0
  621. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/clusterhealth/telemeter.py +0 -0
  622. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/config.py +0 -0
  623. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/constants.py +0 -0
  624. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/datetime_util.py +0 -0
  625. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/deadmanssnitch_api.py +0 -0
  626. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/defer.py +0 -0
  627. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/differ.py +0 -0
  628. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/disabled_integrations.py +0 -0
  629. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/dnsutils.py +0 -0
  630. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/dynatrace/__init__.py +0 -0
  631. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/dynatrace/client.py +0 -0
  632. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/early_exit_cache.py +0 -0
  633. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/elasticsearch_exceptions.py +0 -0
  634. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/exceptions.py +0 -0
  635. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/expiration.py +0 -0
  636. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/extended_early_exit.py +0 -0
  637. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/external_resource_spec.py +0 -0
  638. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/external_resources.py +0 -0
  639. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/filtering.py +0 -0
  640. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/git.py +0 -0
  641. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/github_api.py +0 -0
  642. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/glitchtip/__init__.py +0 -0
  643. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/glitchtip/client.py +0 -0
  644. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/glitchtip/models.py +0 -0
  645. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/gpg.py +0 -0
  646. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/gql.py +0 -0
  647. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/grouping.py +0 -0
  648. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/helm.py +0 -0
  649. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/helpers.py +0 -0
  650. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/imap_client.py +0 -0
  651. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/instrumented_wrappers.py +0 -0
  652. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/internal_groups/__init__.py +0 -0
  653. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/internal_groups/client.py +0 -0
  654. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/internal_groups/models.py +0 -0
  655. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jenkins_api.py +0 -0
  656. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jinja2/__init__.py +0 -0
  657. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jinja2/extensions.py +0 -0
  658. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jinja2/filters.py +0 -0
  659. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jinja2/utils.py +0 -0
  660. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jira_client.py +0 -0
  661. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jobcontroller/__init__.py +0 -0
  662. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jobcontroller/controller.py +0 -0
  663. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jobcontroller/models.py +0 -0
  664. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/json.py +0 -0
  665. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jsonpath.py +0 -0
  666. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/jump_host.py +0 -0
  667. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/keycloak.py +0 -0
  668. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ldap_client.py +0 -0
  669. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/lean_terraform_client.py +0 -0
  670. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/make.py +0 -0
  671. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/membershipsources/__init__.py +0 -0
  672. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/membershipsources/app_interface_resolver.py +0 -0
  673. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/membershipsources/models.py +0 -0
  674. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/membershipsources/resolver.py +0 -0
  675. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/merge_request_manager/__init__.py +0 -0
  676. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/merge_request_manager/merge_request_manager.py +0 -0
  677. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/merge_request_manager/parser.py +0 -0
  678. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/metrics.py +0 -0
  679. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/models.py +0 -0
  680. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/README.md +0 -0
  681. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/__init__.py +0 -0
  682. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/app_interface_reporter.py +0 -0
  683. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/app_sre_tekton_access_report.py +0 -0
  684. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/aws_access.py +0 -0
  685. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/base.py +0 -0
  686. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/clusters_updates.py +0 -0
  687. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/glitchtip_access_reporter.py +0 -0
  688. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/labels.py +0 -0
  689. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/notificator.py +0 -0
  690. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/ocm_update_recommended_version.py +0 -0
  691. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py +0 -0
  692. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/promote_qontract.py +0 -0
  693. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/update_access_report_base.py +0 -0
  694. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/mr/user_maintenance.py +0 -0
  695. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/oauth2_backend_application_session.py +0 -0
  696. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/oc_connection_parameters.py +0 -0
  697. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/oc_filters.py +0 -0
  698. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/oc_map.py +0 -0
  699. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/__init__.py +0 -0
  700. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/addons.py +0 -0
  701. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/base.py +0 -0
  702. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/cluster_groups.py +0 -0
  703. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/clusters.py +0 -0
  704. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/identity_providers.py +0 -0
  705. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/label_sources.py +0 -0
  706. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/labels.py +0 -0
  707. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/manifests.py +0 -0
  708. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/ocm.py +0 -0
  709. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/products.py +0 -0
  710. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/search_filters.py +0 -0
  711. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/service_log.py +0 -0
  712. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/sre_capability_labels.py +0 -0
  713. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/status_board.py +0 -0
  714. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/subscriptions.py +0 -0
  715. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/syncsets.py +0 -0
  716. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm/upgrades.py +0 -0
  717. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ocm_base_client.py +0 -0
  718. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/openshift_resource.py +0 -0
  719. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/openssl.py +0 -0
  720. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/output.py +0 -0
  721. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/pagerduty_api.py +0 -0
  722. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/parse_dhms_duration.py +0 -0
  723. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/password_validator.py +0 -0
  724. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/prometheus.py +0 -0
  725. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/promotion_state.py +0 -0
  726. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/promtool.py +0 -0
  727. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/quay_api.py +0 -0
  728. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/quay_mirror.py +0 -0
  729. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/raw_github_api.py +0 -0
  730. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/repo_owners.py +0 -0
  731. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/rest_api_base.py +0 -0
  732. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/rhcsv2_certs.py +0 -0
  733. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/rosa/__init__.py +0 -0
  734. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/rosa/rosa_cli.py +0 -0
  735. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/rosa/session.py +0 -0
  736. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/ruamel.py +0 -0
  737. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/runtime/__init__.py +0 -0
  738. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/runtime/desired_state_diff.py +0 -0
  739. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/runtime/environment.py +0 -0
  740. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/runtime/integration.py +0 -0
  741. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/runtime/meta.py +0 -0
  742. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/runtime/runner.py +0 -0
  743. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/runtime/sharding.py +0 -0
  744. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/saasherder/__init__.py +0 -0
  745. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/saasherder/interfaces.py +0 -0
  746. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/saasherder/models.py +0 -0
  747. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/saasherder/saasherder.py +0 -0
  748. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/secret_reader.py +0 -0
  749. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/semver_helper.py +0 -0
  750. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/sharding.py +0 -0
  751. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/slack_api.py +0 -0
  752. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/slo_document_manager.py +0 -0
  753. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/sloth.py +0 -0
  754. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/smtp_client.py +0 -0
  755. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/sqs_gateway.py +0 -0
  756. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/state.py +0 -0
  757. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/structs.py +0 -0
  758. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terraform/__init__.py +0 -0
  759. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terraform/config.py +0 -0
  760. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terraform/config_client.py +0 -0
  761. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terraform_client.py +0 -0
  762. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terrascript/__init__.py +0 -0
  763. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terrascript/cloudflare_client.py +0 -0
  764. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terrascript/cloudflare_resources.py +0 -0
  765. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terrascript/models.py +0 -0
  766. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/terrascript/resources.py +0 -0
  767. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/three_way_diff_strategy.py +0 -0
  768. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/throughput.py +0 -0
  769. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/unleash/__init__.py +0 -0
  770. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/unleash/client.py +0 -0
  771. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/unleash/server.py +0 -0
  772. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/vault.py +0 -0
  773. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/utils/vcs.py +0 -0
  774. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/reconcile/vault_replication.py +0 -0
  775. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/__init__.py +0 -0
  776. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/alert_report.py +0 -0
  777. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/app_interface_metrics_exporter.py +0 -0
  778. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/app_interface_reporter.py +0 -0
  779. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/app_sre_tekton_access_reporter.py +0 -0
  780. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/app_sre_tekton_access_revalidation.py +0 -0
  781. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/__init__.py +0 -0
  782. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/container_images_report.py +0 -0
  783. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/__init__.py +0 -0
  784. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/aws.py +0 -0
  785. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/cost_management_api.py +0 -0
  786. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/model.py +0 -0
  787. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/openshift.py +0 -0
  788. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/openshift_cost_optimization.py +0 -0
  789. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/response.py +0 -0
  790. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/util.py +0 -0
  791. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/cost_report/view.py +0 -0
  792. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/erv2.py +0 -0
  793. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/gpg_encrypt.py +0 -0
  794. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/cli_commands/systems_and_tools.py +0 -0
  795. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/glitchtip_access_reporter.py +0 -0
  796. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/glitchtip_access_revalidation.py +0 -0
  797. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/qontract_cli.py +0 -0
  798. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_metrics_exporter/__init__.py +0 -0
  799. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_metrics_exporter/commit_distance/__init__.py +0 -0
  800. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_metrics_exporter/commit_distance/channel.py +0 -0
  801. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_metrics_exporter/commit_distance/commit_distance.py +0 -0
  802. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_metrics_exporter/commit_distance/metrics.py +0 -0
  803. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_metrics_exporter/main.py +0 -0
  804. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_promotion_state/__init__.py +0 -0
  805. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/saas_promotion_state/saas_promotion_state.py +0 -0
  806. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/sre_checkpoints/__init__.py +0 -0
  807. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/sre_checkpoints/util.py +0 -0
  808. {qontract_reconcile-0.10.2.dev428 → qontract_reconcile-0.10.2.dev459}/tools/template_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qontract-reconcile
3
- Version: 0.10.2.dev428
3
+ Version: 0.10.2.dev459
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
@@ -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
@@ -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
  }
@@ -0,0 +1,33 @@
1
+ from reconcile.aus.version_gates.handler import GateHandler
2
+ from reconcile.utils.ocm.base import OCMCluster, OCMVersionGate
3
+ from reconcile.utils.ocm_base_client import OCMBaseClient
4
+
5
+ GATE_LABEL = "api.openshift.com/gate-sts"
6
+
7
+
8
+ class STSGateHandler(GateHandler):
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
+ """
14
+
15
+ @staticmethod
16
+ def gate_applicable_to_cluster(cluster: OCMCluster) -> bool:
17
+ """
18
+ The STS Gate is applicable to all clusters with STS enabled.
19
+ This could potentially also be OSD STS clusters. While this handler
20
+ does not handle OSD clusters as of now, it is still important that
21
+ we report the STS gate to be applicable to OSD STS clusters.
22
+ """
23
+ return cluster.is_sts()
24
+
25
+ def handle(
26
+ self,
27
+ ocm_api: OCMBaseClient,
28
+ ocm_org_id: str,
29
+ cluster: OCMCluster,
30
+ gate: OCMVersionGate,
31
+ dry_run: bool,
32
+ ) -> bool:
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 = {
@@ -15,7 +15,7 @@
15
15
 
16
16
  `change_owners` uses the `qontract-server` diff endpoint to get a highlevel overview what changed in an MR. It leverages `change_types` to find fine grained differences in datafiles and resourcefiles and build `BundleFileChange` objects that hold the state of diffs and diff coverage.
17
17
 
18
- `change_owners` checks `BundleFileChange` objects for `change-types` that are `restrictive`. If the MR was created by a user, that has this `change-type` not assigned, the integration will fail. A user with this role assigned could issue an `/good-to-test` command to override this restriction.
18
+ `change_owners` checks `BundleFileChange` objects for `change-types` that are `restrictive`. If the MR was created by a user, that has this `change-type` not assigned, the integration will fail. A user with this role assigned could issue an `/ok-to-test` command to override this restriction.
19
19
 
20
20
  `change_owners` reachs out to pluggable functionality to find out which `change-types` can be applied to which changes with a set of approvers. Currently, the only module to provide such `ChangeTypeContext` is `self_service_roles` which looks for explicitly bound `change-types` and files in the context of a `Role` with users and bots will can act as approvers.
21
21
 
@@ -23,6 +23,7 @@ from reconcile.change_owners.changes import (
23
23
  )
24
24
  from reconcile.change_owners.decision import (
25
25
  ChangeDecision,
26
+ ChangeResponsibles,
26
27
  DecisionCommand,
27
28
  apply_decisions_to_changes,
28
29
  get_approver_decisions_from_mr_comments,
@@ -115,6 +116,77 @@ def manage_conditional_label(
115
116
  return set(new_labels)
116
117
 
117
118
 
119
+ def build_status_message(
120
+ self_serviceable: bool,
121
+ authoritative: bool,
122
+ change_admitted: bool,
123
+ approver_reachability: set[str],
124
+ supported_commands: list[str],
125
+ ) -> str:
126
+ """
127
+ Build a user-friendly status message based on the MR state.
128
+ """
129
+ approver_section = _build_approver_contact_section(approver_reachability)
130
+
131
+ # Check if changes are not admitted (security gate - takes priority)
132
+ if not change_admitted:
133
+ return f"""## ⏸️ Approval Required
134
+ Your changes need `/ok-to-test` approval from a listed approver before review can begin.
135
+
136
+ {approver_section}"""
137
+
138
+ commands_text = (
139
+ f"**Available commands:** {' '.join(f'`{cmd}`' for cmd in supported_commands)}"
140
+ )
141
+
142
+ code_warning = ""
143
+ if not authoritative:
144
+ code_warning = "⚠️ **Code changes outside of data and resources detected** - please review carefully\n\n"
145
+
146
+ if self_serviceable:
147
+ return f"""## ✅ Ready for Review
148
+ Get `/lgtm` approval from the listed approvers below.
149
+
150
+ {code_warning}{approver_section}
151
+
152
+ {commands_text}"""
153
+
154
+ return f"""## 🔍 AppSRE Review Required
155
+ **What happens next:**
156
+ * AppSRE will review via their [review queue](https://gitlab.cee.redhat.com/service/app-interface-output/-/blob/master/app-interface-review-queue.md)
157
+ * Please don't ping directly unless this is **urgent**
158
+ * See [etiquette guide](https://gitlab.cee.redhat.com/service/app-interface#app-interface-etiquette) for more info
159
+
160
+ {code_warning}{approver_section}
161
+
162
+ {commands_text}"""
163
+
164
+
165
+ def _build_approver_contact_section(approver_reachability: set[str]) -> str:
166
+ """Build the approver contact information section."""
167
+ if not approver_reachability:
168
+ return ""
169
+
170
+ return "**Reach out to approvers:**\n" + "\n".join([
171
+ f"* {ar}" for ar in approver_reachability
172
+ ])
173
+
174
+
175
+ def _format_change_responsible(cr: ChangeResponsibles) -> str:
176
+ """
177
+ Format a ChangeResponsibles object.
178
+ """
179
+ usernames = [
180
+ f"@{a.org_username}"
181
+ if (a.tag_on_merge_requests or len(cr.approvers) == 1)
182
+ else a.org_username
183
+ for a in cr.approvers
184
+ ]
185
+
186
+ usernames_text = " ".join(usernames)
187
+ return f"<details><summary>{cr.context}</summary>{usernames_text}</details>"
188
+
189
+
118
190
  def write_coverage_report_to_mr(
119
191
  self_serviceable: bool,
120
192
  change_decisions: list[ChangeDecision],
@@ -135,14 +207,11 @@ def write_coverage_report_to_mr(
135
207
  startswith=change_coverage_report_header,
136
208
  )
137
209
 
138
- # add new report comment
210
+ # Build change coverage table
139
211
  results = []
140
212
  approver_reachability = set()
141
213
  for d in change_decisions:
142
- approvers = [
143
- f"{cr.context} - {' '.join([f'@{a.org_username}' if (a.tag_on_merge_requests or len(cr.approvers) == 1) else a.org_username for a in cr.approvers])}"
144
- for cr in d.change_responsibles
145
- ]
214
+ approvers = [_format_change_responsible(cr) for cr in d.change_responsibles]
146
215
  if d.coverable_by_fragment_decisions:
147
216
  approvers.append(
148
217
  "automatically approved if all sub-properties are approved"
@@ -164,41 +233,33 @@ def write_coverage_report_to_mr(
164
233
  item["status"] = "hold"
165
234
  elif d.is_approved():
166
235
  item["status"] = "approved"
167
- item["approvers"] = approvers
236
+ item["approvers"] = "".join(approvers)
168
237
  results.append(item)
238
+
169
239
  coverage_report = format_table(
170
240
  results, ["file", "change", "status", "approvers"], table_format="github"
171
241
  )
172
242
 
173
- self_serviceability_hint = "All changes require an `/lgtm` from a listed approver "
174
- if not self_serviceable:
175
- self_serviceability_hint += (
176
- "but <b>not all changes are self-serviceable and require AppSRE approval</b>."
177
- "The AppSRE Interrupt Catcher (IC) will review your Merge Request (MR) as it comes up in their "
178
- "<a href='https://gitlab.cee.redhat.com/service/app-interface-output/-/blob/master/app-interface-review-queue.md'>queue</a>, "
179
- "please do not ping them directly unless this is <b>urgent</b>."
180
- "\nPlease see https://gitlab.cee.redhat.com/service/app-interface#app-interface-etiquette for more information. Thank you :)"
181
- )
182
- if not authoritative:
183
- self_serviceability_hint += "\n\nchanges outside of data and resources detected - <b>PAY EXTRA ATTENTION WHILE REVIEWING</b>\n\n"
184
-
185
- if not change_admitted:
186
- self_serviceability_hint += "\n\nchanges are not admitted. Please request `/good-to-test` from one of the approvers.\n\n"
187
-
188
- approver_reachability_hint = "Reach out to approvers for reviews"
189
- if approver_reachability:
190
- approver_reachability_hint += " on\n" + "\n".join([
191
- f"* {ar}" for ar in approver_reachability or []
192
- ])
193
- gl.add_comment_to_merge_request(
194
- merge_request,
195
- f"{change_coverage_report_header}<br/>"
196
- f"{self_serviceability_hint}\n"
197
- f"{coverage_report}\n\n"
198
- f"{approver_reachability_hint}\n\n"
199
- + f"Supported commands: {' '.join([f'`{d.value}`' for d in DecisionCommand])} ",
243
+ # Build user-friendly status message
244
+ supported_commands = [d.value for d in DecisionCommand]
245
+ status_message = build_status_message(
246
+ self_serviceable=self_serviceable,
247
+ authoritative=authoritative,
248
+ change_admitted=change_admitted,
249
+ approver_reachability=approver_reachability,
250
+ supported_commands=supported_commands,
200
251
  )
201
252
 
253
+ # Create the full comment
254
+ full_comment = f"""{change_coverage_report_header}
255
+
256
+ {status_message}
257
+
258
+ ## 📋 Change Summary
259
+ {coverage_report}"""
260
+
261
+ gl.add_comment_to_merge_request(merge_request, full_comment)
262
+
202
263
 
203
264
  def write_coverage_report_to_stdout(change_decisions: list[ChangeDecision]) -> None:
204
265
  results = []
@@ -261,22 +322,22 @@ def init_gitlab(gitlab_project_id: str) -> GitLabApi:
261
322
 
262
323
 
263
324
  def is_coverage_admitted(
264
- coverage: ChangeTypeContext, mr_author: str, good_to_test_approvers: set[str]
325
+ coverage: ChangeTypeContext, mr_author: str, ok_to_test_approvers: set[str]
265
326
  ) -> bool:
266
327
  return any(
267
- a.org_username == mr_author or a.org_username in good_to_test_approvers
328
+ a.org_username == mr_author or a.org_username in ok_to_test_approvers
268
329
  for a in coverage.approvers
269
330
  )
270
331
 
271
332
 
272
333
  def is_change_admitted(
273
- changes: list[BundleFileChange], mr_author: str, good_to_test_approvers: set[str]
334
+ changes: list[BundleFileChange], mr_author: str, ok_to_test_approvers: set[str]
274
335
  ) -> bool:
275
336
  # Checks if mr authors are allowed to do the changes in the merge request.
276
337
  # If a change type is restrictive and the author is not an approver,
277
338
  # this is not admitted.
278
339
  # A change might be admitted if a user that has the restrictive change
279
- # type is an approver or an approver adds an /good-to-test comment.
340
+ # type is an approver or an approver adds an /ok-to-test comment.
280
341
 
281
342
  restrictive_coverages = [
282
343
  c
@@ -290,7 +351,7 @@ def is_change_admitted(
290
351
  change_types_approved = {
291
352
  c.origin
292
353
  for c in restrictive_coverages
293
- if is_coverage_admitted(c, mr_author, good_to_test_approvers)
354
+ if is_coverage_admitted(c, mr_author, ok_to_test_approvers)
294
355
  }
295
356
  return change_types_to_approve == change_types_approved
296
357
 
@@ -381,17 +442,22 @@ def run(
381
442
  merge_request = gl.get_merge_request(gitlab_merge_request_id)
382
443
 
383
444
  comments = gl.get_merge_request_comments(merge_request)
384
- good_to_test_approvers = {
385
- c.username for c in comments if c.body.strip() == "/good-to-test"
445
+ ok_to_test_approvers = {
446
+ c.username for c in comments if c.body.strip() == "/ok-to-test"
386
447
  }
387
448
 
388
449
  change_admitted = is_change_admitted(
389
450
  changes,
390
451
  gl.get_merge_request_author_username(merge_request),
391
- good_to_test_approvers,
452
+ ok_to_test_approvers,
392
453
  )
393
454
  approver_decisions = get_approver_decisions_from_mr_comments(
394
- gl.get_merge_request_comments(merge_request, include_description=True)
455
+ gl.get_merge_request_comments(
456
+ merge_request,
457
+ include_description=True,
458
+ include_approvals=True,
459
+ approval_body=DecisionCommand.APPROVED.value,
460
+ )
395
461
  )
396
462
  change_decisions = apply_decisions_to_changes(
397
463
  changes,
@@ -20,7 +20,7 @@ class DecisionCommand(Enum):
20
20
  CANCEL_APPROVED = "/lgtm cancel"
21
21
  HOLD = "/hold"
22
22
  CANCEL_HOLD = "/hold cancel"
23
- GOOD_TO_TEST = "/good-to-test"
23
+ OK_TO_TEST = "/ok-to-test"
24
24
 
25
25
 
26
26
  @dataclass
@@ -53,7 +53,7 @@ TERRAFORM_VERSION_REGEX = r"^Terraform\sv([\d]+\.[\d]+\.[\d]+)$"
53
53
  OC_VERSIONS = ["4.19.0", "4.16.2"]
54
54
  OC_VERSION_REGEX = r"^Client\sVersion:\s([\d]+\.[\d]+\.[\d]+)"
55
55
 
56
- HELM_VERSIONS = ["3.11.1"]
56
+ HELM_VERSIONS = ["3.19.2"]
57
57
  HELM_VERSION_REGEX = r"^version.BuildInfo{Version:\"v([\d]+\.[\d]+\.[\d]+)\".*$"
58
58
 
59
59
 
@@ -448,9 +448,8 @@ class VaultSecretsReconciler(SecretsReconciler):
448
448
  secret_path = self.secret_path(self.vault_path, spec)
449
449
  try:
450
450
  logging.debug("Reading Secret %s", secret_path)
451
- data = self.secrets_reader.read_all({"path": secret_path})
452
- spec.metadata[SECRET_UPDATED_AT] = data[SECRET_UPDATED_AT]
453
- del data[SECRET_UPDATED_AT]
451
+ data = self.secrets_reader.read_all({"path": secret_path}).copy()
452
+ spec.metadata[SECRET_UPDATED_AT] = data.pop(SECRET_UPDATED_AT)
454
453
  spec.secret = data
455
454
  except SecretNotFoundError:
456
455
  logging.info("Error getting secret from vault, skipping. [%s]", secret_path)
@@ -48,6 +48,9 @@ fragment VPCRequest on VPCRequest_v1 {
48
48
  automationToken {
49
49
  ...VaultSecret
50
50
  }
51
+ disable {
52
+ integrations
53
+ }
51
54
  supportedDeploymentRegions
52
55
  resourcesDefaultRegion
53
56
  providerVersion
@@ -113,6 +113,7 @@ query Clusters($name: String) {
113
113
  managedGroups
114
114
  managedClusterRoles
115
115
  insecureSkipTLSVerify
116
+ allowedToBypassPublicPeeringRestriction
116
117
  jumpHost {
117
118
  ...CommonJumphostFields
118
119
  }
@@ -635,6 +636,7 @@ class ClusterV1(ConfiguredBaseModel):
635
636
  managed_groups: Optional[list[str]] = Field(..., alias="managedGroups")
636
637
  managed_cluster_roles: Optional[bool] = Field(..., alias="managedClusterRoles")
637
638
  insecure_skip_tls_verify: Optional[bool] = Field(..., alias="insecureSkipTLSVerify")
639
+ allowed_to_bypass_public_peering_restriction: Optional[bool] = Field(..., alias="allowedToBypassPublicPeeringRestriction")
638
640
  jump_host: Optional[CommonJumphostFields] = Field(..., alias="jumpHost")
639
641
  auth: list[Union[ClusterAuthGithubOrgTeamV1, ClusterAuthGithubOrgV1, ClusterAuthV1]] = Field(..., alias="auth")
640
642
  ocm: Optional[OpenShiftClusterManagerV1] = Field(..., alias="ocm")
@@ -372,6 +372,7 @@ query ExternalResourcesNamespaces {
372
372
  identifier
373
373
  defaults
374
374
  es_identifier
375
+ policy
375
376
  output_resource_name
376
377
  annotations
377
378
  tags
@@ -933,6 +934,7 @@ class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
933
934
  identifier: str = Field(..., alias="identifier")
934
935
  defaults: str = Field(..., alias="defaults")
935
936
  es_identifier: Optional[str] = Field(..., alias="es_identifier")
937
+ policy: Optional[str] = Field(..., alias="policy")
936
938
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
937
939
  annotations: Optional[str] = Field(..., alias="annotations")
938
940
  tags: Optional[str] = Field(..., alias="tags")
@@ -1167,7 +1169,7 @@ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
1167
1169
 
1168
1170
  class NamespaceTerraformProviderResourceAWSV1(NamespaceExternalResourceV1):
1169
1171
  provisioner: AWSAccountV1 = Field(..., alias="provisioner")
1170
- resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRDSProxyV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
1172
+ resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRDSProxyV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
1171
1173
 
1172
1174
 
1173
1175
  class EnvironmentV1(ConfiguredBaseModel):
@@ -28,6 +28,10 @@ class ConfiguredBaseModel(BaseModel):
28
28
  )
29
29
 
30
30
 
31
+ class DisableClusterAutomationsV1(ConfiguredBaseModel):
32
+ integrations: Optional[list[str]] = Field(..., alias="integrations")
33
+
34
+
31
35
  class DeletionApprovalV1(ConfiguredBaseModel):
32
36
  q_type: str = Field(..., alias="type")
33
37
  name: str = Field(..., alias="name")
@@ -39,6 +43,7 @@ class AWSAccountV1(ConfiguredBaseModel):
39
43
  uid: str = Field(..., alias="uid")
40
44
  terraform_username: Optional[str] = Field(..., alias="terraformUsername")
41
45
  automation_token: VaultSecret = Field(..., alias="automationToken")
46
+ disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable")
42
47
  supported_deployment_regions: Optional[list[str]] = Field(..., alias="supportedDeploymentRegions")
43
48
  resources_default_region: str = Field(..., alias="resourcesDefaultRegion")
44
49
  provider_version: str = Field(..., alias="providerVersion")
@@ -6489,6 +6489,18 @@
6489
6489
  "isDeprecated": false,
6490
6490
  "deprecationReason": null
6491
6491
  },
6492
+ {
6493
+ "name": "allowedToBypassPublicPeeringRestriction",
6494
+ "description": null,
6495
+ "args": [],
6496
+ "type": {
6497
+ "kind": "SCALAR",
6498
+ "name": "Boolean",
6499
+ "ofType": null
6500
+ },
6501
+ "isDeprecated": false,
6502
+ "deprecationReason": null
6503
+ },
6492
6504
  {
6493
6505
  "name": "namespaces",
6494
6506
  "description": null,
@@ -47669,6 +47681,18 @@
47669
47681
  },
47670
47682
  "isDeprecated": false,
47671
47683
  "deprecationReason": null
47684
+ },
47685
+ {
47686
+ "name": "bucket_policy",
47687
+ "description": null,
47688
+ "args": [],
47689
+ "type": {
47690
+ "kind": "SCALAR",
47691
+ "name": "JSON",
47692
+ "ofType": null
47693
+ },
47694
+ "isDeprecated": false,
47695
+ "deprecationReason": null
47672
47696
  }
47673
47697
  ],
47674
47698
  "inputFields": null,
@@ -48278,6 +48302,18 @@
48278
48302
  "isDeprecated": false,
48279
48303
  "deprecationReason": null
48280
48304
  },
48305
+ {
48306
+ "name": "policy",
48307
+ "description": null,
48308
+ "args": [],
48309
+ "type": {
48310
+ "kind": "SCALAR",
48311
+ "name": "JSON",
48312
+ "ofType": null
48313
+ },
48314
+ "isDeprecated": false,
48315
+ "deprecationReason": null
48316
+ },
48281
48317
  {
48282
48318
  "name": "output_resource_name",
48283
48319
  "description": null,
@@ -243,6 +243,7 @@ query TerraformResourcesNamespaces {
243
243
  defaults
244
244
  output_resource_name
245
245
  storage_class
246
+ bucket_policy
246
247
  annotations
247
248
  }
248
249
  ... on NamespaceTerraformResourceS3SQS_v1 {
@@ -299,6 +300,7 @@ query TerraformResourcesNamespaces {
299
300
  identifier
300
301
  defaults
301
302
  es_identifier
303
+ policy
302
304
  output_resource_name
303
305
  annotations
304
306
  }
@@ -774,6 +776,7 @@ class NamespaceTerraformResourceS3CloudFrontV1(NamespaceTerraformResourceAWSV1):
774
776
  defaults: str = Field(..., alias="defaults")
775
777
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
776
778
  storage_class: Optional[str] = Field(..., alias="storage_class")
779
+ bucket_policy: Optional[str] = Field(..., alias="bucket_policy")
777
780
  annotations: Optional[str] = Field(..., alias="annotations")
778
781
 
779
782
 
@@ -836,6 +839,7 @@ class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
836
839
  identifier: str = Field(..., alias="identifier")
837
840
  defaults: str = Field(..., alias="defaults")
838
841
  es_identifier: Optional[str] = Field(..., alias="es_identifier")
842
+ policy: Optional[str] = Field(..., alias="policy")
839
843
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
840
844
  annotations: Optional[str] = Field(..., alias="annotations")
841
845
 
@@ -1100,7 +1104,7 @@ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
1100
1104
 
1101
1105
 
1102
1106
  class NamespaceTerraformProviderResourceAWSV1(NamespaceExternalResourceV1):
1103
- resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRDSProxyV1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
1107
+ resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRDSProxyV1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
1104
1108
 
1105
1109
 
1106
1110
  class EnvironmentV1(ConfiguredBaseModel):