qontract-reconcile 0.10.2.dev299__py3-none-any.whl → 0.10.2.dev430__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/METADATA +13 -12
- {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/RECORD +399 -394
- reconcile/acs_rbac.py +2 -2
- reconcile/aus/advanced_upgrade_service.py +18 -12
- reconcile/aus/base.py +134 -32
- reconcile/aus/cluster_version_data.py +15 -5
- reconcile/aus/models.py +3 -1
- reconcile/aus/ocm_addons_upgrade_scheduler_org.py +1 -0
- reconcile/aus/ocm_upgrade_scheduler.py +8 -1
- reconcile/aus/ocm_upgrade_scheduler_org.py +20 -5
- reconcile/aus/version_gates/sts_version_gate_handler.py +54 -1
- reconcile/automated_actions/config/integration.py +16 -4
- reconcile/aws_account_manager/integration.py +8 -8
- reconcile/aws_account_manager/reconciler.py +3 -3
- reconcile/aws_ami_cleanup/integration.py +8 -12
- reconcile/aws_ami_share.py +69 -62
- reconcile/aws_cloudwatch_log_retention/integration.py +155 -126
- reconcile/aws_ecr_image_pull_secrets.py +4 -4
- reconcile/aws_iam_keys.py +1 -0
- reconcile/aws_saml_idp/integration.py +12 -4
- reconcile/aws_saml_roles/integration.py +32 -25
- reconcile/aws_version_sync/integration.py +125 -84
- reconcile/change_owners/bundle.py +3 -3
- reconcile/change_owners/change_log_tracking.py +3 -2
- reconcile/change_owners/change_owners.py +1 -1
- reconcile/change_owners/diff.py +2 -4
- reconcile/checkpoint.py +12 -4
- reconcile/cli.py +111 -18
- reconcile/cluster_deployment_mapper.py +2 -3
- reconcile/dashdotdb_dora.py +5 -12
- reconcile/dashdotdb_slo.py +1 -1
- reconcile/database_access_manager.py +125 -121
- reconcile/deadmanssnitch.py +1 -5
- reconcile/dynatrace_token_provider/integration.py +1 -1
- reconcile/endpoints_discovery/integration.py +4 -1
- reconcile/endpoints_discovery/merge_request.py +1 -1
- reconcile/endpoints_discovery/merge_request_manager.py +9 -11
- reconcile/external_resources/factories.py +5 -12
- reconcile/external_resources/integration.py +1 -1
- reconcile/external_resources/manager.py +8 -5
- reconcile/external_resources/meta.py +0 -1
- reconcile/external_resources/metrics.py +1 -1
- reconcile/external_resources/model.py +20 -20
- reconcile/external_resources/reconciler.py +7 -4
- reconcile/external_resources/secrets_sync.py +8 -11
- reconcile/external_resources/state.py +26 -16
- reconcile/fleet_labeler/integration.py +1 -1
- reconcile/gabi_authorized_users.py +8 -5
- reconcile/gcp_image_mirror.py +2 -2
- reconcile/github_org.py +1 -1
- reconcile/github_owners.py +4 -0
- reconcile/gitlab_housekeeping.py +13 -15
- reconcile/gitlab_members.py +6 -12
- reconcile/gitlab_mr_sqs_consumer.py +2 -2
- reconcile/gitlab_owners.py +15 -11
- reconcile/gitlab_permissions.py +8 -12
- reconcile/glitchtip_project_alerts/integration.py +3 -1
- reconcile/gql_definitions/acs/acs_instances.py +10 -10
- reconcile/gql_definitions/acs/acs_policies.py +5 -5
- reconcile/gql_definitions/acs/acs_rbac.py +6 -6
- reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +32 -32
- reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +26 -26
- reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +6 -7
- reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +5 -5
- reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +5 -5
- reconcile/gql_definitions/automated_actions/instance.py +51 -12
- reconcile/gql_definitions/aws_account_manager/aws_accounts.py +11 -11
- reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +20 -10
- reconcile/gql_definitions/aws_cloudwatch_log_retention/aws_accounts.py +28 -68
- reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +20 -10
- reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +20 -10
- reconcile/gql_definitions/aws_saml_roles/roles.py +5 -5
- reconcile/gql_definitions/aws_version_sync/clusters.py +10 -10
- reconcile/gql_definitions/aws_version_sync/namespaces.py +5 -5
- reconcile/gql_definitions/change_owners/queries/change_types.py +5 -5
- reconcile/gql_definitions/change_owners/queries/self_service_roles.py +9 -9
- reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +18 -18
- reconcile/gql_definitions/common/alerting_services_settings.py +9 -9
- reconcile/gql_definitions/common/app_code_component_repos.py +5 -5
- reconcile/gql_definitions/common/app_interface_custom_messages.py +5 -5
- reconcile/gql_definitions/common/app_interface_dms_settings.py +5 -5
- reconcile/gql_definitions/common/app_interface_repo_settings.py +5 -5
- reconcile/gql_definitions/common/app_interface_roles.py +120 -0
- reconcile/gql_definitions/common/app_interface_state_settings.py +10 -10
- reconcile/gql_definitions/common/app_interface_vault_settings.py +5 -5
- reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +5 -5
- reconcile/gql_definitions/common/apps.py +5 -5
- reconcile/gql_definitions/common/aws_vpc_requests.py +23 -10
- reconcile/gql_definitions/common/aws_vpcs.py +11 -11
- reconcile/gql_definitions/common/clusters.py +37 -35
- reconcile/gql_definitions/common/clusters_minimal.py +14 -14
- reconcile/gql_definitions/common/clusters_with_dms.py +6 -6
- reconcile/gql_definitions/common/clusters_with_peering.py +29 -30
- reconcile/gql_definitions/common/github_orgs.py +10 -10
- reconcile/gql_definitions/common/jira_settings.py +10 -10
- reconcile/gql_definitions/common/jiralert_settings.py +5 -5
- reconcile/gql_definitions/common/ldap_settings.py +5 -5
- reconcile/gql_definitions/common/namespaces.py +42 -44
- reconcile/gql_definitions/common/namespaces_minimal.py +15 -13
- reconcile/gql_definitions/common/ocm_env_telemeter.py +12 -12
- reconcile/gql_definitions/common/ocm_environments.py +19 -19
- reconcile/gql_definitions/common/pagerduty_instances.py +9 -9
- reconcile/gql_definitions/common/pgp_reencryption_settings.py +6 -6
- reconcile/gql_definitions/common/pipeline_providers.py +29 -29
- reconcile/gql_definitions/common/quay_instances.py +5 -5
- reconcile/gql_definitions/common/quay_orgs.py +5 -5
- reconcile/gql_definitions/common/reserved_networks.py +5 -5
- reconcile/gql_definitions/common/rhcs_provider_settings.py +5 -5
- reconcile/gql_definitions/common/saas_files.py +44 -44
- reconcile/gql_definitions/common/saas_target_namespaces.py +10 -10
- reconcile/gql_definitions/common/saasherder_settings.py +5 -5
- reconcile/gql_definitions/common/slack_workspaces.py +5 -5
- reconcile/gql_definitions/common/smtp_client_settings.py +19 -19
- reconcile/gql_definitions/common/state_aws_account.py +7 -8
- reconcile/gql_definitions/common/users.py +5 -5
- reconcile/gql_definitions/common/users_with_paths.py +5 -5
- reconcile/gql_definitions/cost_report/app_names.py +5 -5
- reconcile/gql_definitions/cost_report/cost_namespaces.py +5 -5
- reconcile/gql_definitions/cost_report/settings.py +9 -9
- reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +43 -43
- reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +10 -10
- reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +5 -5
- reconcile/gql_definitions/email_sender/apps.py +5 -5
- reconcile/gql_definitions/email_sender/emails.py +8 -8
- reconcile/gql_definitions/email_sender/users.py +6 -6
- reconcile/gql_definitions/endpoints_discovery/apps.py +10 -10
- reconcile/gql_definitions/external_resources/aws_accounts.py +9 -9
- reconcile/gql_definitions/external_resources/external_resources_modules.py +23 -23
- reconcile/gql_definitions/external_resources/external_resources_namespaces.py +492 -410
- reconcile/gql_definitions/external_resources/external_resources_settings.py +28 -26
- reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py +5 -5
- reconcile/gql_definitions/fleet_labeler/fleet_labels.py +40 -40
- reconcile/gql_definitions/fragments/aus_organization.py +5 -5
- reconcile/gql_definitions/fragments/aws_account_common.py +7 -5
- reconcile/gql_definitions/fragments/aws_account_managed.py +5 -5
- reconcile/gql_definitions/fragments/aws_account_sso.py +5 -5
- reconcile/gql_definitions/fragments/aws_infra_management_account.py +5 -5
- reconcile/gql_definitions/fragments/{aws_vpc_request_subnet.py → aws_organization.py} +12 -8
- reconcile/gql_definitions/fragments/aws_vpc.py +5 -5
- reconcile/gql_definitions/fragments/aws_vpc_request.py +10 -5
- reconcile/gql_definitions/fragments/container_image_mirror.py +5 -5
- reconcile/gql_definitions/fragments/deploy_resources.py +5 -5
- reconcile/gql_definitions/fragments/disable.py +5 -5
- reconcile/gql_definitions/fragments/email_service.py +5 -5
- reconcile/gql_definitions/fragments/email_user.py +5 -5
- reconcile/gql_definitions/fragments/jumphost_common_fields.py +5 -5
- reconcile/gql_definitions/fragments/membership_source.py +5 -5
- reconcile/gql_definitions/fragments/minimal_ocm_organization.py +5 -5
- reconcile/gql_definitions/fragments/oc_connection_cluster.py +5 -5
- reconcile/gql_definitions/fragments/ocm_environment.py +5 -5
- reconcile/gql_definitions/fragments/pipeline_provider_retention.py +5 -5
- reconcile/gql_definitions/fragments/prometheus_instance.py +5 -5
- reconcile/gql_definitions/fragments/resource_limits_requirements.py +5 -5
- reconcile/gql_definitions/fragments/resource_requests_requirements.py +5 -5
- reconcile/gql_definitions/fragments/resource_values.py +5 -5
- reconcile/gql_definitions/fragments/saas_slo_document.py +5 -5
- reconcile/gql_definitions/fragments/saas_target_namespace.py +5 -5
- reconcile/gql_definitions/fragments/serviceaccount_token.py +5 -5
- reconcile/gql_definitions/fragments/terraform_state.py +5 -5
- reconcile/gql_definitions/fragments/upgrade_policy.py +5 -5
- reconcile/gql_definitions/fragments/user.py +5 -5
- reconcile/gql_definitions/fragments/vault_secret.py +5 -5
- reconcile/gql_definitions/gcp/gcp_docker_repos.py +9 -9
- reconcile/gql_definitions/gcp/gcp_projects.py +9 -9
- reconcile/gql_definitions/gitlab_members/gitlab_instances.py +9 -9
- reconcile/gql_definitions/gitlab_members/permissions.py +9 -9
- reconcile/gql_definitions/glitchtip/glitchtip_instance.py +9 -9
- reconcile/gql_definitions/glitchtip/glitchtip_project.py +11 -11
- reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +9 -9
- reconcile/gql_definitions/integrations/integrations.py +48 -51
- reconcile/gql_definitions/introspection.json +3050 -1393
- reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +11 -11
- reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +10 -10
- reconcile/gql_definitions/jira/jira_servers.py +5 -5
- reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +14 -10
- reconcile/gql_definitions/jumphosts/jumphosts.py +13 -13
- reconcile/gql_definitions/ldap_groups/roles.py +5 -5
- reconcile/gql_definitions/ldap_groups/settings.py +9 -9
- reconcile/gql_definitions/maintenance/maintenances.py +5 -5
- reconcile/gql_definitions/membershipsources/roles.py +5 -5
- reconcile/gql_definitions/ocm_labels/clusters.py +18 -19
- reconcile/gql_definitions/ocm_labels/organizations.py +5 -5
- reconcile/gql_definitions/openshift_cluster_bots/clusters.py +22 -22
- reconcile/gql_definitions/openshift_groups/managed_groups.py +5 -5
- reconcile/gql_definitions/openshift_groups/managed_roles.py +6 -6
- reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +10 -10
- reconcile/gql_definitions/quay_membership/quay_membership.py +6 -6
- reconcile/gql_definitions/rhcs/certs.py +33 -87
- reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py +43 -0
- reconcile/gql_definitions/rhidp/organizations.py +18 -18
- reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +5 -5
- reconcile/gql_definitions/service_dependencies/service_dependencies.py +8 -8
- reconcile/gql_definitions/sharding/aws_accounts.py +10 -10
- reconcile/gql_definitions/sharding/ocm_organization.py +8 -8
- reconcile/gql_definitions/skupper_network/site_controller_template.py +5 -5
- reconcile/gql_definitions/skupper_network/skupper_networks.py +10 -10
- reconcile/gql_definitions/slack_usergroups/clusters.py +5 -5
- reconcile/gql_definitions/slack_usergroups/permissions.py +9 -9
- reconcile/gql_definitions/slack_usergroups/users.py +5 -5
- reconcile/gql_definitions/slo_documents/slo_documents.py +5 -5
- reconcile/gql_definitions/status_board/status_board.py +6 -7
- reconcile/gql_definitions/statuspage/statuspages.py +9 -9
- reconcile/gql_definitions/templating/template_collection.py +5 -5
- reconcile/gql_definitions/templating/templates.py +5 -5
- reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +6 -6
- reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +11 -11
- reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +11 -11
- reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +20 -25
- reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +6 -6
- reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +12 -12
- reconcile/gql_definitions/terraform_init/aws_accounts.py +23 -9
- reconcile/gql_definitions/terraform_repo/terraform_repo.py +9 -9
- reconcile/gql_definitions/terraform_resources/database_access_manager.py +5 -5
- reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +448 -402
- reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +23 -17
- reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +9 -9
- reconcile/gql_definitions/vault_instances/vault_instances.py +61 -61
- reconcile/gql_definitions/vault_policies/vault_policies.py +11 -11
- reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +8 -8
- reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +5 -5
- reconcile/integrations_manager.py +3 -3
- reconcile/jenkins_job_builder.py +1 -1
- reconcile/jenkins_worker_fleets.py +80 -11
- reconcile/jira_permissions_validator.py +237 -122
- reconcile/ldap_groups/integration.py +1 -1
- reconcile/ocm/types.py +35 -56
- reconcile/ocm_aws_infrastructure_access.py +1 -1
- reconcile/ocm_clusters.py +4 -4
- reconcile/ocm_labels/integration.py +3 -2
- reconcile/ocm_machine_pools.py +33 -27
- reconcile/openshift_base.py +122 -10
- reconcile/openshift_cluster_bots.py +5 -5
- reconcile/openshift_groups.py +5 -0
- reconcile/openshift_limitranges.py +1 -1
- reconcile/openshift_namespace_labels.py +1 -1
- reconcile/openshift_namespaces.py +97 -101
- reconcile/openshift_resources_base.py +10 -5
- reconcile/openshift_rhcs_certs.py +77 -40
- reconcile/openshift_rolebindings.py +230 -130
- reconcile/openshift_saas_deploy.py +6 -7
- reconcile/openshift_saas_deploy_change_tester.py +9 -7
- reconcile/openshift_saas_deploy_trigger_cleaner.py +3 -5
- reconcile/openshift_serviceaccount_tokens.py +8 -7
- reconcile/openshift_tekton_resources.py +1 -1
- reconcile/openshift_upgrade_watcher.py +4 -4
- reconcile/openshift_users.py +5 -3
- reconcile/oum/labelset.py +5 -3
- reconcile/oum/models.py +1 -4
- reconcile/oum/providers.py +1 -1
- reconcile/prometheus_rules_tester/integration.py +4 -4
- reconcile/quay_mirror.py +1 -1
- reconcile/queries.py +131 -0
- reconcile/requests_sender.py +8 -3
- reconcile/resource_scraper.py +1 -5
- reconcile/rhidp/common.py +5 -5
- reconcile/rhidp/sso_client/base.py +19 -10
- reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py +1 -1
- reconcile/saas_auto_promotions_manager/subscriber.py +4 -3
- reconcile/sendgrid_teammates.py +20 -9
- reconcile/skupper_network/integration.py +2 -2
- reconcile/slack_usergroups.py +35 -14
- reconcile/sql_query.py +1 -0
- reconcile/status.py +2 -2
- reconcile/status_board.py +6 -6
- reconcile/statuspage/atlassian.py +7 -7
- reconcile/statuspage/integrations/maintenances.py +4 -3
- reconcile/statuspage/page.py +4 -9
- reconcile/statuspage/status.py +5 -8
- reconcile/templates/rosa-classic-cluster-creation.sh.j2 +4 -0
- reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +3 -0
- reconcile/templating/lib/merge_request_manager.py +2 -2
- reconcile/templating/lib/rendering.py +3 -3
- reconcile/templating/renderer.py +12 -13
- reconcile/terraform_aws_route53.py +18 -8
- reconcile/terraform_cloudflare_dns.py +3 -3
- reconcile/terraform_cloudflare_resources.py +12 -13
- reconcile/terraform_cloudflare_users.py +3 -2
- reconcile/terraform_init/integration.py +187 -23
- reconcile/terraform_repo.py +16 -12
- reconcile/terraform_resources.py +18 -10
- reconcile/terraform_tgw_attachments.py +27 -19
- reconcile/terraform_users.py +29 -21
- reconcile/terraform_vpc_peerings.py +16 -4
- reconcile/terraform_vpc_resources/integration.py +32 -2
- reconcile/typed_queries/app_interface_roles.py +10 -0
- reconcile/typed_queries/aws_account_tags.py +41 -0
- reconcile/typed_queries/cost_report/app_names.py +1 -1
- reconcile/typed_queries/cost_report/cost_namespaces.py +2 -2
- reconcile/typed_queries/saas_files.py +13 -13
- reconcile/typed_queries/status_board.py +2 -2
- reconcile/unleash_feature_toggles/integration.py +4 -2
- reconcile/utils/acs/base.py +6 -3
- reconcile/utils/acs/policies.py +2 -2
- reconcile/utils/aggregated_list.py +4 -3
- reconcile/utils/aws_api.py +51 -20
- reconcile/utils/aws_api_typed/api.py +38 -9
- reconcile/utils/aws_api_typed/cloudformation.py +149 -0
- reconcile/utils/aws_api_typed/logs.py +73 -0
- reconcile/utils/aws_api_typed/organization.py +4 -2
- reconcile/utils/binary.py +7 -12
- reconcile/utils/datetime_util.py +67 -0
- reconcile/utils/deadmanssnitch_api.py +1 -1
- reconcile/utils/differ.py +2 -3
- reconcile/utils/early_exit_cache.py +11 -12
- reconcile/utils/expiration.py +7 -3
- reconcile/utils/external_resource_spec.py +24 -1
- reconcile/utils/filtering.py +1 -1
- reconcile/utils/gitlab_api.py +7 -5
- reconcile/utils/glitchtip/client.py +6 -2
- reconcile/utils/glitchtip/models.py +25 -28
- reconcile/utils/gpg.py +5 -3
- reconcile/utils/gql.py +4 -7
- reconcile/utils/helm.py +2 -1
- reconcile/utils/helpers.py +1 -1
- reconcile/utils/imap_client.py +1 -1
- reconcile/utils/instrumented_wrappers.py +1 -1
- reconcile/utils/internal_groups/client.py +2 -2
- reconcile/utils/internal_groups/models.py +8 -17
- reconcile/utils/jenkins_api.py +24 -1
- reconcile/utils/jinja2/utils.py +6 -8
- reconcile/utils/jira_client.py +82 -63
- reconcile/utils/jjb_client.py +59 -43
- reconcile/utils/jobcontroller/controller.py +2 -2
- reconcile/utils/jobcontroller/models.py +17 -1
- reconcile/utils/json.py +74 -0
- reconcile/utils/ldap_client.py +4 -3
- reconcile/utils/lean_terraform_client.py +3 -1
- reconcile/utils/membershipsources/app_interface_resolver.py +4 -2
- reconcile/utils/membershipsources/models.py +16 -23
- reconcile/utils/membershipsources/resolver.py +4 -2
- reconcile/utils/merge_request_manager/merge_request_manager.py +4 -4
- reconcile/utils/merge_request_manager/parser.py +6 -6
- reconcile/utils/metrics.py +5 -5
- reconcile/utils/models.py +304 -82
- reconcile/utils/mr/__init__.py +3 -1
- reconcile/utils/mr/app_interface_reporter.py +6 -3
- reconcile/utils/mr/aws_access.py +1 -1
- reconcile/utils/mr/base.py +7 -13
- reconcile/utils/mr/clusters_updates.py +4 -2
- reconcile/utils/mr/notificator.py +3 -3
- reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py +4 -1
- reconcile/utils/mr/promote_qontract.py +28 -12
- reconcile/utils/mr/update_access_report_base.py +3 -4
- reconcile/utils/mr/user_maintenance.py +7 -6
- reconcile/utils/oc.py +445 -336
- reconcile/utils/oc_filters.py +3 -3
- reconcile/utils/ocm/addons.py +0 -1
- reconcile/utils/ocm/base.py +27 -20
- reconcile/utils/ocm/cluster_groups.py +1 -1
- reconcile/utils/ocm/identity_providers.py +2 -2
- reconcile/utils/ocm/labels.py +1 -1
- reconcile/utils/ocm/ocm.py +81 -71
- reconcile/utils/ocm/products.py +9 -3
- reconcile/utils/ocm/search_filters.py +3 -6
- reconcile/utils/ocm/service_log.py +4 -6
- reconcile/utils/ocm/sre_capability_labels.py +20 -13
- reconcile/utils/ocm_base_client.py +4 -4
- reconcile/utils/openshift_resource.py +83 -52
- reconcile/utils/openssl.py +2 -2
- reconcile/utils/output.py +3 -2
- reconcile/utils/pagerduty_api.py +10 -7
- reconcile/utils/promotion_state.py +6 -11
- reconcile/utils/raw_github_api.py +11 -8
- reconcile/utils/repo_owners.py +21 -29
- reconcile/utils/rhcsv2_certs.py +138 -35
- reconcile/utils/rosa/session.py +16 -0
- reconcile/utils/runtime/integration.py +2 -3
- reconcile/utils/runtime/meta.py +2 -1
- reconcile/utils/runtime/runner.py +2 -2
- reconcile/utils/saasherder/interfaces.py +13 -20
- reconcile/utils/saasherder/models.py +25 -21
- reconcile/utils/saasherder/saasherder.py +60 -32
- reconcile/utils/secret_reader.py +6 -6
- reconcile/utils/sharding.py +1 -1
- reconcile/utils/slack_api.py +26 -4
- reconcile/utils/sloth.py +224 -0
- reconcile/utils/sqs_gateway.py +16 -11
- reconcile/utils/state.py +2 -1
- reconcile/utils/structs.py +4 -4
- reconcile/utils/terraform_client.py +32 -29
- reconcile/utils/terrascript_aws_client.py +658 -480
- reconcile/utils/three_way_diff_strategy.py +1 -1
- reconcile/utils/throughput.py +1 -1
- reconcile/utils/unleash/server.py +2 -8
- reconcile/utils/vault.py +44 -41
- reconcile/utils/vcs.py +8 -8
- reconcile/vault_replication.py +119 -58
- reconcile/vpc_peerings_validator.py +2 -2
- tools/app_interface_reporter.py +4 -4
- tools/cli_commands/cost_report/cost_management_api.py +3 -3
- tools/cli_commands/cost_report/view.py +7 -6
- tools/cli_commands/erv2.py +1 -1
- tools/cli_commands/gpg_encrypt.py +4 -1
- tools/cli_commands/systems_and_tools.py +5 -1
- tools/qontract_cli.py +36 -21
- tools/sre_checkpoints/util.py +5 -3
- tools/template_validation.py +3 -1
- reconcile/gql_definitions/ocm_oidc_idp/__init__.py +0 -0
- reconcile/gql_definitions/ocm_subscription_labels/__init__.py +0 -0
- reconcile/jenkins/__init__.py +0 -0
- reconcile/jenkins/types.py +0 -77
- {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/WHEEL +0 -0
- {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/entry_points.txt +0 -0
reconcile/gitlab_permissions.py
CHANGED
|
@@ -94,14 +94,6 @@ class GroupPermissionHandler:
|
|
|
94
94
|
desired_state: dict[str, GroupSpec],
|
|
95
95
|
current_state: dict[str, GroupSpec],
|
|
96
96
|
) -> None:
|
|
97
|
-
# gather list of app-interface managed repos
|
|
98
|
-
instance = queries.get_gitlab_instance()
|
|
99
|
-
managed_repos = {
|
|
100
|
-
f"{instance['url']}/{project_request['group']}/{r}"
|
|
101
|
-
for project_request in instance.get("projectRequests", [])
|
|
102
|
-
for r in project_request.get("projects", [])
|
|
103
|
-
}
|
|
104
|
-
|
|
105
97
|
# get the diff data
|
|
106
98
|
diff_data = diff_mappings(
|
|
107
99
|
current=current_state,
|
|
@@ -112,11 +104,10 @@ class GroupPermissionHandler:
|
|
|
112
104
|
errors: list[Exception] = []
|
|
113
105
|
for repo in diff_data.add:
|
|
114
106
|
project = self.gl.get_project(repo)
|
|
115
|
-
if not project
|
|
116
|
-
logging.info(
|
|
117
|
-
f"New app-interface managed repository {repo} hasn't been created yet - skipping"
|
|
118
|
-
)
|
|
107
|
+
if not project:
|
|
108
|
+
logging.info(f"{repo} hasn't been created yet - skipping")
|
|
119
109
|
continue
|
|
110
|
+
|
|
120
111
|
if not self.can_share_project(project):
|
|
121
112
|
errors.append(
|
|
122
113
|
GroupAccessLevelError(
|
|
@@ -136,8 +127,13 @@ class GroupPermissionHandler:
|
|
|
136
127
|
group_id=self.group.id,
|
|
137
128
|
access_level=self.access_level,
|
|
138
129
|
)
|
|
130
|
+
|
|
139
131
|
for repo in diff_data.change:
|
|
140
132
|
project = self.gl.get_project(repo)
|
|
133
|
+
if not project:
|
|
134
|
+
logging.info(f"{repo} hasn't been created yet - skipping")
|
|
135
|
+
continue
|
|
136
|
+
|
|
141
137
|
if not self.can_share_project(project):
|
|
142
138
|
errors.append(
|
|
143
139
|
GroupAccessLevelError(
|
|
@@ -69,7 +69,9 @@ class GlitchtipProjectAlertsIntegration(
|
|
|
69
69
|
return QONTRACT_INTEGRATION
|
|
70
70
|
|
|
71
71
|
def get_early_exit_desired_state(self) -> dict[str, Any] | None:
|
|
72
|
-
return {
|
|
72
|
+
return {
|
|
73
|
+
"projects": [c.model_dump() for c in self.get_projects(gql.get_api().query)]
|
|
74
|
+
}
|
|
73
75
|
|
|
74
76
|
def get_projects(self, query_func: Callable) -> list[GlitchtipProjectV1]:
|
|
75
77
|
return glitchtip_project_query(query_func=query_func).glitchtip_projects or []
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -22,17 +22,17 @@ from reconcile.gql_definitions.fragments.vault_secret import VaultSecret
|
|
|
22
22
|
|
|
23
23
|
DEFINITION = """
|
|
24
24
|
fragment VaultSecret on VaultSecret_v1 {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
path
|
|
26
|
+
field
|
|
27
|
+
version
|
|
28
|
+
format
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
query AcsInstance {
|
|
32
32
|
instances: acs_instance_v1 {
|
|
33
33
|
url
|
|
34
34
|
credentials {
|
|
35
|
-
...
|
|
35
|
+
...VaultSecret
|
|
36
36
|
}
|
|
37
37
|
authProvider {
|
|
38
38
|
name
|
|
@@ -44,9 +44,9 @@ query AcsInstance {
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
class ConfiguredBaseModel(BaseModel):
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
model_config = ConfigDict(
|
|
48
|
+
extra='forbid'
|
|
49
|
+
)
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
class AcsInstanceAuthProviderV1(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -68,9 +68,9 @@ query AcsPolicy {
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
class ConfiguredBaseModel(BaseModel):
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
model_config = ConfigDict(
|
|
72
|
+
extra='forbid'
|
|
73
|
+
)
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
class AcsPolicyScopeV1(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,14 +12,14 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
DEFINITION = """
|
|
22
|
-
query AcsRbac
|
|
22
|
+
query AcsRbac {
|
|
23
23
|
acs_rbacs: users_v1 {
|
|
24
24
|
org_username
|
|
25
25
|
roles {
|
|
@@ -48,9 +48,9 @@ query AcsRbac {
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
class ConfiguredBaseModel(BaseModel):
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
model_config = ConfigDict(
|
|
52
|
+
extra='forbid'
|
|
53
|
+
)
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
class OidcPermissionV1(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -26,16 +26,16 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
26
26
|
name
|
|
27
27
|
labels
|
|
28
28
|
environment {
|
|
29
|
-
...
|
|
29
|
+
...OCMEnvironment
|
|
30
30
|
}
|
|
31
31
|
orgId
|
|
32
32
|
accessTokenClientId
|
|
33
33
|
accessTokenUrl
|
|
34
34
|
accessTokenClientSecret {
|
|
35
|
-
...
|
|
35
|
+
...VaultSecret
|
|
36
36
|
}
|
|
37
37
|
disable {
|
|
38
|
-
...
|
|
38
|
+
...DisableAutomations
|
|
39
39
|
}
|
|
40
40
|
blockedVersions
|
|
41
41
|
addonManagedUpgrades
|
|
@@ -46,7 +46,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
46
46
|
instance {
|
|
47
47
|
name
|
|
48
48
|
token {
|
|
49
|
-
...
|
|
49
|
+
...VaultSecret
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
name
|
|
@@ -58,11 +58,11 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
58
58
|
name
|
|
59
59
|
}
|
|
60
60
|
publishVersionData {
|
|
61
|
-
...
|
|
61
|
+
...MinimalOCMOrganization
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
publishVersionData {
|
|
65
|
-
...
|
|
65
|
+
...MinimalOCMOrganization
|
|
66
66
|
}
|
|
67
67
|
sectors {
|
|
68
68
|
name
|
|
@@ -82,7 +82,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
82
82
|
id
|
|
83
83
|
}
|
|
84
84
|
upgradePolicy {
|
|
85
|
-
...
|
|
85
|
+
...ClusterUpgradePolicyV1
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
ausClusterHealthChecks {
|
|
@@ -113,41 +113,41 @@ fragment MinimalOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
fragment OCMEnvironment on OpenShiftClusterManagerEnvironment_v1 {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
116
|
+
name
|
|
117
|
+
description
|
|
118
|
+
labels
|
|
119
|
+
url
|
|
120
|
+
accessTokenClientId
|
|
121
|
+
accessTokenUrl
|
|
122
|
+
accessTokenClientSecret {
|
|
123
|
+
...VaultSecret
|
|
124
|
+
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
fragment VaultSecret on VaultSecret_v1 {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
path
|
|
129
|
+
field
|
|
130
|
+
version
|
|
131
|
+
format
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
query AUSClusters($name: String) {
|
|
135
135
|
clusters: clusters_v1(name: $name) {
|
|
136
136
|
name
|
|
137
137
|
ocm {
|
|
138
|
-
|
|
138
|
+
...AUSOCMOrganization
|
|
139
139
|
}
|
|
140
140
|
upgradePolicy {
|
|
141
|
-
|
|
141
|
+
...ClusterUpgradePolicyV1
|
|
142
142
|
}
|
|
143
143
|
spec {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
product
|
|
145
|
+
id
|
|
146
|
+
external_id
|
|
147
|
+
version
|
|
148
148
|
}
|
|
149
149
|
disable {
|
|
150
|
-
|
|
150
|
+
integrations
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
@@ -155,9 +155,9 @@ query AUSClusters($name: String) {
|
|
|
155
155
|
|
|
156
156
|
|
|
157
157
|
class ConfiguredBaseModel(BaseModel):
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
158
|
+
model_config = ConfigDict(
|
|
159
|
+
extra='forbid'
|
|
160
|
+
)
|
|
161
161
|
|
|
162
162
|
|
|
163
163
|
class ClusterSpecV1(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -25,16 +25,16 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
25
25
|
name
|
|
26
26
|
labels
|
|
27
27
|
environment {
|
|
28
|
-
...
|
|
28
|
+
...OCMEnvironment
|
|
29
29
|
}
|
|
30
30
|
orgId
|
|
31
31
|
accessTokenClientId
|
|
32
32
|
accessTokenUrl
|
|
33
33
|
accessTokenClientSecret {
|
|
34
|
-
...
|
|
34
|
+
...VaultSecret
|
|
35
35
|
}
|
|
36
36
|
disable {
|
|
37
|
-
...
|
|
37
|
+
...DisableAutomations
|
|
38
38
|
}
|
|
39
39
|
blockedVersions
|
|
40
40
|
addonManagedUpgrades
|
|
@@ -45,7 +45,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
45
45
|
instance {
|
|
46
46
|
name
|
|
47
47
|
token {
|
|
48
|
-
...
|
|
48
|
+
...VaultSecret
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
name
|
|
@@ -57,11 +57,11 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
57
57
|
name
|
|
58
58
|
}
|
|
59
59
|
publishVersionData {
|
|
60
|
-
...
|
|
60
|
+
...MinimalOCMOrganization
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
publishVersionData {
|
|
64
|
-
...
|
|
64
|
+
...MinimalOCMOrganization
|
|
65
65
|
}
|
|
66
66
|
sectors {
|
|
67
67
|
name
|
|
@@ -81,7 +81,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
81
81
|
id
|
|
82
82
|
}
|
|
83
83
|
upgradePolicy {
|
|
84
|
-
...
|
|
84
|
+
...ClusterUpgradePolicyV1
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
ausClusterHealthChecks {
|
|
@@ -112,36 +112,36 @@ fragment MinimalOCMOrganization on OpenShiftClusterManager_v1 {
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
fragment OCMEnvironment on OpenShiftClusterManagerEnvironment_v1 {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
name
|
|
116
|
+
description
|
|
117
|
+
labels
|
|
118
|
+
url
|
|
119
|
+
accessTokenClientId
|
|
120
|
+
accessTokenUrl
|
|
121
|
+
accessTokenClientSecret {
|
|
122
|
+
...VaultSecret
|
|
123
|
+
}
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
fragment VaultSecret on VaultSecret_v1 {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
path
|
|
128
|
+
field
|
|
129
|
+
version
|
|
130
|
+
format
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
query AUSOrganizations($name: String) {
|
|
134
134
|
organizations: ocm_instances_v1(name: $name) {
|
|
135
|
-
...
|
|
135
|
+
...AUSOCMOrganization
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
"""
|
|
139
139
|
|
|
140
140
|
|
|
141
141
|
class ConfiguredBaseModel(BaseModel):
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
model_config = ConfigDict(
|
|
143
|
+
extra='forbid'
|
|
144
|
+
)
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
class AUSOrganizationsQueryData(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -20,8 +20,7 @@ from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
|
20
20
|
|
|
21
21
|
DEFINITION = """
|
|
22
22
|
query OnboardingStatus {
|
|
23
|
-
apps: apps_v1
|
|
24
|
-
{
|
|
23
|
+
apps: apps_v1 {
|
|
25
24
|
onboardingStatus
|
|
26
25
|
}
|
|
27
26
|
}
|
|
@@ -29,9 +28,9 @@ query OnboardingStatus {
|
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
class ConfiguredBaseModel(BaseModel):
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
model_config = ConfigDict(
|
|
32
|
+
extra='forbid'
|
|
33
|
+
)
|
|
35
34
|
|
|
36
35
|
|
|
37
36
|
class AppV1(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -38,9 +38,9 @@ query AppSRETektonAccessRevalidationRoles {
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
class ConfiguredBaseModel(BaseModel):
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
model_config = ConfigDict(
|
|
42
|
+
extra='forbid'
|
|
43
|
+
)
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
class NamespaceV1(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -40,9 +40,9 @@ query AppSRETektonAccessRevalidationUsers {
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class ConfiguredBaseModel(BaseModel):
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
model_config = ConfigDict(
|
|
44
|
+
extra='forbid'
|
|
45
|
+
)
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
class ClusterV1(ConfiguredBaseModel):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Generated by qenerate plugin=
|
|
2
|
+
Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
|
|
3
3
|
"""
|
|
4
4
|
from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
|
|
5
5
|
from datetime import datetime # noqa: F401 # pylint: disable=W0611
|
|
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
|
|
|
12
12
|
|
|
13
13
|
from pydantic import ( # noqa: F401 # pylint: disable=W0611
|
|
14
14
|
BaseModel,
|
|
15
|
-
|
|
15
|
+
ConfigDict,
|
|
16
16
|
Field,
|
|
17
17
|
Json,
|
|
18
18
|
)
|
|
@@ -28,7 +28,7 @@ fragment CommonJumphostFields on ClusterJumpHost_v1 {
|
|
|
28
28
|
port
|
|
29
29
|
remotePort
|
|
30
30
|
identity {
|
|
31
|
-
...
|
|
31
|
+
...VaultSecret
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -52,10 +52,10 @@ fragment OcConnectionCluster on Cluster_v1 {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
fragment VaultSecret on VaultSecret_v1 {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
path
|
|
56
|
+
field
|
|
57
|
+
version
|
|
58
|
+
format
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
query AutomatedActionsInstances {
|
|
@@ -132,6 +132,21 @@ query AutomatedActionsInstances {
|
|
|
132
132
|
identifier
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
+
... on AutomatedActionOpenshiftTriggerCronjob_v1 {
|
|
136
|
+
openshift_trigger_cronjob_arguments: arguments {
|
|
137
|
+
namespace {
|
|
138
|
+
name
|
|
139
|
+
delete
|
|
140
|
+
cluster {
|
|
141
|
+
name
|
|
142
|
+
disable {
|
|
143
|
+
integrations
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
cronjob
|
|
148
|
+
}
|
|
149
|
+
}
|
|
135
150
|
... on AutomatedActionOpenshiftWorkloadDelete_v1 {
|
|
136
151
|
openshift_workload_delete_arguments: arguments {
|
|
137
152
|
namespace {
|
|
@@ -172,9 +187,9 @@ query AutomatedActionsInstances {
|
|
|
172
187
|
|
|
173
188
|
|
|
174
189
|
class ConfiguredBaseModel(BaseModel):
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
190
|
+
model_config = ConfigDict(
|
|
191
|
+
extra='forbid'
|
|
192
|
+
)
|
|
178
193
|
|
|
179
194
|
|
|
180
195
|
class NamespaceV1(ConfiguredBaseModel):
|
|
@@ -297,11 +312,35 @@ class DisableClusterAutomationsV1(ConfiguredBaseModel):
|
|
|
297
312
|
integrations: Optional[list[str]] = Field(..., alias="integrations")
|
|
298
313
|
|
|
299
314
|
|
|
300
|
-
class
|
|
315
|
+
class AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
|
|
301
316
|
name: str = Field(..., alias="name")
|
|
302
317
|
disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable")
|
|
303
318
|
|
|
304
319
|
|
|
320
|
+
class AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1(ConfiguredBaseModel):
|
|
321
|
+
name: str = Field(..., alias="name")
|
|
322
|
+
delete: Optional[bool] = Field(..., alias="delete")
|
|
323
|
+
cluster: AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1_ClusterV1 = Field(..., alias="cluster")
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
class AutomatedActionOpenshiftTriggerCronjobArgumentV1(ConfiguredBaseModel):
|
|
327
|
+
namespace: AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1 = Field(..., alias="namespace")
|
|
328
|
+
cronjob: str = Field(..., alias="cronjob")
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
class AutomatedActionOpenshiftTriggerCronjobV1(AutomatedActionV1):
|
|
332
|
+
openshift_trigger_cronjob_arguments: list[AutomatedActionOpenshiftTriggerCronjobArgumentV1] = Field(..., alias="openshift_trigger_cronjob_arguments")
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1_DisableClusterAutomationsV1(ConfiguredBaseModel):
|
|
336
|
+
integrations: Optional[list[str]] = Field(..., alias="integrations")
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
|
|
340
|
+
name: str = Field(..., alias="name")
|
|
341
|
+
disable: Optional[AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1_DisableClusterAutomationsV1] = Field(..., alias="disable")
|
|
342
|
+
|
|
343
|
+
|
|
305
344
|
class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1(ConfiguredBaseModel):
|
|
306
345
|
name: str = Field(..., alias="name")
|
|
307
346
|
delete: Optional[bool] = Field(..., alias="delete")
|
|
@@ -347,7 +386,7 @@ class AutomatedActionOpenshiftWorkloadRestartV1(AutomatedActionV1):
|
|
|
347
386
|
class AutomatedActionsInstanceV1(ConfiguredBaseModel):
|
|
348
387
|
name: str = Field(..., alias="name")
|
|
349
388
|
deployment: NamespaceV1 = Field(..., alias="deployment")
|
|
350
|
-
actions: Optional[list[Union[AutomatedActionActionListV1, AutomatedActionExternalResourceFlushElastiCacheV1, AutomatedActionExternalResourceRdsRebootV1, AutomatedActionExternalResourceRdsSnapshotV1, AutomatedActionOpenshiftWorkloadDeleteV1, AutomatedActionOpenshiftWorkloadRestartV1, AutomatedActionV1]]] = Field(..., alias="actions")
|
|
389
|
+
actions: Optional[list[Union[AutomatedActionActionListV1, AutomatedActionExternalResourceFlushElastiCacheV1, AutomatedActionExternalResourceRdsRebootV1, AutomatedActionExternalResourceRdsSnapshotV1, AutomatedActionOpenshiftTriggerCronjobV1, AutomatedActionOpenshiftWorkloadDeleteV1, AutomatedActionOpenshiftWorkloadRestartV1, AutomatedActionV1]]] = Field(..., alias="actions")
|
|
351
390
|
|
|
352
391
|
|
|
353
392
|
class AutomatedActionsInstancesQueryData(ConfiguredBaseModel):
|