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.
Files changed (177) hide show
  1. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/PKG-INFO +2 -2
  2. openshift_python_wrapper-10.0.58/ocp_resources/application_aware_applied_cluster_resource_quota.py +12 -0
  3. openshift_python_wrapper-10.0.58/ocp_resources/application_aware_cluster_resource_quota.py +40 -0
  4. openshift_python_wrapper-10.0.58/ocp_resources/application_aware_resource_quota.py +49 -0
  5. openshift_python_wrapper-10.0.58/ocp_resources/ingress_controller.py +221 -0
  6. openshift_python_wrapper-10.0.58/ocp_resources/proxy.py +60 -0
  7. openshift_python_wrapper-10.0.58/ocp_resources/reclaim_space_cron_job.py +53 -0
  8. openshift_python_wrapper-10.0.58/ocp_resources/reclaim_space_job.py +50 -0
  9. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/resource.py +4 -3
  10. openshift_python_wrapper-10.0.58/ocp_resources/self_node_remediation_templates.py +36 -0
  11. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/pyproject.toml +2 -2
  12. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/LICENSE +0 -0
  13. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/README.md +0 -0
  14. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/__init__.py +0 -0
  15. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/aaq.py +0 -0
  16. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/api_server.py +0 -0
  17. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/api_service.py +0 -0
  18. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/backup.py +0 -0
  19. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/benchmark.py +0 -0
  20. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/catalog_source.py +0 -0
  21. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cdi.py +0 -0
  22. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cdi_config.py +0 -0
  23. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/chaos_engine.py +0 -0
  24. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/chaos_result.py +0 -0
  25. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_claim.py +0 -0
  26. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_deployment.py +0 -0
  27. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_operator.py +0 -0
  28. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_pool.py +0 -0
  29. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_role.py +0 -0
  30. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_role_binding.py +0 -0
  31. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_service_version.py +0 -0
  32. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cluster_version.py +0 -0
  33. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/configmap.py +0 -0
  34. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/console_cli_download.py +0 -0
  35. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/console_plugin.py +0 -0
  36. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/console_quick_start.py +0 -0
  37. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/constants.py +0 -0
  38. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/controller_revision.py +0 -0
  39. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/cron_job.py +0 -0
  40. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/csi_storage_capacity.py +0 -0
  41. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/csidriver.py +0 -0
  42. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/custom_resource_definition.py +0 -0
  43. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/daemonset.py +0 -0
  44. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/data_import_cron.py +0 -0
  45. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/data_source.py +0 -0
  46. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/datavolume.py +0 -0
  47. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/deployment.py +0 -0
  48. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/destination_rule.py +0 -0
  49. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/dns.py +0 -0
  50. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/endpoint_slice.py +0 -0
  51. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/endpoints.py +0 -0
  52. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/event.py +0 -0
  53. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/forklift_controller.py +0 -0
  54. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/gateway.py +0 -0
  55. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/group.py +0 -0
  56. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/hook.py +0 -0
  57. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/host.py +0 -0
  58. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/hostpath_provisioner.py +0 -0
  59. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/hyperconverged.py +0 -0
  60. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image.py +0 -0
  61. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image_content_source_policy.py +0 -0
  62. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image_digest_mirror_set.py +0 -0
  63. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/image_stream.py +0 -0
  64. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/imagestreamtag.py +0 -0
  65. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/infrastructure.py +0 -0
  66. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/installplan.py +0 -0
  67. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/ip_address_pool.py +0 -0
  68. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/job.py +0 -0
  69. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kube_descheduler.py +0 -0
  70. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt.py +0 -0
  71. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_common_templates_bundle.py +0 -0
  72. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_metrics_aggregation.py +0 -0
  73. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_node_labeller_bundle.py +0 -0
  74. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/kubevirt_template_validaotr.py +0 -0
  75. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/l2_advertisement.py +0 -0
  76. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/lease.py +0 -0
  77. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/limit_range.py +0 -0
  78. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine.py +0 -0
  79. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_config.py +0 -0
  80. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_config_pool.py +0 -0
  81. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_health_check.py +0 -0
  82. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/machine_set.py +0 -0
  83. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/managed_cluster.py +0 -0
  84. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/metallb.py +0 -0
  85. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/migration.py +0 -0
  86. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/migration_policy.py +0 -0
  87. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/mtq.py +0 -0
  88. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/mtv.py +0 -0
  89. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/multi_cluster_hub.py +0 -0
  90. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/multi_cluster_observability.py +0 -0
  91. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/multi_network_policy.py +0 -0
  92. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/mutating_webhook_config.py +0 -0
  93. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/namespace.py +0 -0
  94. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network.py +0 -0
  95. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_addons_config.py +0 -0
  96. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_attachment_definition.py +0 -0
  97. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_map.py +0 -0
  98. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/network_policy.py +0 -0
  99. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/nmstate.py +0 -0
  100. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node.py +0 -0
  101. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_health_check.py +0 -0
  102. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_maintenance.py +0 -0
  103. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_network_configuration_enactment.py +0 -0
  104. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_network_configuration_policy.py +0 -0
  105. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/node_network_state.py +0 -0
  106. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/oauth.py +0 -0
  107. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/ocs_initialization.py +0 -0
  108. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator.py +0 -0
  109. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_condition.py +0 -0
  110. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_group.py +0 -0
  111. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_hub.py +0 -0
  112. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/operator_source.py +0 -0
  113. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/package_manifest.py +0 -0
  114. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/peer_authentication.py +0 -0
  115. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/performance_profile.py +0 -0
  116. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/persistent_volume.py +0 -0
  117. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/persistent_volume_claim.py +0 -0
  118. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pipeline.py +0 -0
  119. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pipelineruns.py +0 -0
  120. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/plan.py +0 -0
  121. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pod.py +0 -0
  122. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pod_disruption_budget.py +0 -0
  123. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/pod_metrics.py +0 -0
  124. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/priority_class.py +0 -0
  125. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/project.py +0 -0
  126. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/prometheus.py +0 -0
  127. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/prometheus_rule.py +0 -0
  128. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/provider.py +0 -0
  129. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/replicaset.py +0 -0
  130. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/resource_quota.py +0 -0
  131. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/restore.py +0 -0
  132. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/rhmi.py +0 -0
  133. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/role.py +0 -0
  134. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/role_binding.py +0 -0
  135. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/route.py +0 -0
  136. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/scheduler.py +0 -0
  137. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sealed_secret.py +0 -0
  138. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/secret.py +0 -0
  139. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/security_context_constraints.py +0 -0
  140. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service.py +0 -0
  141. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_account.py +0 -0
  142. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_mesh_control_plane.py +0 -0
  143. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_mesh_member_roll.py +0 -0
  144. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/service_monitor.py +0 -0
  145. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sriov_network.py +0 -0
  146. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sriov_network_node_policy.py +0 -0
  147. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/sriov_network_node_state.py +0 -0
  148. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/ssp.py +0 -0
  149. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/storage_class.py +0 -0
  150. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/storage_map.py +0 -0
  151. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/storage_profile.py +0 -0
  152. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/subscription.py +0 -0
  153. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/task_run.py +0 -0
  154. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/tekton_tasks.py +0 -0
  155. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/template.py +0 -0
  156. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/upload_token_request.py +0 -0
  157. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/utils.py +0 -0
  158. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/validating_webhook_config.py +0 -0
  159. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine.py +0 -0
  160. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_Instance_replica_set.py +0 -0
  161. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_clone.py +0 -0
  162. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_cluster_instance_types.py +0 -0
  163. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_cluster_preferences.py +0 -0
  164. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_export.py +0 -0
  165. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_import.py +0 -0
  166. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance.py +0 -0
  167. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance_migration.py +0 -0
  168. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance_preset.py +0 -0
  169. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_instance_types.py +0 -0
  170. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
  171. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_preferences.py +0 -0
  172. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_restore.py +0 -0
  173. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_machine_snapshot.py +0 -0
  174. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/virtual_service.py +0 -0
  175. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/vm_import_config.py +0 -0
  176. {openshift_python_wrapper-10.0.55 → openshift_python_wrapper-10.0.58}/ocp_resources/volume_snapshot.py +0 -0
  177. {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.55
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 (>=29.0.0,<30.0.0)
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)
@@ -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
@@ -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 Any, Dict, List, get_logger, logging
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.55"
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 = "^29.0.0"
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"