openshift-python-wrapper 10.0.55__tar.gz → 10.0.58__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.
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/PKG-INFO +2 -2
- openshift_python_wrapper-10.0.58/ocp_resources/application_aware_applied_cluster_resource_quota.py +12 -0
- openshift_python_wrapper-10.0.58/ocp_resources/application_aware_cluster_resource_quota.py +40 -0
- openshift_python_wrapper-10.0.58/ocp_resources/application_aware_resource_quota.py +49 -0
- openshift_python_wrapper-10.0.58/ocp_resources/ingress_controller.py +221 -0
- openshift_python_wrapper-10.0.58/ocp_resources/proxy.py +60 -0
- openshift_python_wrapper-10.0.58/ocp_resources/reclaim_space_cron_job.py +53 -0
- openshift_python_wrapper-10.0.58/ocp_resources/reclaim_space_job.py +50 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/resource.py +4 -3
- openshift_python_wrapper-10.0.58/ocp_resources/self_node_remediation_templates.py +36 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/pyproject.toml +2 -2
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/LICENSE +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/README.md +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/__init__.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/aaq.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/api_server.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/api_service.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/backup.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/benchmark.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/catalog_source.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cdi.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cdi_config.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/chaos_engine.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/chaos_result.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_claim.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_deployment.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_operator.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_pool.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_role.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_role_binding.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_service_version.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_version.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/configmap.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/console_cli_download.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/console_plugin.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/console_quick_start.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/constants.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/controller_revision.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cron_job.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/csi_storage_capacity.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/csidriver.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/custom_resource_definition.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/daemonset.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/data_import_cron.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/data_source.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/datavolume.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/deployment.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/destination_rule.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/dns.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/endpoint_slice.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/endpoints.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/event.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/forklift_controller.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/gateway.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/group.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/hook.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/host.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/hostpath_provisioner.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/hyperconverged.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image_content_source_policy.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image_digest_mirror_set.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image_stream.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/imagestreamtag.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/infrastructure.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/installplan.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/ip_address_pool.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/job.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kube_descheduler.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_common_templates_bundle.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_metrics_aggregation.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_node_labeller_bundle.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_template_validaotr.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/l2_advertisement.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/lease.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/limit_range.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_config.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_config_pool.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_health_check.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_set.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/managed_cluster.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/metallb.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/migration.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/migration_policy.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/mtq.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/mtv.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/multi_cluster_hub.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/multi_cluster_observability.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/multi_network_policy.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/mutating_webhook_config.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/namespace.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_addons_config.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_attachment_definition.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_map.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_policy.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/nmstate.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_health_check.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_maintenance.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_network_configuration_enactment.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_network_configuration_policy.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_network_state.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/oauth.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/ocs_initialization.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_condition.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_group.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_hub.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_source.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/package_manifest.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/peer_authentication.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/performance_profile.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/persistent_volume.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/persistent_volume_claim.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pipeline.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pipelineruns.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/plan.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pod.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pod_disruption_budget.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pod_metrics.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/priority_class.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/project.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/prometheus.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/prometheus_rule.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/provider.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/replicaset.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/resource_quota.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/restore.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/rhmi.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/role.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/role_binding.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/route.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/scheduler.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sealed_secret.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/secret.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/security_context_constraints.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_account.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_mesh_control_plane.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_mesh_member_roll.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_monitor.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sriov_network.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sriov_network_node_policy.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sriov_network_node_state.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/ssp.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/storage_class.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/storage_map.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/storage_profile.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/subscription.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/task_run.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/tekton_tasks.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/template.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/upload_token_request.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/utils.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/validating_webhook_config.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_Instance_replica_set.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_clone.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_cluster_instance_types.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_cluster_preferences.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_export.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_import.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance_migration.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance_preset.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance_types.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_preferences.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_restore.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_snapshot.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_service.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/vm_import_config.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/volume_snapshot.py +0 -0
- {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/volume_snapshot_class.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: openshift-python-wrapper
|
|
3
|
-
Version: 10.0.
|
|
3
|
+
Version: 10.0.58
|
|
4
4
|
Summary: Wrapper around https://github.com/kubernetes-client/python
|
|
5
5
|
Home-page: https://github.com/RedHatQE/openshift-python-wrapper
|
|
6
6
|
License: Apache-2.0
|
|
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Requires-Dist: colorlog (>=6.7.0,<7.0.0)
|
|
20
20
|
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
|
21
|
-
Requires-Dist: kubernetes (>=
|
|
21
|
+
Requires-Dist: kubernetes (>=30.0.0,<31.0.0)
|
|
22
22
|
Requires-Dist: packaging (>=23.1,<24.0)
|
|
23
23
|
Requires-Dist: python-benedict (>=0.33.0,<0.34.0)
|
|
24
24
|
Requires-Dist: python-simple-logger (>=1.0.6)
|
openshift_python_wrapper-10.0.58/ocp_resources/application_aware_applied_cluster_resource_quota.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# API reference: https://github.com/kubevirt/application-aware-quota/tree/main/staging/src/kubevirt.io/application-aware-quota-api/pkg/apis/core/v1alpha1
|
|
2
|
+
# TODO: update API reference when OCP doc is available
|
|
3
|
+
|
|
4
|
+
from ocp_resources.resource import NamespacedResource
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ApplicationAwareAppliedClusterResourceQuota(NamespacedResource):
|
|
8
|
+
"""
|
|
9
|
+
ApplicationAwareAppliedClusterResourceQuota object.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
api_group = NamespacedResource.ApiGroup.AAQ_KUBEVIRT_IO
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# API reference: https://github.com/kubevirt/application-aware-quota/tree/main/staging/src/kubevirt.io/application-aware-quota-api/pkg/apis/core/v1alpha1
|
|
2
|
+
# TODO: update API reference when OCP doc is available
|
|
3
|
+
from typing import Dict, Any
|
|
4
|
+
|
|
5
|
+
from ocp_resources.resource import MissingRequiredArgumentError, Resource
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ApplicationAwareClusterResourceQuota(Resource):
|
|
9
|
+
api_group = Resource.ApiGroup.AAQ_KUBEVIRT_IO
|
|
10
|
+
|
|
11
|
+
def __init__(
|
|
12
|
+
self,
|
|
13
|
+
quota: Dict[str, Any] | None = None,
|
|
14
|
+
selector: Dict[str, Any] | None = None,
|
|
15
|
+
**kwargs: Any,
|
|
16
|
+
) -> None:
|
|
17
|
+
"""
|
|
18
|
+
Create ApplicationAwareClusterResourceQuota object.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
quota (dict): defines the desired quota
|
|
22
|
+
example: {"hard": {"pod": 3, "requests.cpu": "500m"}}
|
|
23
|
+
selector (dict): Dict of Namespace labels/annotations to match
|
|
24
|
+
example: {"annotations": {"acrq-annotation": "true"}, "labels": {"matchLabels": {"acrq-label": "true"}}}
|
|
25
|
+
"""
|
|
26
|
+
super().__init__(**kwargs)
|
|
27
|
+
self.quota = quota
|
|
28
|
+
self.selector = selector
|
|
29
|
+
|
|
30
|
+
def to_dict(self):
|
|
31
|
+
super().to_dict()
|
|
32
|
+
if not self.yaml_file:
|
|
33
|
+
if not (self.quota or self.selector):
|
|
34
|
+
raise MissingRequiredArgumentError(argument="'quota' or 'selector'")
|
|
35
|
+
|
|
36
|
+
self.res["spec"] = {}
|
|
37
|
+
_spec = self.res["spec"]
|
|
38
|
+
|
|
39
|
+
_spec["quota"] = self.quota
|
|
40
|
+
_spec["selector"] = self.selector
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# API reference: https://github.com/kubevirt/application-aware-quota/tree/main/staging/src/kubevirt.io/application-aware-quota-api/pkg/apis/core/v1alpha1
|
|
2
|
+
# TODO: update API reference when OCP doc is available
|
|
3
|
+
from typing import Dict, Any, List
|
|
4
|
+
|
|
5
|
+
from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ApplicationAwareResourceQuota(NamespacedResource):
|
|
9
|
+
api_group = NamespacedResource.ApiGroup.AAQ_KUBEVIRT_IO
|
|
10
|
+
|
|
11
|
+
def __init__(
|
|
12
|
+
self,
|
|
13
|
+
hard: Dict[str, Any] | None = None,
|
|
14
|
+
scope_selector: Dict[str, Any] | None = None,
|
|
15
|
+
scopes: List[str] | None = None,
|
|
16
|
+
**kwargs: Any,
|
|
17
|
+
) -> None:
|
|
18
|
+
"""
|
|
19
|
+
Create ApplicationAwareResourceQuota object.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
hard (dict): set of desired hard limits
|
|
23
|
+
example: {"pod": 3, "requests.cpu": "500m", "requests.memory/vmi": "4Gi", "requests.instances/vmi": 2}
|
|
24
|
+
scope_selector (dict, optional): collection of filters
|
|
25
|
+
example: {"matchExpressions": [{"operator": "In", "scopeName": "PriorityClass", "values": ["low"]}]}
|
|
26
|
+
scopes (list, optional): collection of filters
|
|
27
|
+
example: ["Terminating", "PriorityClass"]
|
|
28
|
+
"""
|
|
29
|
+
super().__init__(**kwargs)
|
|
30
|
+
self.hard = hard
|
|
31
|
+
self.scope_selector = scope_selector
|
|
32
|
+
self.scopes = scopes
|
|
33
|
+
|
|
34
|
+
def to_dict(self):
|
|
35
|
+
super().to_dict()
|
|
36
|
+
if not self.yaml_file:
|
|
37
|
+
if not self.hard:
|
|
38
|
+
raise MissingRequiredArgumentError(argument="hard")
|
|
39
|
+
|
|
40
|
+
self.res["spec"] = {}
|
|
41
|
+
_spec = self.res["spec"]
|
|
42
|
+
|
|
43
|
+
_spec["hard"] = self.hard
|
|
44
|
+
|
|
45
|
+
if self.scope_selector:
|
|
46
|
+
_spec["scopeSelector"] = self.scope_selector
|
|
47
|
+
|
|
48
|
+
if self.scopes:
|
|
49
|
+
_spec["scopes"] = self.scopes
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional
|
|
2
|
+
from ocp_resources.resource import NamespacedResource
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class IngressController(NamespacedResource):
|
|
6
|
+
"""
|
|
7
|
+
https://docs.openshift.com/container-platform/4.15/rest_api/operator_apis/ingresscontroller-operator-openshift-io-v1.html
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
api_group = NamespacedResource.ApiGroup.OPERATOR_OPENSHIFT_IO
|
|
11
|
+
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
domain: Optional[str] = "",
|
|
15
|
+
replicas: Optional[int] = None,
|
|
16
|
+
endpoint_publishing_strategy: Optional[Dict[str, Any]] = None,
|
|
17
|
+
default_certificate: Optional[Dict[str, str]] = None,
|
|
18
|
+
namespace_selector: Optional[Dict[str, Any]] = None,
|
|
19
|
+
node_selector: Optional[Dict[str, Any]] = None,
|
|
20
|
+
route_selector: Optional[Dict[str, Any]] = None,
|
|
21
|
+
tls_security_profile: Optional[Dict[str, Any]] = None,
|
|
22
|
+
logging: Optional[Dict[str, Any]] = None,
|
|
23
|
+
route_admission: Optional[Dict[str, Any]] = None,
|
|
24
|
+
client_tls: Optional[Dict[str, Any]] = None,
|
|
25
|
+
trusted_ca: Optional[Dict[str, Any]] = None,
|
|
26
|
+
http_compression: Optional[Dict[str, str]] = None,
|
|
27
|
+
http_empty_requests_policy: Optional[str] = "",
|
|
28
|
+
http_error_code_pages: Optional[Dict[str, Any]] = None,
|
|
29
|
+
http_headers: Optional[Dict[str, Any]] = None,
|
|
30
|
+
node_placement: Optional[Dict[str, Any]] = None,
|
|
31
|
+
tuning_options: Optional[Dict[str, Any]] = None,
|
|
32
|
+
unsupported_config_overrides: Optional[Dict[str, Any]] = None,
|
|
33
|
+
**kwargs: Any,
|
|
34
|
+
) -> None:
|
|
35
|
+
"""
|
|
36
|
+
Args:
|
|
37
|
+
domain (str, optional): The domain for the ingress controller.
|
|
38
|
+
replicas (int, optional): The number of desired replicas.
|
|
39
|
+
endpoint_publishing_strategy (dict, optional): The strategy for publishing endpoints.
|
|
40
|
+
Example: {
|
|
41
|
+
"type": "LoadBalancerService",
|
|
42
|
+
"loadBalancer": {
|
|
43
|
+
"scope": "External"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
default_certificate (dict, optional): A reference to a secret containing the default certificate.
|
|
47
|
+
Example: {
|
|
48
|
+
"name": "default-cert-secret",
|
|
49
|
+
"namespace": "openshift-ingress"
|
|
50
|
+
}
|
|
51
|
+
namespace_selector (dict, optional): A selector to select which namespaces the ingress controller should observe.
|
|
52
|
+
Example: {
|
|
53
|
+
"matchLabels": {
|
|
54
|
+
"app": "myapp"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
node_selector (dict, optional): A selector to select nodes the ingress controller should run on.
|
|
58
|
+
Example: {
|
|
59
|
+
"matchLabels": {
|
|
60
|
+
"node-role.kubernetes.io/worker": ""
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
route_selector (dict, optional): A selector to select which routes the ingress controller should observe.
|
|
64
|
+
Example: {
|
|
65
|
+
"matchLabels": {
|
|
66
|
+
"route": "myroute"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
tls_security_profile (dict, optional): Settings for TLS connections.
|
|
70
|
+
Example: {
|
|
71
|
+
"type": "Intermediate"
|
|
72
|
+
}
|
|
73
|
+
logging (dict, optional): Parameters for logging.
|
|
74
|
+
Example: {
|
|
75
|
+
"access": {
|
|
76
|
+
"destination": {
|
|
77
|
+
"type": "Container",
|
|
78
|
+
"name": "access-logs"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
route_admission (dict, optional): Policy for handling new route claims.
|
|
83
|
+
Example: {
|
|
84
|
+
"namespaceOwnership": "InterNamespaceAllowed"
|
|
85
|
+
}
|
|
86
|
+
client_tls (dict, optional): Client TLS settings, including `clientCA` and `clientCertificatePolicy`.
|
|
87
|
+
Example: {
|
|
88
|
+
"clientCA": {
|
|
89
|
+
"name": "client-ca",
|
|
90
|
+
"namespace": "openshift-ingress"
|
|
91
|
+
},
|
|
92
|
+
"clientCertificatePolicy": "Required"
|
|
93
|
+
}
|
|
94
|
+
trusted_ca (dict, optional): TrustedCA data.
|
|
95
|
+
Example: {
|
|
96
|
+
"name": "trusted-ca",
|
|
97
|
+
"namespace": "openshift-config"
|
|
98
|
+
}
|
|
99
|
+
http_compression (dict, optional): Policy for HTTP traffic compression.
|
|
100
|
+
Example: {
|
|
101
|
+
"type": "Gzip"
|
|
102
|
+
}
|
|
103
|
+
http_empty_requests_policy (str, optional): Policy for handling HTTP connections if the connection times out.
|
|
104
|
+
http_error_code_pages (dict, optional): Custom error pages.
|
|
105
|
+
Example: {
|
|
106
|
+
"name": "custom-error-pages",
|
|
107
|
+
"namespace": "openshift-config"
|
|
108
|
+
}
|
|
109
|
+
http_headers (dict, optional): Policy for HTTP headers.
|
|
110
|
+
Example: {
|
|
111
|
+
"setHeaders": {
|
|
112
|
+
"Strict-Transport-Security": "max-age=31536000; includeSubDomains"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
node_placement (dict, optional): Control over the scheduling of the ingress controller.
|
|
116
|
+
Example: {
|
|
117
|
+
"nodeSelector": {
|
|
118
|
+
"matchLabels": {
|
|
119
|
+
"kubernetes.io/os": "linux"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"tolerations": [
|
|
123
|
+
{
|
|
124
|
+
"effect": "NoSchedule",
|
|
125
|
+
"operator": "Exists"
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
tuning_options (dict, optional): Parameters for adjusting the performance of ingress controller pods.
|
|
130
|
+
Example: {
|
|
131
|
+
"maxConnections": 10000
|
|
132
|
+
}
|
|
133
|
+
unsupported_config_overrides (dict, optional): Unsupported configuration options.
|
|
134
|
+
Example: {
|
|
135
|
+
"customConfig": "value"
|
|
136
|
+
}
|
|
137
|
+
"""
|
|
138
|
+
super().__init__(**kwargs)
|
|
139
|
+
self.domain = domain
|
|
140
|
+
self.replicas = replicas
|
|
141
|
+
self.endpoint_publishing_strategy = endpoint_publishing_strategy
|
|
142
|
+
self.default_certificate = default_certificate
|
|
143
|
+
self.namespace_selector = namespace_selector
|
|
144
|
+
self.node_selector = node_selector # type: ignore
|
|
145
|
+
self.route_selector = route_selector
|
|
146
|
+
self.tls_security_profile = tls_security_profile
|
|
147
|
+
self.logging = logging
|
|
148
|
+
self.route_admission = route_admission
|
|
149
|
+
self.client_tls = client_tls
|
|
150
|
+
self.trusted_ca = trusted_ca
|
|
151
|
+
self.http_compression = http_compression
|
|
152
|
+
self.http_empty_requests_policy = http_empty_requests_policy
|
|
153
|
+
self.http_error_code_pages = http_error_code_pages
|
|
154
|
+
self.http_headers = http_headers
|
|
155
|
+
self.node_placement = node_placement
|
|
156
|
+
self.tuning_options = tuning_options
|
|
157
|
+
self.unsupported_config_overrides = unsupported_config_overrides
|
|
158
|
+
|
|
159
|
+
def to_dict(self) -> None:
|
|
160
|
+
super().to_dict()
|
|
161
|
+
|
|
162
|
+
if not self.yaml_file:
|
|
163
|
+
self.res["spec"] = {}
|
|
164
|
+
_spec = self.res["spec"]
|
|
165
|
+
|
|
166
|
+
if self.domain:
|
|
167
|
+
_spec["domain"] = self.domain
|
|
168
|
+
|
|
169
|
+
if self.replicas:
|
|
170
|
+
_spec["replicas"] = self.replicas
|
|
171
|
+
|
|
172
|
+
if self.endpoint_publishing_strategy:
|
|
173
|
+
_spec["endpointPublishingStrategy"] = self.endpoint_publishing_strategy
|
|
174
|
+
|
|
175
|
+
if self.default_certificate:
|
|
176
|
+
_spec["defaultCertificate"] = self.default_certificate
|
|
177
|
+
|
|
178
|
+
if self.namespace_selector:
|
|
179
|
+
_spec["namespaceSelector"] = self.namespace_selector
|
|
180
|
+
|
|
181
|
+
if self.node_selector:
|
|
182
|
+
_spec["nodeSelector"] = self.node_selector
|
|
183
|
+
|
|
184
|
+
if self.route_selector:
|
|
185
|
+
_spec["routeSelector"] = self.route_selector
|
|
186
|
+
|
|
187
|
+
if self.tls_security_profile:
|
|
188
|
+
_spec["tlsSecurityProfile"] = self.tls_security_profile
|
|
189
|
+
|
|
190
|
+
if self.logging:
|
|
191
|
+
_spec["logging"] = self.logging
|
|
192
|
+
|
|
193
|
+
if self.route_admission:
|
|
194
|
+
_spec["routeAdmission"] = self.route_admission
|
|
195
|
+
|
|
196
|
+
if self.client_tls:
|
|
197
|
+
_spec["clientTLS"] = self.client_tls
|
|
198
|
+
|
|
199
|
+
if self.trusted_ca:
|
|
200
|
+
_spec["trustedCA"] = self.trusted_ca
|
|
201
|
+
|
|
202
|
+
if self.http_compression:
|
|
203
|
+
_spec["httpCompression"] = self.http_compression
|
|
204
|
+
|
|
205
|
+
if self.http_empty_requests_policy:
|
|
206
|
+
_spec["httpEmptyRequestsPolicy"] = self.http_empty_requests_policy
|
|
207
|
+
|
|
208
|
+
if self.http_error_code_pages:
|
|
209
|
+
_spec["httpErrorCodePages"] = self.http_error_code_pages
|
|
210
|
+
|
|
211
|
+
if self.http_headers:
|
|
212
|
+
_spec["httpHeaders"] = self.http_headers
|
|
213
|
+
|
|
214
|
+
if self.node_placement:
|
|
215
|
+
_spec["nodePlacement"] = self.node_placement
|
|
216
|
+
|
|
217
|
+
if self.tuning_options:
|
|
218
|
+
_spec["tuningOptions"] = self.tuning_options
|
|
219
|
+
|
|
220
|
+
if self.unsupported_config_overrides:
|
|
221
|
+
_spec["unsupportedConfigOverrides"] = self.unsupported_config_overrides
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional
|
|
2
|
+
from ocp_resources.resource import Resource
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Proxy(Resource):
|
|
6
|
+
"""
|
|
7
|
+
https://docs.openshift.com/container-platform/4.15/rest_api/config_apis/proxy-config-openshift-io-v1.html
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
api_group = Resource.ApiGroup.CONFIG_OPENSHIFT_IO
|
|
11
|
+
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
http_proxy: Optional[str] = "",
|
|
15
|
+
https_proxy: Optional[str] = "",
|
|
16
|
+
no_proxy: Optional[str] = "",
|
|
17
|
+
readiness_endpoints: Optional[List[str]] = None,
|
|
18
|
+
trusted_ca: Optional[Dict[str, str]] = None,
|
|
19
|
+
**kwargs: Any,
|
|
20
|
+
) -> None:
|
|
21
|
+
"""
|
|
22
|
+
Args:
|
|
23
|
+
http_proxy (str, optional): URL of the proxy for HTTP requests.
|
|
24
|
+
https_proxy (str, optional): URL of the proxy for HTTPS requests.
|
|
25
|
+
no_proxy (str, optional): Comma-separated list of hostnames for which the proxy should not be used.
|
|
26
|
+
readiness_endpoints (list, optional): List of endpoints used to verify readiness of the proxy.
|
|
27
|
+
trusted_ca (dict, optional): Reference to a ConfigMap containing a CA certificate bundle.
|
|
28
|
+
Example: {
|
|
29
|
+
"name": "trusted-ca-bundle",
|
|
30
|
+
"namespace": "openshift-config"
|
|
31
|
+
}
|
|
32
|
+
"""
|
|
33
|
+
super().__init__(**kwargs)
|
|
34
|
+
self.http_proxy = http_proxy
|
|
35
|
+
self.https_proxy = https_proxy
|
|
36
|
+
self.no_proxy = no_proxy
|
|
37
|
+
self.readiness_endpoints = readiness_endpoints
|
|
38
|
+
self.trusted_ca = trusted_ca
|
|
39
|
+
|
|
40
|
+
def to_dict(self) -> None:
|
|
41
|
+
super().to_dict()
|
|
42
|
+
|
|
43
|
+
if not self.yaml_file:
|
|
44
|
+
self.res["spec"] = {}
|
|
45
|
+
_spec = self.res["spec"]
|
|
46
|
+
|
|
47
|
+
if self.http_proxy:
|
|
48
|
+
_spec["httpProxy"] = self.http_proxy
|
|
49
|
+
|
|
50
|
+
if self.https_proxy:
|
|
51
|
+
_spec["httpsProxy"] = self.https_proxy
|
|
52
|
+
|
|
53
|
+
if self.no_proxy:
|
|
54
|
+
_spec["noProxy"] = self.no_proxy
|
|
55
|
+
|
|
56
|
+
if self.readiness_endpoints:
|
|
57
|
+
_spec["readinessEndpoints"] = self.readiness_endpoints
|
|
58
|
+
|
|
59
|
+
if self.trusted_ca:
|
|
60
|
+
_spec["trustedCA"] = self.trusted_ca
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any, Dict, Optional
|
|
3
|
+
from ocp_resources.resource import NamespacedResource, MissingRequiredArgumentError
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ReclaimSpaceCronJob(NamespacedResource):
|
|
7
|
+
"""
|
|
8
|
+
https://github.com/csi-addons/kubernetes-csi-addons/blob/main/apis/csiaddons/v1alpha1/reclaimspacecronjob_types.go
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
api_group = NamespacedResource.ApiGroup.CSIADDONS_OPENSHIFT_IO
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
schedule: Optional[str] = "",
|
|
16
|
+
job_template: Optional[Dict[str, Any]] = None,
|
|
17
|
+
concurrency_policy: Optional[str] = "",
|
|
18
|
+
successful_jobs_history_limit: Optional[int] = None,
|
|
19
|
+
failed_jobs_history_limit: Optional[int] = None,
|
|
20
|
+
**kwargs: Any,
|
|
21
|
+
) -> None:
|
|
22
|
+
"""
|
|
23
|
+
Args:
|
|
24
|
+
schedule (Optional, str): schedule of the reclaim space cron job
|
|
25
|
+
job_template (Optional, dict): describes the reclaim space job that would be created when a reclaim space cronjob
|
|
26
|
+
would be executed
|
|
27
|
+
Example: https://github.com/csi-addons/kubernetes-csi-addons/blob/main/docs/reclaimspace.md
|
|
28
|
+
concurrency_policy (str, optional): indicates how to treat concurrent execution of a job
|
|
29
|
+
successful_jobs_history_limit (int, optional): number of successful jobs to retain
|
|
30
|
+
failed_jobs_history_limit (int, optional): number of failed jobs to retain start at scheduled time
|
|
31
|
+
"""
|
|
32
|
+
super().__init__(
|
|
33
|
+
**kwargs,
|
|
34
|
+
)
|
|
35
|
+
self.job_template = job_template
|
|
36
|
+
self.schedule = schedule
|
|
37
|
+
self.concurrency_policy = concurrency_policy
|
|
38
|
+
self.successful_jobs_history_limit = successful_jobs_history_limit
|
|
39
|
+
self.failed_jobs_history_limit = failed_jobs_history_limit
|
|
40
|
+
|
|
41
|
+
def to_dict(self) -> None:
|
|
42
|
+
super().to_dict()
|
|
43
|
+
if not self.yaml_file:
|
|
44
|
+
if not (self.job_template and self.schedule):
|
|
45
|
+
raise MissingRequiredArgumentError(argument="'job_template' and 'schedule'")
|
|
46
|
+
self.res["spec"] = {"jobTemplate": self.job_template, "schedule": self.schedule}
|
|
47
|
+
spec_dict = self.res["spec"]
|
|
48
|
+
if self.successful_jobs_history_limit:
|
|
49
|
+
spec_dict["successfulJobsHistoryLimit"] = self.successful_jobs_history_limit
|
|
50
|
+
if self.failed_jobs_history_limit:
|
|
51
|
+
spec_dict["failedJobsHistoryLimit"] = self.failed_jobs_history_limit
|
|
52
|
+
if self.concurrency_policy:
|
|
53
|
+
spec_dict["concurrencyPolicy"] = self.concurrency_policy
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any, Optional
|
|
3
|
+
from ocp_resources.resource import NamespacedResource, MissingRequiredArgumentError
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ReclaimSpaceJob(NamespacedResource):
|
|
7
|
+
"""
|
|
8
|
+
https://github.com/csi-addons/kubernetes-csi-addons/blob/main/apis/csiaddons/v1alpha1/reclaimspacejob_types.go
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
api_group = NamespacedResource.ApiGroup.CSIADDONS_OPENSHIFT_IO
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
backoff_limit: Optional[int] = None,
|
|
16
|
+
target: Optional[dict[str, Any]] = None,
|
|
17
|
+
retry_deadline_seconds: Optional[int] = None,
|
|
18
|
+
timeout_seconds_reclaim_job: int | None = None,
|
|
19
|
+
**kwargs: Any,
|
|
20
|
+
) -> None:
|
|
21
|
+
"""
|
|
22
|
+
Args:
|
|
23
|
+
backoff_limit (int, Optional): The number of retries for a reclaim space job.
|
|
24
|
+
target (Optional, dict): Volume target on which the operation would be performed.
|
|
25
|
+
retryDeadlineSeconds (int, Optional): Duration in seconds relative to the start time that the
|
|
26
|
+
operation may be retried.
|
|
27
|
+
timeout_seconds_reclaim_job (int, Optional): Specifies the timeout in seconds for the grpc request sent to
|
|
28
|
+
the CSI driver.
|
|
29
|
+
"""
|
|
30
|
+
super().__init__(
|
|
31
|
+
**kwargs,
|
|
32
|
+
)
|
|
33
|
+
self.backoff_limit = backoff_limit
|
|
34
|
+
self.target = target
|
|
35
|
+
self.retry_deadline_seconds = retry_deadline_seconds
|
|
36
|
+
self.timeout_seconds_reclaim_job = timeout_seconds_reclaim_job
|
|
37
|
+
|
|
38
|
+
def to_dict(self) -> None:
|
|
39
|
+
super().to_dict()
|
|
40
|
+
if not self.yaml_file:
|
|
41
|
+
if not self.target:
|
|
42
|
+
raise MissingRequiredArgumentError(argument="target")
|
|
43
|
+
self.res["spec"] = {"target": self.target}
|
|
44
|
+
spec_dict = self.res["spec"]
|
|
45
|
+
if self.retry_deadline_seconds:
|
|
46
|
+
spec_dict["retryDeadlineSeconds"] = self.retry_deadline_seconds
|
|
47
|
+
if self.timeout_seconds_reclaim_job:
|
|
48
|
+
spec_dict["timeout"] = self.timeout_seconds_reclaim_job
|
|
49
|
+
if self.backoff_limit:
|
|
50
|
+
spec_dict["backOffLimit"] = self.backoff_limit
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/resource.py
RENAMED
|
@@ -9,7 +9,7 @@ import sys
|
|
|
9
9
|
from io import StringIO
|
|
10
10
|
from signal import SIGINT, signal
|
|
11
11
|
from types import TracebackType
|
|
12
|
-
from typing import Optional
|
|
12
|
+
from typing import Optional, Any, Dict, List
|
|
13
13
|
|
|
14
14
|
import kubernetes
|
|
15
15
|
from kubernetes.dynamic import DynamicClient, ResourceInstance
|
|
@@ -24,7 +24,7 @@ from kubernetes.dynamic.exceptions import (
|
|
|
24
24
|
)
|
|
25
25
|
from kubernetes.dynamic.resource import ResourceField
|
|
26
26
|
from packaging.version import Version
|
|
27
|
-
from simple_logger.logger import
|
|
27
|
+
from simple_logger.logger import get_logger, logging
|
|
28
28
|
from urllib3.exceptions import MaxRetryError
|
|
29
29
|
|
|
30
30
|
from ocp_resources.constants import (
|
|
@@ -274,6 +274,7 @@ class Resource:
|
|
|
274
274
|
CONFIG_OPENSHIFT_IO = "config.openshift.io"
|
|
275
275
|
CONSOLE_OPENSHIFT_IO = "console.openshift.io"
|
|
276
276
|
COORDINATION_K8S_IO = "coordination.k8s.io"
|
|
277
|
+
CSIADDONS_OPENSHIFT_IO = "csiaddons.openshift.io"
|
|
277
278
|
DATA_IMPORT_CRON_TEMPLATE_KUBEVIRT_IO = "dataimportcrontemplate.kubevirt.io"
|
|
278
279
|
DISCOVERY_K8S_IO = "discovery.k8s.io"
|
|
279
280
|
EVENTS_K8S_IO = "events.k8s.io"
|
|
@@ -325,6 +326,7 @@ class Resource:
|
|
|
325
326
|
SCHEDULING_K8S_IO = "scheduling.k8s.io"
|
|
326
327
|
SECURITY_ISTIO_IO = "security.istio.io"
|
|
327
328
|
SECURITY_OPENSHIFT_IO = "security.openshift.io"
|
|
329
|
+
SELF_NODE_REMEDIATION_MEDIK8S_IO = "self-node-remediation.medik8s.io"
|
|
328
330
|
SNAPSHOT_STORAGE_K8S_IO = "snapshot.storage.k8s.io"
|
|
329
331
|
SNAPSHOT_KUBEVIRT_IO = "snapshot.kubevirt.io"
|
|
330
332
|
SRIOVNETWORK_OPENSHIFT_IO = "sriovnetwork.openshift.io"
|
|
@@ -438,7 +440,6 @@ class Resource:
|
|
|
438
440
|
self._set_client_and_api_version()
|
|
439
441
|
|
|
440
442
|
def _ensure_exists(self) -> None:
|
|
441
|
-
self.logger.error(self.namespace)
|
|
442
443
|
if not self.exists:
|
|
443
444
|
_name_for_raise = self.name if not self.namespace else f"{self.namespace}/{self.name}"
|
|
444
445
|
raise ResourceNotFoundError(f"Resource `{self.kind}` `{_name_for_raise}` does not exist")
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# API reference: https://github.com/medik8s/self-node-remediation
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
from ocp_resources.resource import NamespacedResource
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class SelfNodeRemediationTemplate(NamespacedResource):
|
|
8
|
+
"""
|
|
9
|
+
SelfNodeRemediationTemplate CRD
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
api_group = NamespacedResource.ApiGroup.SELF_NODE_REMEDIATION_MEDIK8S_IO
|
|
13
|
+
|
|
14
|
+
def __init__(
|
|
15
|
+
self,
|
|
16
|
+
remediation_strategy: str = "",
|
|
17
|
+
**kwargs: Any,
|
|
18
|
+
) -> None:
|
|
19
|
+
"""
|
|
20
|
+
Create SelfNodeRemediationTemplate object.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
remediation_strategy (str, optional): The remediation method for unhealthy nodes.
|
|
24
|
+
"""
|
|
25
|
+
super().__init__(
|
|
26
|
+
**kwargs,
|
|
27
|
+
)
|
|
28
|
+
self.remediation_strategy = remediation_strategy
|
|
29
|
+
|
|
30
|
+
def to_dict(self) -> None:
|
|
31
|
+
super().to_dict()
|
|
32
|
+
if not self.yaml_file:
|
|
33
|
+
_spec = self.res["spec"] = {"template": {"spec": {}}}
|
|
34
|
+
|
|
35
|
+
if self.remediation_strategy:
|
|
36
|
+
_spec["template"]["spec"]["remediationStrategy"] = self.remediation_strategy
|
|
@@ -19,7 +19,7 @@ warn_unused_ignores = true
|
|
|
19
19
|
|
|
20
20
|
[tool.poetry]
|
|
21
21
|
name = "openshift-python-wrapper"
|
|
22
|
-
version = "10.0.
|
|
22
|
+
version = "10.0.58"
|
|
23
23
|
description = "Wrapper around https://github.com/kubernetes-client/python"
|
|
24
24
|
authors = ["Meni Yakove <myakove@gmail.com>", "Ruth Netser <rnetser@gmail.com>"]
|
|
25
25
|
readme = "README.md"
|
|
@@ -60,7 +60,7 @@ build-backend = "poetry_dynamic_versioning.backend"
|
|
|
60
60
|
python = "^3.8"
|
|
61
61
|
xmltodict = "^0.13.0"
|
|
62
62
|
colorlog = "^6.7.0"
|
|
63
|
-
kubernetes = "^
|
|
63
|
+
kubernetes = "^30.0.0"
|
|
64
64
|
python-benedict = "^0.33.0"
|
|
65
65
|
packaging = "^23.1"
|
|
66
66
|
python-simple-logger = ">=1.0.6"
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/api_server.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/api_service.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/backup.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/benchmark.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cdi_config.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/chaos_engine.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/chaos_result.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_claim.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_pool.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_role.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/configmap.py
RENAMED
|
File without changes
|
|
File without changes
|