qontract-reconcile 0.10.2.dev28__tar.gz → 0.10.2.dev30__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.
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/PKG-INFO +1 -1
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/pyproject.toml +2 -0
- qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +86 -0
- qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +92 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/pipeline_providers.py +12 -0
- qontract_reconcile-0.10.2.dev30/reconcile/utils/mr/app_sre_tekton_access_report.py +45 -0
- qontract_reconcile-0.10.2.dev30/reconcile/utils/mr/glitchtip_access_reporter.py +40 -0
- qontract_reconcile-0.10.2.dev28/reconcile/utils/mr/glitchtip_access_reporter.py → qontract_reconcile-0.10.2.dev30/reconcile/utils/mr/update_access_report_base.py +35 -47
- qontract_reconcile-0.10.2.dev30/tools/app_sre_tekton_access_reporter.py +99 -0
- qontract_reconcile-0.10.2.dev30/tools/app_sre_tekton_access_revalidation.py +90 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/glitchtip_access_reporter.py +1 -3
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/qontract_cli.py +50 -0
- qontract_reconcile-0.10.2.dev30/tools/saas_promotion_state/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/README.md +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/acs_notifiers.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/acs_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/acs_rbac.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/advanced_upgrade_service.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/aus_label_source.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/cluster_version_data.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/healthchecks.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/node_pool_spec.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/ocm_addons_upgrade_scheduler_org.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/ocm_upgrade_scheduler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/ocm_upgrade_scheduler_org.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/upgrades.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/version_gate_approver.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/version_gates/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/version_gates/handler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/version_gates/ingress_gate_handler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/version_gates/ocp_gate_handler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aus/version_gates/sts_version_gate_handler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_account_manager/README.md +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_account_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_account_manager/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_account_manager/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_account_manager/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_account_manager/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_account_manager/utils.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_ami_cleanup/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_ami_cleanup/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_ami_share.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_cloudwatch_log_retention/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_cloudwatch_log_retention/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_ecr_image_pull_secrets.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_garbage_collector.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_iam_keys.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_iam_password_reset.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_saml_idp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_saml_idp/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_saml_roles/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_saml_roles/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_support_cases_sos.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_version_sync/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_version_sync/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_version_sync/merge_request_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_version_sync/merge_request_manager/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_version_sync/merge_request_manager/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/aws_version_sync/utils.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/blackbox_exporter_endpoint_monitoring.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/README.md +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/approver.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/bundle.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/change_log_tracking.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/change_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/change_types.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/changes.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/decision.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/diff.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/implicit_ownership.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/self_service_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/change_owners/tester.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/checkpoint.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cli.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/closedbox_endpoint_monitoring_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cluster_auth_rhidp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cluster_auth_rhidp/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cluster_deployment_mapper.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/assets/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/assets/asset.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/assets/asset_factory.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/assets/null.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/cna/state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dashdotdb_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dashdotdb_cso.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dashdotdb_dora.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dashdotdb_dvo.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dashdotdb_slo.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/database_access_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/deadmanssnitch.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dynatrace_token_provider/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dynatrace_token_provider/dependencies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dynatrace_token_provider/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dynatrace_token_provider/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dynatrace_token_provider/model.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dynatrace_token_provider/ocm.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/dynatrace_token_provider/validate.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/email_sender.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/endpoints_discovery/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/endpoints_discovery/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/endpoints_discovery/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/endpoints_discovery/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/aws.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/factories.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/integration_secrets_sync.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/meta.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/model.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/secrets_sync.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/external_resources/state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gabi_authorized_users.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gcr_mirror.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/github_org.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/github_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/github_repo_invites.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/github_repo_permissions_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/github_users.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/github_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_fork_compliance.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_housekeeping.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_labeler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_members.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_mr_sqs_consumer.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gitlab_projects.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip/README.md +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip_project_alerts/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip_project_alerts/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip_project_dsn/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/glitchtip_project_dsn/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/acs/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/acs/acs_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/acs/acs_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/acs/acs_rbac.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/advanced_upgrade_service/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/app_interface_metrics_exporter/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/aws_account_manager → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/app_sre_tekton_access_revalidation}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/aws_ami_cleanup → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/aws_account_manager}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/aws_account_manager/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/aws_saml_idp → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/aws_ami_cleanup}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/aws_saml_roles → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/aws_saml_idp}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/aws_version_sync → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/aws_saml_roles}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/aws_saml_roles/roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/change_owners → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/aws_version_sync}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/aws_version_sync/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/aws_version_sync/namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/change_owners/queries → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/change_owners}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/cluster_auth_rhidp → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/change_owners/queries}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/change_owners/queries/change_types.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/change_owners/queries/self_service_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/cna → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/cluster_auth_rhidp}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/cna/queries → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/cna}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/common → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/cna/queries}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/cna/queries/cna_provisioners.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/cna/queries/cna_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/cost_report → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/common}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/alerting_services_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/app_code_component_repos.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/app_interface_custom_messages.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/app_interface_dms_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/app_interface_repo_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/app_interface_state_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/app_interface_vault_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/apps.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/aws_vpc_requests.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/aws_vpcs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/clusters_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/clusters_with_dms.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/clusters_with_peering.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/github_orgs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/jira_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/jiralert_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/namespaces_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/ocm_env_telemeter.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/ocm_environments.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/pagerduty_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/pgp_reencryption_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/quay_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/quay_orgs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/reserved_networks.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/saas_files.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/saas_target_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/saasherder_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/slack_workspaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/smtp_client_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/state_aws_account.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/common/users.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/dashdotdb_slo → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/cost_report}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/cost_report/app_names.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/cost_report/cost_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/cost_report/settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/dynatrace_token_provider → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/dashdotdb_slo}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/endpoints_discovery → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/dynatrace_token_provider}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/external_resources → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/endpoints_discovery}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/endpoints_discovery/apps.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/fragments → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/external_resources}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/external_resources/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/external_resources/external_resources_modules.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/external_resources/external_resources_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/external_resources/external_resources_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/gitlab_members → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/fragments}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aus_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aws_account_common.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aws_account_managed.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aws_account_sso.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aws_infra_management_account.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aws_vpc.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aws_vpc_request.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/aws_vpc_request_subnet.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/deplopy_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/disable.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/jumphost_common_fields.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/membership_source.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/minimal_ocm_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/oc_connection_cluster.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/ocm_environment.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/pipeline_provider_retention.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/prometheus_instance.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/resource_limits_requirements.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/resource_requests_requirements.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/resource_values.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/saas_target_namespace.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/serviceaccount_token.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/terraform_state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/upgrade_policy.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/user.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/fragments/vault_secret.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/glitchtip → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/gitlab_members}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/gitlab_members/gitlab_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/gitlab_members/permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/glitchtip_project_alerts → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/glitchtip}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/glitchtip/glitchtip_instance.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/glitchtip/glitchtip_project.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/integrations → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/glitchtip_project_alerts}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/jenkins_configs → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/integrations}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/integrations/integrations.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/introspection.json +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/jira → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/jenkins_configs}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/jira_permissions_validator → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/jira}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/jira/jira_servers.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/jumphosts → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/jira_permissions_validator}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/ldap_groups → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/jumphosts}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/jumphosts/jumphosts.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/maintenance → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/ldap_groups}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/ldap_groups/roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/ldap_groups/settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/membershipsources → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/maintenance}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/maintenance/maintenances.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/ocm_labels → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/membershipsources}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/membershipsources/roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/ocm_oidc_idp → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/ocm_labels}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/ocm_labels/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/ocm_labels/organizations.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/ocm_subscription_labels → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/ocm_oidc_idp}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/openshift_cluster_bots → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/ocm_subscription_labels}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/openshift_groups → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/openshift_cluster_bots}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/openshift_cluster_bots/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/openshift_serviceaccount_tokens → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/openshift_groups}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/openshift_groups/managed_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/openshift_groups/managed_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/quay_membership → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/openshift_serviceaccount_tokens}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/rhidp → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/quay_membership}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/quay_membership/quay_membership.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/service_dependencies → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/rhidp}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/rhidp/organizations.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/sharding → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/service_dependencies}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/service_dependencies/service_dependencies.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/skupper_network → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/sharding}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/sharding/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/sharding/ocm_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/slack_usergroups → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/skupper_network}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/skupper_network/site_controller_template.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/skupper_network/skupper_networks.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/slo_documents → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/slack_usergroups}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/slack_usergroups/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/slack_usergroups/permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/slack_usergroups/users.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/status_board → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/slo_documents}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/slo_documents/slo_documents.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/statuspage → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/status_board}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/status_board/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/templating → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/statuspage}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/statuspage/statuspages.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/terraform_cloudflare_dns → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/templating}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/templating/template_collection.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/templating/templates.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/terraform_cloudflare_resources → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/terraform_cloudflare_dns}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/terraform_cloudflare_users → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/terraform_cloudflare_resources}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/terraform_init → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/terraform_cloudflare_users}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/terraform_repo → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/terraform_init}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_init/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/terraform_resources → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/terraform_repo}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_repo/terraform_repo.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/terraform_tgw_attachments → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/terraform_resources}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_resources/database_access_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/unleash_feature_toggles → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/terraform_tgw_attachments}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/vault_instances → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/unleash_feature_toggles}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/vault_policies → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/vault_instances}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/vault_instances/vault_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/gql_definitions/vpc_peerings_validator → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/vault_policies}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/vault_policies/vault_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/jenkins → qontract_reconcile-0.10.2.dev30/reconcile/gql_definitions/vpc_peerings_validator}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/integrations_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/ldap_groups → qontract_reconcile-0.10.2.dev30/reconcile/jenkins}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins/types.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_job_builder.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_job_builds_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_job_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_webhooks.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_webhooks_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jenkins_worker_fleets.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jira_permissions_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/jira_watcher.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/ocm → qontract_reconcile-0.10.2.dev30/reconcile/ldap_groups}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ldap_groups/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ldap_users.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/mr_client_gateway.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/ocm_internal_notifications → qontract_reconcile-0.10.2.dev30/reconcile/ocm}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm/types.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_additional_routers.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_addons.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_addons_upgrade_tests_trigger.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_aws_infrastructure_access.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_external_configuration_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_github_idp.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/ocm_labels → qontract_reconcile-0.10.2.dev30/reconcile/ocm_internal_notifications}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_internal_notifications/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/oum → qontract_reconcile-0.10.2.dev30/reconcile/ocm_labels}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_labels/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_machine_pools.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_update_recommended_version.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/ocm_upgrade_scheduler_org_updater.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_cluster_bots.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_clusterrolebindings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_limitranges.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_namespace_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_network_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_prometheus_rules.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_resourcequotas.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_resources_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_rolebindings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_routes.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy_change_tester.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy_trigger_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy_trigger_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy_trigger_configs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy_trigger_images.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy_trigger_moving_commits.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_saas_deploy_trigger_upstream_jobs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_serviceaccount_tokens.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_tekton_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_upgrade_watcher.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_users.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/openshift_vault_secrets.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/prometheus_rules_tester → qontract_reconcile-0.10.2.dev30/reconcile/oum}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/oum/base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/oum/labelset.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/oum/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/oum/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/oum/providers.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/oum/standalone.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/rhidp → qontract_reconcile-0.10.2.dev30/reconcile/prometheus_rules_tester}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/prometheus_rules_tester/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/quay_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/quay_membership.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/quay_mirror.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/quay_mirror_org.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/quay_permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/quay_repos.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/queries.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/query_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/requests_sender.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/resource_scraper.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/resource_template_tester.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/rhidp/ocm_oidc_idp → qontract_reconcile-0.10.2.dev30/reconcile/rhidp}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/common.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/rhidp/sso_client → qontract_reconcile-0.10.2.dev30/reconcile/rhidp/ocm_oidc_idp}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/ocm_oidc_idp/base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/ocm_oidc_idp/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/ocm_oidc_idp/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/saas_auto_promotions_manager → qontract_reconcile-0.10.2.dev30/reconcile/rhidp/sso_client}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/sso_client/base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/sso_client/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/rhidp/sso_client/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/run_integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/saas_auto_promotions_manager/merge_request_manager → qontract_reconcile-0.10.2.dev30/reconcile/saas_auto_promotions_manager}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/saas_auto_promotions_manager/utils → qontract_reconcile-0.10.2.dev30/reconcile/saas_auto_promotions_manager/merge_request_manager}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/batcher.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/desired_state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request_manager_v2.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/mr_parser.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/open_merge_requests.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/meta.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/publisher.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/s3_exporter.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/subscriber.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/skupper_network → qontract_reconcile-0.10.2.dev30/reconcile/saas_auto_promotions_manager/utils}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_auto_promotions_manager/utils/saas_files_inventory.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/saas_file_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/sendgrid_teammates.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/service_dependencies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/signalfx_endpoint_monitoring.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/statuspage → qontract_reconcile-0.10.2.dev30/reconcile/skupper_network}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/skupper_network/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/skupper_network/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/skupper_network/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/skupper_network/site_controller.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/slack_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/slack_usergroups.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/sql_query.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/status.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/statuspage/integrations → qontract_reconcile-0.10.2.dev30/reconcile/statuspage}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/statuspage/atlassian.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/statuspage/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/templates → qontract_reconcile-0.10.2.dev30/reconcile/statuspage/integrations}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/statuspage/integrations/components.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/statuspage/integrations/maintenances.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/statuspage/page.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/statuspage/state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/statuspage/status.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/templating → qontract_reconcile-0.10.2.dev30/reconcile/templates}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templates/aws_access_key_email.j2 +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templates/email.yml.j2 +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templates/jira-checkpoint-missinginfo.j2 +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templates/rosa-classic-cluster-creation.sh.j2 +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/templating/lib → qontract_reconcile-0.10.2.dev30/reconcile/templating}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/terraform_init → qontract_reconcile-0.10.2.dev30/reconcile/templating/lib}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templating/lib/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templating/lib/model.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templating/lib/rendering.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templating/renderer.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/templating/validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_aws_route53.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_cloudflare_dns.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_cloudflare_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_cloudflare_users.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/terraform_vpc_resources → qontract_reconcile-0.10.2.dev30/reconcile/terraform_init}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_init/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_init/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_init/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_repo.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_tgw_attachments.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_users.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_vpc_peerings.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/typed_queries/app_interface_metrics_exporter → qontract_reconcile-0.10.2.dev30/reconcile/terraform_vpc_resources}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_vpc_resources/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_vpc_resources/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/terraform_vpc_resources/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/alerting_services_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_interface_custom_messages.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_interface_deadmanssnitch_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/typed_queries/cost_report → qontract_reconcile-0.10.2.dev30/reconcile/typed_queries/app_interface_metrics_exporter}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_interface_metrics_exporter/onboarding_status.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_interface_metrics_exporter/terraform_repo.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_interface_repo_url.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_interface_state_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_interface_vault_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/app_quay_repos_escalation_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/apps.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/aws_vpc_requests.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/aws_vpcs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/cloudflare.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/clusters_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/clusters_with_dms.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/clusters_with_peering.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/typed_queries/terraform_tgw_attachments → qontract_reconcile-0.10.2.dev30/reconcile/typed_queries/cost_report}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/cost_report/app_names.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/cost_report/cost_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/cost_report/settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/dynatrace.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/dynatrace_environments.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/dynatrace_token_provider_token_specs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/external_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/get_state_aws_account.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/github_orgs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/gitlab_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/glitchtip.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/jenkins.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/jira.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/jira_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/jiralert_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/namespaces_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/ocm.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/pagerduty_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/quay.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/repos.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/reserved_networks.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/saas_files.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/slack.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/slo_documents.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/smtp.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/tekton_pipeline_providers.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/terraform_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/unleash_feature_toggles → qontract_reconcile-0.10.2.dev30/reconcile/typed_queries/terraform_tgw_attachments}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/terraform_tgw_attachments/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/unleash.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/users.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/typed_queries/vault.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils → qontract_reconcile-0.10.2.dev30/reconcile/unleash_feature_toggles}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/unleash_feature_toggles/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/acs → qontract_reconcile-0.10.2.dev30/reconcile/utils}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/aws_api_typed → qontract_reconcile-0.10.2.dev30/reconcile/utils/acs}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/acs/base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/acs/notifiers.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/acs/policies.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/acs/rbac.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aggregated_list.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/amtool.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/cloud_resource_best_practice → qontract_reconcile-0.10.2.dev30/reconcile/utils/aws_api_typed}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/account.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/dynamodb.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/iam.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/organization.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/s3.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/service_quotas.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/sts.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_api_typed/support.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/aws_helper.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/batches.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/binary.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/clusterhealth → qontract_reconcile-0.10.2.dev30/reconcile/utils/cloud_resource_best_practice}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/cloud_resource_best_practice/aws_rds.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/dynatrace → qontract_reconcile-0.10.2.dev30/reconcile/utils/clusterhealth}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/clusterhealth/providerbase.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/clusterhealth/telemeter.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/config.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/constants.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/data_structures.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/deadmanssnitch_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/defer.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/differ.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/disabled_integrations.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/dnsutils.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/internal_groups → qontract_reconcile-0.10.2.dev30/reconcile/utils/dynatrace}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/dynatrace/client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/early_exit_cache.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/elasticsearch_exceptions.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/environ.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/exceptions.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/expiration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/extended_early_exit.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/external_resource_spec.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/external_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/filtering.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/git.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/github_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/gitlab_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/glitchtip/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/glitchtip/client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/glitchtip/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/gpg.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/gql.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/grouping.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/helm.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/helpers.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/imap_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/instrumented_wrappers.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/jinja2 → qontract_reconcile-0.10.2.dev30/reconcile/utils/internal_groups}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/internal_groups/client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/internal_groups/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jenkins_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/jobcontroller → qontract_reconcile-0.10.2.dev30/reconcile/utils/jinja2}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jinja2/extensions.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jinja2/filters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jinja2/utils.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jira_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jjb_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/membershipsources → qontract_reconcile-0.10.2.dev30/reconcile/utils/jobcontroller}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jobcontroller/controller.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jobcontroller/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jsonpath.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/jump_host.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/keycloak.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ldap_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/lean_terraform_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/make.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/merge_request_manager → qontract_reconcile-0.10.2.dev30/reconcile/utils/membershipsources}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/membershipsources/app_interface_resolver.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/membershipsources/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/membershipsources/resolver.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/rosa → qontract_reconcile-0.10.2.dev30/reconcile/utils/merge_request_manager}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/merge_request_manager/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/merge_request_manager/parser.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/README.md +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/app_interface_reporter.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/aws_access.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/clusters_updates.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/labels.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/notificator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/ocm_update_recommended_version.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/promote_qontract.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/mr/user_maintenance.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/oauth2_backend_application_session.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/oc.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/oc_connection_parameters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/oc_filters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/oc_map.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/addons.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/base.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/cluster_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/identity_providers.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/label_sources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/labels.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/manifests.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/ocm.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/products.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/search_filters.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/service_log.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/sre_capability_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/subscriptions.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/syncsets.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm/upgrades.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ocm_base_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/openshift_resource.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/openssl.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/output.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/pagerduty_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/parse_dhms_duration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/password_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/prometheus.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/promotion_state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/promtool.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/quay_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/raw_github_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/repo_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/rest_api_base.py +0 -0
- {qontract_reconcile-0.10.2.dev28/reconcile/utils/terrascript → qontract_reconcile-0.10.2.dev30/reconcile/utils/rosa}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/rosa/rosa_cli.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/rosa/session.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/ruamel.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/runtime/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/runtime/desired_state_diff.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/runtime/environment.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/runtime/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/runtime/meta.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/runtime/runner.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/runtime/sharding.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/saasherder/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/saasherder/interfaces.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/saasherder/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/saasherder/saasherder.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/secret_reader.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/semver_helper.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/sharding.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/slack_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/smtp_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/sqs_gateway.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/structs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/template.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terraform/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terraform/config.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terraform/config_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terraform_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28/tools → qontract_reconcile-0.10.2.dev30/reconcile/utils/terrascript}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terrascript/cloudflare_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terrascript/cloudflare_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terrascript/models.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terrascript/resources.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/terrascript_aws_client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/three_way_diff_strategy.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/throughput.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/unleash/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/unleash/client.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/unleash/server.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/vault.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/vaultsecretref.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/utils/vcs.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/vault_replication.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/reconcile/vpc_peerings_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev28/tools/cli_commands → qontract_reconcile-0.10.2.dev30/tools}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/app_interface_metrics_exporter.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/app_interface_reporter.py +0 -0
- {qontract_reconcile-0.10.2.dev28/tools/cli_commands/cost_report → qontract_reconcile-0.10.2.dev30/tools/cli_commands}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/container_images_report.py +0 -0
- {qontract_reconcile-0.10.2.dev28/tools/saas_metrics_exporter → qontract_reconcile-0.10.2.dev30/tools/cli_commands/cost_report}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/aws.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/cost_management_api.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/model.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/openshift.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/openshift_cost_optimization.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/response.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/util.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/cost_report/view.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/erv2.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/gpg_encrypt.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/cli_commands/systems_and_tools.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/glitchtip_access_revalidation.py +0 -0
- {qontract_reconcile-0.10.2.dev28/tools/saas_metrics_exporter/commit_distance → qontract_reconcile-0.10.2.dev30/tools/saas_metrics_exporter}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28/tools/saas_promotion_state → qontract_reconcile-0.10.2.dev30/tools/saas_metrics_exporter/commit_distance}/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/saas_metrics_exporter/commit_distance/channel.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/saas_metrics_exporter/commit_distance/commit_distance.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/saas_metrics_exporter/commit_distance/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/saas_metrics_exporter/main.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/saas_promotion_state/saas_promotion_state.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/sd_app_sre_alert_report.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/sre_checkpoints/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/tools/sre_checkpoints/util.py +0 -0
- {qontract_reconcile-0.10.2.dev28 → qontract_reconcile-0.10.2.dev30}/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.
|
3
|
+
Version: 0.10.2.dev30
|
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
|
@@ -111,6 +111,8 @@ app-interface-metrics-exporter = "tools.app_interface_metrics_exporter:main"
|
|
111
111
|
app-interface-reporter = "tools.app_interface_reporter:main"
|
112
112
|
glitchtip-access-reporter = "tools.glitchtip_access_reporter:main"
|
113
113
|
glitchtip-access-revalidation = "tools.glitchtip_access_revalidation:main"
|
114
|
+
app-sre-tekton-access-reporter = "tools.app_sre_tekton_access_reporter:main"
|
115
|
+
app-sre-tekton-access-revalidation = "tools.app_sre_tekton_access_revalidation:main"
|
114
116
|
qontract-cli = "tools.qontract_cli:root"
|
115
117
|
qontract-reconcile = "reconcile.cli:integration"
|
116
118
|
run-integration = "reconcile.run_integration:main"
|
@@ -0,0 +1,86 @@
|
|
1
|
+
"""
|
2
|
+
Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
|
3
|
+
"""
|
4
|
+
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
5
|
+
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
6
|
+
from enum import Enum # noqa: F401 # pylint: disable=W0611
|
7
|
+
from typing import ( # noqa: F401 # pylint: disable=W0611
|
8
|
+
Any,
|
9
|
+
Optional,
|
10
|
+
Union,
|
11
|
+
)
|
12
|
+
|
13
|
+
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
14
|
+
BaseModel,
|
15
|
+
Extra,
|
16
|
+
Field,
|
17
|
+
Json,
|
18
|
+
)
|
19
|
+
|
20
|
+
|
21
|
+
DEFINITION = """
|
22
|
+
query AppSRETektonAccessRevalidationRoles {
|
23
|
+
roles: roles_v1 {
|
24
|
+
path
|
25
|
+
access {
|
26
|
+
role
|
27
|
+
namespace {
|
28
|
+
path
|
29
|
+
}
|
30
|
+
}
|
31
|
+
users {
|
32
|
+
org_username
|
33
|
+
path
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
"""
|
38
|
+
|
39
|
+
|
40
|
+
class ConfiguredBaseModel(BaseModel):
|
41
|
+
class Config:
|
42
|
+
smart_union=True
|
43
|
+
extra=Extra.forbid
|
44
|
+
|
45
|
+
|
46
|
+
class NamespaceV1(ConfiguredBaseModel):
|
47
|
+
path: str = Field(..., alias="path")
|
48
|
+
|
49
|
+
|
50
|
+
class AccessV1(ConfiguredBaseModel):
|
51
|
+
role: Optional[str] = Field(..., alias="role")
|
52
|
+
namespace: Optional[NamespaceV1] = Field(..., alias="namespace")
|
53
|
+
|
54
|
+
|
55
|
+
class UserV1(ConfiguredBaseModel):
|
56
|
+
org_username: str = Field(..., alias="org_username")
|
57
|
+
path: str = Field(..., alias="path")
|
58
|
+
|
59
|
+
|
60
|
+
class RoleV1(ConfiguredBaseModel):
|
61
|
+
path: str = Field(..., alias="path")
|
62
|
+
access: Optional[list[AccessV1]] = Field(..., alias="access")
|
63
|
+
users: list[UserV1] = Field(..., alias="users")
|
64
|
+
|
65
|
+
|
66
|
+
class AppSRETektonAccessRevalidationRolesQueryData(ConfiguredBaseModel):
|
67
|
+
roles: Optional[list[RoleV1]] = Field(..., alias="roles")
|
68
|
+
|
69
|
+
|
70
|
+
def query(query_func: Callable, **kwargs: Any) -> AppSRETektonAccessRevalidationRolesQueryData:
|
71
|
+
"""
|
72
|
+
This is a convenience function which queries and parses the data into
|
73
|
+
concrete types. It should be compatible with most GQL clients.
|
74
|
+
You do not have to use it to consume the generated data classes.
|
75
|
+
Alternatively, you can also mime and alternate the behavior
|
76
|
+
of this function in the caller.
|
77
|
+
|
78
|
+
Parameters:
|
79
|
+
query_func (Callable): Function which queries your GQL Server
|
80
|
+
kwargs: optional arguments that will be passed to the query function
|
81
|
+
|
82
|
+
Returns:
|
83
|
+
AppSRETektonAccessRevalidationRolesQueryData: queried data parsed into generated classes
|
84
|
+
"""
|
85
|
+
raw_data: dict[Any, Any] = query_func(DEFINITION, **kwargs)
|
86
|
+
return AppSRETektonAccessRevalidationRolesQueryData(**raw_data)
|
@@ -0,0 +1,92 @@
|
|
1
|
+
"""
|
2
|
+
Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
|
3
|
+
"""
|
4
|
+
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
5
|
+
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
6
|
+
from enum import Enum # noqa: F401 # pylint: disable=W0611
|
7
|
+
from typing import ( # noqa: F401 # pylint: disable=W0611
|
8
|
+
Any,
|
9
|
+
Optional,
|
10
|
+
Union,
|
11
|
+
)
|
12
|
+
|
13
|
+
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
14
|
+
BaseModel,
|
15
|
+
Extra,
|
16
|
+
Field,
|
17
|
+
Json,
|
18
|
+
)
|
19
|
+
|
20
|
+
|
21
|
+
DEFINITION = """
|
22
|
+
query AppSRETektonAccessRevalidationUsers {
|
23
|
+
users: users_v1 {
|
24
|
+
name
|
25
|
+
org_username
|
26
|
+
roles {
|
27
|
+
access {
|
28
|
+
role
|
29
|
+
namespace {
|
30
|
+
name
|
31
|
+
cluster {
|
32
|
+
name
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
"""
|
40
|
+
|
41
|
+
|
42
|
+
class ConfiguredBaseModel(BaseModel):
|
43
|
+
class Config:
|
44
|
+
smart_union=True
|
45
|
+
extra=Extra.forbid
|
46
|
+
|
47
|
+
|
48
|
+
class ClusterV1(ConfiguredBaseModel):
|
49
|
+
name: str = Field(..., alias="name")
|
50
|
+
|
51
|
+
|
52
|
+
class NamespaceV1(ConfiguredBaseModel):
|
53
|
+
name: str = Field(..., alias="name")
|
54
|
+
cluster: ClusterV1 = Field(..., alias="cluster")
|
55
|
+
|
56
|
+
|
57
|
+
class AccessV1(ConfiguredBaseModel):
|
58
|
+
role: Optional[str] = Field(..., alias="role")
|
59
|
+
namespace: Optional[NamespaceV1] = Field(..., alias="namespace")
|
60
|
+
|
61
|
+
|
62
|
+
class RoleV1(ConfiguredBaseModel):
|
63
|
+
access: Optional[list[AccessV1]] = Field(..., alias="access")
|
64
|
+
|
65
|
+
|
66
|
+
class UserV1(ConfiguredBaseModel):
|
67
|
+
name: str = Field(..., alias="name")
|
68
|
+
org_username: str = Field(..., alias="org_username")
|
69
|
+
roles: Optional[list[RoleV1]] = Field(..., alias="roles")
|
70
|
+
|
71
|
+
|
72
|
+
class AppSRETektonAccessRevalidationUsersQueryData(ConfiguredBaseModel):
|
73
|
+
users: Optional[list[UserV1]] = Field(..., alias="users")
|
74
|
+
|
75
|
+
|
76
|
+
def query(query_func: Callable, **kwargs: Any) -> AppSRETektonAccessRevalidationUsersQueryData:
|
77
|
+
"""
|
78
|
+
This is a convenience function which queries and parses the data into
|
79
|
+
concrete types. It should be compatible with most GQL clients.
|
80
|
+
You do not have to use it to consume the generated data classes.
|
81
|
+
Alternatively, you can also mime and alternate the behavior
|
82
|
+
of this function in the caller.
|
83
|
+
|
84
|
+
Parameters:
|
85
|
+
query_func (Callable): Function which queries your GQL Server
|
86
|
+
kwargs: optional arguments that will be passed to the query function
|
87
|
+
|
88
|
+
Returns:
|
89
|
+
AppSRETektonAccessRevalidationUsersQueryData: queried data parsed into generated classes
|
90
|
+
"""
|
91
|
+
raw_data: dict[Any, Any] = query_func(DEFINITION, **kwargs)
|
92
|
+
return AppSRETektonAccessRevalidationUsersQueryData(**raw_data)
|
@@ -95,7 +95,12 @@ query PipelineProviders {
|
|
95
95
|
}
|
96
96
|
namespace {
|
97
97
|
name
|
98
|
+
path
|
98
99
|
clusterAdmin
|
100
|
+
app {
|
101
|
+
name
|
102
|
+
path
|
103
|
+
}
|
99
104
|
cluster {
|
100
105
|
name
|
101
106
|
serverUrl
|
@@ -193,6 +198,11 @@ class PipelinesProviderTektonProviderDefaultsV1(ConfiguredBaseModel):
|
|
193
198
|
deploy_resources: Optional[DeployResourcesV1] = Field(..., alias="deployResources")
|
194
199
|
|
195
200
|
|
201
|
+
class AppV1(ConfiguredBaseModel):
|
202
|
+
name: str = Field(..., alias="name")
|
203
|
+
path: str = Field(..., alias="path")
|
204
|
+
|
205
|
+
|
196
206
|
class DisableClusterAutomationsV1(ConfiguredBaseModel):
|
197
207
|
integrations: Optional[list[str]] = Field(..., alias="integrations")
|
198
208
|
|
@@ -210,7 +220,9 @@ class ClusterV1(ConfiguredBaseModel):
|
|
210
220
|
|
211
221
|
class NamespaceV1(ConfiguredBaseModel):
|
212
222
|
name: str = Field(..., alias="name")
|
223
|
+
path: str = Field(..., alias="path")
|
213
224
|
cluster_admin: Optional[bool] = Field(..., alias="clusterAdmin")
|
225
|
+
app: AppV1 = Field(..., alias="app")
|
214
226
|
cluster: ClusterV1 = Field(..., alias="cluster")
|
215
227
|
|
216
228
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from pydantic import BaseModel
|
2
|
+
|
3
|
+
from reconcile.utils.mr.update_access_report_base import UpdateAccessReportBase
|
4
|
+
|
5
|
+
|
6
|
+
class UpdateAppSRETektonAccessReport(UpdateAccessReportBase):
|
7
|
+
name = "app_sre_tekton_access_report_mr"
|
8
|
+
short_description = "AppSRE Tekton Access Report"
|
9
|
+
template = """
|
10
|
+
| Username | Name | Apps with pipeline namespace access |
|
11
|
+
| -------- | ---- | ----------------------------------- |
|
12
|
+
{% for user in users|sort -%}
|
13
|
+
| {{ user.org_username }} | {{ user.name }} |{% for app in user.apps %} {{app}}{% if not loop.last%},{% endif %}{% endfor %} |
|
14
|
+
{% endfor %}
|
15
|
+
""".strip()
|
16
|
+
|
17
|
+
|
18
|
+
# User model
|
19
|
+
class AppSRETektonAccessReportUserModel(BaseModel):
|
20
|
+
org_username: str
|
21
|
+
name: str
|
22
|
+
apps: set[str]
|
23
|
+
|
24
|
+
def __lt__(self, other: object) -> bool:
|
25
|
+
if not isinstance(other, AppSRETektonAccessReportUserModel):
|
26
|
+
raise NotImplementedError(
|
27
|
+
"Cannot compare to non AppSRETektonAccessReportUser objects."
|
28
|
+
)
|
29
|
+
return self.org_username < other.org_username
|
30
|
+
|
31
|
+
|
32
|
+
# Mutable User class
|
33
|
+
class AppSRETektonAccessReportUser:
|
34
|
+
def __init__(self, name: str, org_username: str, apps: set):
|
35
|
+
self._org_username = org_username
|
36
|
+
self._name = name
|
37
|
+
self._apps = apps
|
38
|
+
|
39
|
+
def add_app(self, app: str) -> None:
|
40
|
+
self._apps.add(app)
|
41
|
+
|
42
|
+
def generate_model(self) -> AppSRETektonAccessReportUserModel:
|
43
|
+
return AppSRETektonAccessReportUserModel(
|
44
|
+
name=self._name, org_username=self._org_username, apps=self._apps
|
45
|
+
)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
from pydantic import BaseModel
|
2
|
+
|
3
|
+
from reconcile.utils.mr.update_access_report_base import UpdateAccessReportBase
|
4
|
+
|
5
|
+
|
6
|
+
class UpdateGlitchtipAccessReport(UpdateAccessReportBase):
|
7
|
+
name = "glitchtip_access_report_mr"
|
8
|
+
short_description = "glitchtip access report"
|
9
|
+
template = """
|
10
|
+
| Username | Name | Organizations and Access Levels |
|
11
|
+
| -------- | ---- | ------------------------------- |
|
12
|
+
{% for user in users|sort -%}
|
13
|
+
| {{ user.username }} | {{ user.name }} |{% for org in user.organizations %} {{org.name}} ({{ org.access_level }}){% if not loop.last%},{% endif %}{% endfor %} |
|
14
|
+
{% endfor %}
|
15
|
+
""".strip()
|
16
|
+
|
17
|
+
|
18
|
+
class GlitchtipAccessReportOrg(BaseModel):
|
19
|
+
name: str
|
20
|
+
access_level: str
|
21
|
+
|
22
|
+
def __eq__(self, other: object) -> bool:
|
23
|
+
if not isinstance(other, GlitchtipAccessReportOrg):
|
24
|
+
raise NotImplementedError(
|
25
|
+
"Cannot compare to non GlitchtipAccessReportOrg objects."
|
26
|
+
)
|
27
|
+
return self.name == other.name
|
28
|
+
|
29
|
+
|
30
|
+
class GlitchtipAccessReportUser(BaseModel):
|
31
|
+
name: str
|
32
|
+
username: str
|
33
|
+
organizations: list[GlitchtipAccessReportOrg]
|
34
|
+
|
35
|
+
def __lt__(self, other: object) -> bool:
|
36
|
+
if not isinstance(other, GlitchtipAccessReportUser):
|
37
|
+
raise NotImplementedError(
|
38
|
+
"Cannot compare to non GlitchtipAccessReportUser objects."
|
39
|
+
)
|
40
|
+
return self.username < other.username
|
@@ -1,8 +1,10 @@
|
|
1
1
|
import logging
|
2
|
+
from abc import abstractmethod
|
2
3
|
from collections.abc import Sequence
|
3
4
|
from datetime import UTC, date
|
4
5
|
from datetime import datetime as dt
|
5
6
|
from pathlib import Path
|
7
|
+
from typing import TypeVar
|
6
8
|
|
7
9
|
from jinja2 import Template
|
8
10
|
from pydantic import BaseModel
|
@@ -11,68 +13,54 @@ from reconcile.utils.gitlab_api import GitLabApi
|
|
11
13
|
from reconcile.utils.mr.base import MergeRequestBase
|
12
14
|
from reconcile.utils.mr.labels import AUTO_MERGE
|
13
15
|
|
14
|
-
|
15
|
-
| Username | Name | Organizations and Access Levels |
|
16
|
-
| -------- | ---- | ------------------------------- |
|
17
|
-
{% for user in users|sort -%}
|
18
|
-
| {{ user.username }} | {{ user.name }} |{% for org in user.organizations %} {{org.name}} ({{ org.access_level }}){% if not loop.last%},{% endif %}{% endfor %} |
|
19
|
-
{% endfor %}
|
20
|
-
""".strip()
|
16
|
+
AccessReportUser = TypeVar("AccessReportUser", bound=BaseModel)
|
21
17
|
|
22
18
|
|
23
|
-
class
|
24
|
-
name: str
|
25
|
-
access_level: str
|
26
|
-
|
27
|
-
def __eq__(self, other: object) -> bool:
|
28
|
-
if not isinstance(other, GlitchtipAccessReportOrg):
|
29
|
-
raise NotImplementedError(
|
30
|
-
"Cannot compare to non GlitchtipAccessReportOrg objects."
|
31
|
-
)
|
32
|
-
return self.name == other.name
|
33
|
-
|
34
|
-
|
35
|
-
class GlitchtipAccessReportUser(BaseModel):
|
36
|
-
name: str
|
37
|
-
username: str
|
38
|
-
organizations: list[GlitchtipAccessReportOrg]
|
39
|
-
|
40
|
-
def __lt__(self, other: object) -> bool:
|
41
|
-
if not isinstance(other, GlitchtipAccessReportUser):
|
42
|
-
raise NotImplementedError(
|
43
|
-
"Cannot compare to non GlitchtipAccessReportUser objects."
|
44
|
-
)
|
45
|
-
return self.username < other.username
|
46
|
-
|
47
|
-
|
48
|
-
class UpdateGlitchtipAccessReport(MergeRequestBase):
|
49
|
-
name = "glitchtip_access_report_mr"
|
50
|
-
|
19
|
+
class UpdateAccessReportBase(MergeRequestBase):
|
51
20
|
def __init__(
|
52
21
|
self,
|
53
|
-
users: Sequence[
|
54
|
-
|
22
|
+
users: Sequence[AccessReportUser],
|
23
|
+
workbook_path: Path,
|
55
24
|
dry_run: bool = True,
|
56
25
|
):
|
57
26
|
super().__init__()
|
58
27
|
self.labels = [AUTO_MERGE]
|
59
28
|
self._users = users
|
60
|
-
self.
|
61
|
-
glitchtip_access_revalidation_workbook
|
62
|
-
)
|
29
|
+
self._workbook_file_name = str(workbook_path)
|
63
30
|
self._isodate = dt.now(tz=UTC).isoformat()
|
64
31
|
self._dry_run = dry_run
|
65
32
|
|
33
|
+
@property
|
34
|
+
@abstractmethod
|
35
|
+
def short_description(self) -> str:
|
36
|
+
"""
|
37
|
+
Short Description of the Merge Request (without dates). It will be used to
|
38
|
+
build the Merge Request description as seen in the UI.
|
39
|
+
|
40
|
+
:return: Merge Request description as seen in the Gitlab Web UI without date.
|
41
|
+
:rtype: str
|
42
|
+
"""
|
43
|
+
|
44
|
+
@property
|
45
|
+
@abstractmethod
|
46
|
+
def template(self) -> str:
|
47
|
+
"""
|
48
|
+
Jinja2 template to generate the report main table.
|
49
|
+
|
50
|
+
:return: report jinja2 template.
|
51
|
+
:rtype: str
|
52
|
+
"""
|
53
|
+
|
66
54
|
@property
|
67
55
|
def title(self) -> str:
|
68
56
|
return f"[{self.name}] reports for {self._isodate}"
|
69
57
|
|
70
58
|
@property
|
71
59
|
def description(self) -> str:
|
72
|
-
return f"
|
60
|
+
return f"{self.short_description} for {self._isodate}"
|
73
61
|
|
74
62
|
def _render_current_users_table(self) -> str:
|
75
|
-
template = Template(
|
63
|
+
template = Template(self.template, keep_trailing_newline=True)
|
76
64
|
return template.render(users=self._users)
|
77
65
|
|
78
66
|
def _render_tracking_table_row(self, old_number_of_users: int) -> str:
|
@@ -113,22 +101,22 @@ class UpdateGlitchtipAccessReport(MergeRequestBase):
|
|
113
101
|
|
114
102
|
def process(self, gitlab_cli: GitLabApi) -> None:
|
115
103
|
workbook_md = gitlab_cli.project.files.get(
|
116
|
-
file_path=self.
|
104
|
+
file_path=self._workbook_file_name, ref=self.branch
|
117
105
|
)
|
118
106
|
workbook_md = self._update_workbook(workbook_md.decode().decode("utf-8"))
|
119
107
|
|
120
108
|
if not self._dry_run:
|
121
109
|
logging.info(
|
122
|
-
f"updating
|
110
|
+
f"updating {self.short_description}: {self._workbook_file_name}"
|
123
111
|
)
|
124
112
|
gitlab_cli.update_file(
|
125
113
|
branch_name=self.branch,
|
126
|
-
file_path=self.
|
127
|
-
commit_message="update
|
114
|
+
file_path=self._workbook_file_name,
|
115
|
+
commit_message=f"update {self.short_description}",
|
128
116
|
content=workbook_md,
|
129
117
|
)
|
130
118
|
else:
|
131
119
|
logging.info(
|
132
|
-
f"dry-run: not updating
|
120
|
+
f"dry-run: not updating {self.short_description}: {self._workbook_file_name}"
|
133
121
|
)
|
134
122
|
logging.info(workbook_md)
|
@@ -0,0 +1,99 @@
|
|
1
|
+
import logging
|
2
|
+
from collections import defaultdict
|
3
|
+
from pathlib import Path
|
4
|
+
|
5
|
+
import click
|
6
|
+
|
7
|
+
from reconcile import mr_client_gateway
|
8
|
+
from reconcile.cli import (
|
9
|
+
config_file,
|
10
|
+
dry_run,
|
11
|
+
gitlab_project_id,
|
12
|
+
log_level,
|
13
|
+
)
|
14
|
+
from reconcile.gql_definitions.app_sre_tekton_access_revalidation.users import (
|
15
|
+
query as users_query,
|
16
|
+
)
|
17
|
+
from reconcile.typed_queries.tekton_pipeline_providers import (
|
18
|
+
get_tekton_pipeline_providers,
|
19
|
+
)
|
20
|
+
from reconcile.utils import gql
|
21
|
+
from reconcile.utils.mr.app_sre_tekton_access_report import (
|
22
|
+
AppSRETektonAccessReportUser,
|
23
|
+
UpdateAppSRETektonAccessReport,
|
24
|
+
)
|
25
|
+
from reconcile.utils.runtime.environment import init_env
|
26
|
+
|
27
|
+
|
28
|
+
@click.command()
|
29
|
+
@config_file
|
30
|
+
@dry_run
|
31
|
+
@log_level
|
32
|
+
@gitlab_project_id
|
33
|
+
@click.option(
|
34
|
+
"--workbook-path",
|
35
|
+
help="path to AppSRE Tekton access revalidation workbook markdown file",
|
36
|
+
default="docs/app-sre/tekton/access-revalidation-workbook.md",
|
37
|
+
)
|
38
|
+
def main(
|
39
|
+
configfile: str,
|
40
|
+
dry_run: bool,
|
41
|
+
log_level: str,
|
42
|
+
gitlab_project_id: int,
|
43
|
+
workbook_path: str,
|
44
|
+
) -> None:
|
45
|
+
"""Update AppSRE Tekton access report.
|
46
|
+
|
47
|
+
This script updates the AppSRE Tekton access report (markdown file) with the latest
|
48
|
+
access information.
|
49
|
+
"""
|
50
|
+
|
51
|
+
init_env(log_level=log_level, config_file=configfile)
|
52
|
+
|
53
|
+
# pipeline providers namespaces dict, containing the all the pipelines namespaces
|
54
|
+
# the (cluster_name, namespace_name) tuple to app_name correspondence.
|
55
|
+
pp_namespaces_apps = {
|
56
|
+
(p.namespace.cluster.name, p.namespace.name): p.namespace.app.name
|
57
|
+
for p in get_tekton_pipeline_providers()
|
58
|
+
}
|
59
|
+
|
60
|
+
report_users: dict[str, AppSRETektonAccessReportUser] = {}
|
61
|
+
users = users_query(query_func=gql.get_api().query).users or []
|
62
|
+
for u in users:
|
63
|
+
namespace_roles = defaultdict(set)
|
64
|
+
for r in u.roles or []:
|
65
|
+
if r.access is None:
|
66
|
+
continue
|
67
|
+
|
68
|
+
for a in r.access:
|
69
|
+
if a.namespace is None:
|
70
|
+
continue
|
71
|
+
|
72
|
+
namespace_tuple = (a.namespace.cluster.name, a.namespace.name)
|
73
|
+
namespace_roles[namespace_tuple].add(a.role)
|
74
|
+
|
75
|
+
for namespace_tuple, roles in namespace_roles.items():
|
76
|
+
if pp_app := pp_namespaces_apps.get(namespace_tuple):
|
77
|
+
if "tekton-trigger-access" in roles or "view" in roles:
|
78
|
+
if ru := report_users.get(u.org_username):
|
79
|
+
ru.add_app(pp_app)
|
80
|
+
else:
|
81
|
+
report_users[u.org_username] = AppSRETektonAccessReportUser(
|
82
|
+
name=u.name, org_username=u.org_username, apps={pp_app}
|
83
|
+
)
|
84
|
+
|
85
|
+
mr = UpdateAppSRETektonAccessReport(
|
86
|
+
users=[u.generate_model() for u in report_users.values()],
|
87
|
+
workbook_path=Path(workbook_path),
|
88
|
+
dry_run=dry_run,
|
89
|
+
)
|
90
|
+
with mr_client_gateway.init(
|
91
|
+
gitlab_project_id=gitlab_project_id, sqs_or_gitlab="gitlab"
|
92
|
+
) as mr_cli:
|
93
|
+
result = mr.submit(cli=mr_cli)
|
94
|
+
if result:
|
95
|
+
logging.info(["created_mr", result.web_url])
|
96
|
+
|
97
|
+
|
98
|
+
if __name__ == "__main__":
|
99
|
+
main() # pylint: disable=no-value-for-parameter
|
@@ -0,0 +1,90 @@
|
|
1
|
+
import logging
|
2
|
+
from pathlib import Path
|
3
|
+
|
4
|
+
import click
|
5
|
+
|
6
|
+
from reconcile import mr_client_gateway
|
7
|
+
from reconcile.cli import (
|
8
|
+
config_file,
|
9
|
+
dry_run,
|
10
|
+
gitlab_project_id,
|
11
|
+
log_level,
|
12
|
+
)
|
13
|
+
from reconcile.typed_queries.tekton_pipeline_providers import (
|
14
|
+
get_tekton_pipeline_providers,
|
15
|
+
)
|
16
|
+
from reconcile.utils.mr.labels import AUTO_MERGE
|
17
|
+
from reconcile.utils.mr.notificator import (
|
18
|
+
CreateAppInterfaceNotificator,
|
19
|
+
Notification,
|
20
|
+
)
|
21
|
+
from reconcile.utils.runtime.environment import init_env
|
22
|
+
|
23
|
+
EMAIL_BODY = """Hello app-interface service owner,
|
24
|
+
|
25
|
+
Access to all Tekton pipelines namespaces must be revalidated regularly. This ensures
|
26
|
+
that the access is still valid and is needed to safeguard against unauthorized access.
|
27
|
+
|
28
|
+
Please review, within one week, that all your app-interface roles that grant access to
|
29
|
+
those namespaces are assigned to the appropriate users. In order to help you identifying
|
30
|
+
those roles and users, please take a look into the app-interface documentation:
|
31
|
+
https://gitlab.cee.redhat.com/service/app-interface/-/blob/master/docs/app-sre/tekton/access-revalidation.md
|
32
|
+
|
33
|
+
If you have questions about this, please post a question in the #sd-app-sre Slack channel.
|
34
|
+
|
35
|
+
Thank you,
|
36
|
+
|
37
|
+
The AppSRE team
|
38
|
+
"""
|
39
|
+
|
40
|
+
|
41
|
+
@click.command()
|
42
|
+
@config_file
|
43
|
+
@dry_run
|
44
|
+
@log_level
|
45
|
+
@gitlab_project_id
|
46
|
+
@click.option(
|
47
|
+
"--email-dir",
|
48
|
+
help="app-interface dir to store new AppSRE Tekton revalidation emails",
|
49
|
+
default="data/app-interface/emails/app-sre-tekton",
|
50
|
+
)
|
51
|
+
def main(
|
52
|
+
configfile: str,
|
53
|
+
dry_run: bool,
|
54
|
+
log_level: str,
|
55
|
+
gitlab_project_id: int,
|
56
|
+
email_dir: str,
|
57
|
+
) -> None:
|
58
|
+
"""Revalidate Glitchtip access.
|
59
|
+
|
60
|
+
This script sends an email (via MR) to all app-interface service owners (apps)
|
61
|
+
that have a pipelines provider associated to the application. The email asks the
|
62
|
+
service owners to revalidate the access to the pipelines providers namespaces.
|
63
|
+
"""
|
64
|
+
init_env(log_level=log_level, config_file=configfile)
|
65
|
+
|
66
|
+
apps = {p.namespace.app.path for p in get_tekton_pipeline_providers()}
|
67
|
+
notification = Notification(
|
68
|
+
notification_type="Action Required",
|
69
|
+
short_description="AppSRE Tekton Access Revalidation",
|
70
|
+
description=EMAIL_BODY,
|
71
|
+
services=list(apps),
|
72
|
+
recipients=[],
|
73
|
+
)
|
74
|
+
mr = CreateAppInterfaceNotificator(
|
75
|
+
notification,
|
76
|
+
labels=[AUTO_MERGE],
|
77
|
+
email_base_path=Path(email_dir),
|
78
|
+
dry_run=dry_run,
|
79
|
+
)
|
80
|
+
|
81
|
+
with mr_client_gateway.init(
|
82
|
+
gitlab_project_id=gitlab_project_id, sqs_or_gitlab="gitlab"
|
83
|
+
) as mr_cli:
|
84
|
+
result = mr.submit(cli=mr_cli)
|
85
|
+
if result:
|
86
|
+
logging.info(["created_mr", result.web_url])
|
87
|
+
|
88
|
+
|
89
|
+
if __name__ == "__main__":
|
90
|
+
main() # pylint: disable=no-value-for-parameter
|
@@ -77,9 +77,7 @@ def main(
|
|
77
77
|
|
78
78
|
mr = UpdateGlitchtipAccessReport(
|
79
79
|
users=list(users.values()),
|
80
|
-
|
81
|
-
glitchtip_access_revalidation_workbook_path
|
82
|
-
),
|
80
|
+
workbook_path=Path(glitchtip_access_revalidation_workbook_path),
|
83
81
|
dry_run=dry_run,
|
84
82
|
)
|
85
83
|
with mr_client_gateway.init(
|