kube-dsl 0.3.0 → 0.6.0

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 (693) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +293 -0
  4. data/Rakefile +28 -20
  5. data/lib/kube-dsl/array_field_res.rb +41 -0
  6. data/lib/kube-dsl/builder.rb +55 -42
  7. data/lib/kube-dsl/default_field_res.rb +28 -0
  8. data/lib/kube-dsl/dsl/admissionregistration/v1/mutating_webhook.rb +24 -6
  9. data/lib/kube-dsl/dsl/admissionregistration/v1/mutating_webhook_configuration.rb +5 -2
  10. data/lib/kube-dsl/dsl/admissionregistration/v1/mutating_webhook_configuration_list.rb +4 -1
  11. data/lib/kube-dsl/dsl/admissionregistration/v1/rule_with_operations.rb +11 -1
  12. data/lib/kube-dsl/dsl/admissionregistration/v1/service_reference.rb +9 -1
  13. data/lib/kube-dsl/dsl/admissionregistration/v1/validating_webhook.rb +22 -6
  14. data/lib/kube-dsl/dsl/admissionregistration/v1/validating_webhook_configuration.rb +5 -2
  15. data/lib/kube-dsl/dsl/admissionregistration/v1/validating_webhook_configuration_list.rb +4 -1
  16. data/lib/kube-dsl/dsl/admissionregistration/v1/webhook_client_config.rb +7 -2
  17. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/mutating_webhook.rb +24 -6
  18. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/mutating_webhook_configuration.rb +5 -2
  19. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/mutating_webhook_configuration_list.rb +4 -1
  20. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/rule_with_operations.rb +11 -1
  21. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/service_reference.rb +9 -1
  22. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/validating_webhook.rb +22 -6
  23. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/validating_webhook_configuration.rb +5 -2
  24. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/validating_webhook_configuration_list.rb +4 -1
  25. data/lib/kube-dsl/dsl/admissionregistration/v1beta1/webhook_client_config.rb +7 -2
  26. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_column_definition.rb +13 -1
  27. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_conversion.rb +4 -1
  28. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_definition.rb +4 -0
  29. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_definition_condition.rb +11 -1
  30. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_definition_list.rb +4 -1
  31. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_definition_names.rb +13 -1
  32. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_definition_spec.rb +13 -4
  33. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_definition_status.rb +8 -4
  34. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_definition_version.rb +12 -3
  35. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_subresource_scale.rb +7 -1
  36. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_subresources.rb +5 -2
  37. data/lib/kube-dsl/dsl/apiextensions/v1/custom_resource_validation.rb +2 -0
  38. data/lib/kube-dsl/dsl/apiextensions/v1/external_documentation.rb +5 -1
  39. data/lib/kube-dsl/dsl/apiextensions/v1/json_schema_props.rb +87 -17
  40. data/lib/kube-dsl/dsl/apiextensions/v1/service_reference.rb +9 -1
  41. data/lib/kube-dsl/dsl/apiextensions/v1/webhook_client_config.rb +7 -2
  42. data/lib/kube-dsl/dsl/apiextensions/v1/webhook_conversion.rb +5 -2
  43. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_column_definition.rb +13 -1
  44. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_conversion.rb +6 -1
  45. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_definition.rb +4 -0
  46. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_definition_condition.rb +11 -1
  47. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_definition_list.rb +4 -1
  48. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_definition_names.rb +13 -1
  49. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_definition_spec.rb +21 -7
  50. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_definition_status.rb +8 -4
  51. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_definition_version.rb +12 -3
  52. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_subresource_scale.rb +7 -1
  53. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_subresources.rb +5 -2
  54. data/lib/kube-dsl/dsl/apiextensions/v1beta1/custom_resource_validation.rb +2 -0
  55. data/lib/kube-dsl/dsl/apiextensions/v1beta1/external_documentation.rb +5 -1
  56. data/lib/kube-dsl/dsl/apiextensions/v1beta1/json_schema_props.rb +87 -17
  57. data/lib/kube-dsl/dsl/apiextensions/v1beta1/service_reference.rb +9 -1
  58. data/lib/kube-dsl/dsl/apiextensions/v1beta1/webhook_client_config.rb +7 -2
  59. data/lib/kube-dsl/dsl/apiregistration/v1/api_service.rb +4 -0
  60. data/lib/kube-dsl/dsl/apiregistration/v1/api_service_condition.rb +11 -1
  61. data/lib/kube-dsl/dsl/apiregistration/v1/api_service_list.rb +4 -1
  62. data/lib/kube-dsl/dsl/apiregistration/v1/api_service_spec.rb +15 -2
  63. data/lib/kube-dsl/dsl/apiregistration/v1/api_service_status.rb +2 -0
  64. data/lib/kube-dsl/dsl/apiregistration/v1/service_reference.rb +7 -1
  65. data/lib/kube-dsl/dsl/apiregistration/v1beta1/api_service.rb +4 -0
  66. data/lib/kube-dsl/dsl/apiregistration/v1beta1/api_service_condition.rb +11 -1
  67. data/lib/kube-dsl/dsl/apiregistration/v1beta1/api_service_list.rb +4 -1
  68. data/lib/kube-dsl/dsl/apiregistration/v1beta1/api_service_spec.rb +15 -2
  69. data/lib/kube-dsl/dsl/apiregistration/v1beta1/api_service_status.rb +2 -0
  70. data/lib/kube-dsl/dsl/apiregistration/v1beta1/service_reference.rb +7 -1
  71. data/lib/kube-dsl/dsl/apps/v1/controller_revision.rb +8 -3
  72. data/lib/kube-dsl/dsl/apps/v1/controller_revision_list.rb +4 -1
  73. data/lib/kube-dsl/dsl/apps/v1/daemon_set.rb +4 -0
  74. data/lib/kube-dsl/dsl/apps/v1/daemon_set_condition.rb +11 -1
  75. data/lib/kube-dsl/dsl/apps/v1/daemon_set_list.rb +4 -1
  76. data/lib/kube-dsl/dsl/apps/v1/daemon_set_spec.rb +8 -1
  77. data/lib/kube-dsl/dsl/apps/v1/daemon_set_status.rb +21 -2
  78. data/lib/kube-dsl/dsl/apps/v1/daemon_set_update_strategy.rb +5 -2
  79. data/lib/kube-dsl/dsl/apps/v1/deployment.rb +4 -0
  80. data/lib/kube-dsl/dsl/apps/v1/deployment_condition.rb +13 -1
  81. data/lib/kube-dsl/dsl/apps/v1/deployment_list.rb +4 -1
  82. data/lib/kube-dsl/dsl/apps/v1/deployment_spec.rb +14 -1
  83. data/lib/kube-dsl/dsl/apps/v1/deployment_status.rb +17 -2
  84. data/lib/kube-dsl/dsl/apps/v1/deployment_strategy.rb +5 -2
  85. data/lib/kube-dsl/dsl/apps/v1/replica_set.rb +4 -0
  86. data/lib/kube-dsl/dsl/apps/v1/replica_set_condition.rb +11 -1
  87. data/lib/kube-dsl/dsl/apps/v1/replica_set_list.rb +4 -1
  88. data/lib/kube-dsl/dsl/apps/v1/replica_set_spec.rb +7 -1
  89. data/lib/kube-dsl/dsl/apps/v1/replica_set_status.rb +13 -2
  90. data/lib/kube-dsl/dsl/apps/v1/rolling_update_daemon_set.rb +3 -1
  91. data/lib/kube-dsl/dsl/apps/v1/rolling_update_deployment.rb +5 -1
  92. data/lib/kube-dsl/dsl/apps/v1/rolling_update_stateful_set_strategy.rb +3 -1
  93. data/lib/kube-dsl/dsl/apps/v1/stateful_set.rb +4 -0
  94. data/lib/kube-dsl/dsl/apps/v1/stateful_set_condition.rb +11 -1
  95. data/lib/kube-dsl/dsl/apps/v1/stateful_set_list.rb +4 -1
  96. data/lib/kube-dsl/dsl/apps/v1/stateful_set_spec.rb +16 -4
  97. data/lib/kube-dsl/dsl/apps/v1/stateful_set_status.rb +19 -2
  98. data/lib/kube-dsl/dsl/apps/v1/stateful_set_update_strategy.rb +5 -2
  99. data/lib/kube-dsl/dsl/apps/v1beta1/controller_revision.rb +8 -3
  100. data/lib/kube-dsl/dsl/apps/v1beta1/controller_revision_list.rb +4 -1
  101. data/lib/kube-dsl/dsl/apps/v1beta1/deployment.rb +4 -0
  102. data/lib/kube-dsl/dsl/apps/v1beta1/deployment_condition.rb +13 -1
  103. data/lib/kube-dsl/dsl/apps/v1beta1/deployment_list.rb +4 -1
  104. data/lib/kube-dsl/dsl/apps/v1beta1/deployment_rollback.rb +5 -1
  105. data/lib/kube-dsl/dsl/apps/v1beta1/deployment_spec.rb +15 -1
  106. data/lib/kube-dsl/dsl/apps/v1beta1/deployment_status.rb +17 -2
  107. data/lib/kube-dsl/dsl/apps/v1beta1/deployment_strategy.rb +5 -2
  108. data/lib/kube-dsl/dsl/apps/v1beta1/rollback_config.rb +3 -1
  109. data/lib/kube-dsl/dsl/apps/v1beta1/rolling_update_deployment.rb +5 -1
  110. data/lib/kube-dsl/dsl/apps/v1beta1/rolling_update_stateful_set_strategy.rb +3 -1
  111. data/lib/kube-dsl/dsl/apps/v1beta1/scale.rb +4 -0
  112. data/lib/kube-dsl/dsl/apps/v1beta1/scale_spec.rb +3 -1
  113. data/lib/kube-dsl/dsl/apps/v1beta1/scale_status.rb +7 -2
  114. data/lib/kube-dsl/dsl/apps/v1beta1/stateful_set.rb +4 -0
  115. data/lib/kube-dsl/dsl/apps/v1beta1/stateful_set_condition.rb +11 -1
  116. data/lib/kube-dsl/dsl/apps/v1beta1/stateful_set_list.rb +4 -1
  117. data/lib/kube-dsl/dsl/apps/v1beta1/stateful_set_spec.rb +16 -4
  118. data/lib/kube-dsl/dsl/apps/v1beta1/stateful_set_status.rb +19 -2
  119. data/lib/kube-dsl/dsl/apps/v1beta1/stateful_set_update_strategy.rb +5 -2
  120. data/lib/kube-dsl/dsl/apps/v1beta2/controller_revision.rb +8 -3
  121. data/lib/kube-dsl/dsl/apps/v1beta2/controller_revision_list.rb +4 -1
  122. data/lib/kube-dsl/dsl/apps/v1beta2/daemon_set.rb +4 -0
  123. data/lib/kube-dsl/dsl/apps/v1beta2/daemon_set_condition.rb +11 -1
  124. data/lib/kube-dsl/dsl/apps/v1beta2/daemon_set_list.rb +4 -1
  125. data/lib/kube-dsl/dsl/apps/v1beta2/daemon_set_spec.rb +8 -1
  126. data/lib/kube-dsl/dsl/apps/v1beta2/daemon_set_status.rb +21 -2
  127. data/lib/kube-dsl/dsl/apps/v1beta2/daemon_set_update_strategy.rb +5 -2
  128. data/lib/kube-dsl/dsl/apps/v1beta2/deployment.rb +4 -0
  129. data/lib/kube-dsl/dsl/apps/v1beta2/deployment_condition.rb +13 -1
  130. data/lib/kube-dsl/dsl/apps/v1beta2/deployment_list.rb +4 -1
  131. data/lib/kube-dsl/dsl/apps/v1beta2/deployment_spec.rb +14 -1
  132. data/lib/kube-dsl/dsl/apps/v1beta2/deployment_status.rb +17 -2
  133. data/lib/kube-dsl/dsl/apps/v1beta2/deployment_strategy.rb +5 -2
  134. data/lib/kube-dsl/dsl/apps/v1beta2/replica_set.rb +4 -0
  135. data/lib/kube-dsl/dsl/apps/v1beta2/replica_set_condition.rb +11 -1
  136. data/lib/kube-dsl/dsl/apps/v1beta2/replica_set_list.rb +4 -1
  137. data/lib/kube-dsl/dsl/apps/v1beta2/replica_set_spec.rb +7 -1
  138. data/lib/kube-dsl/dsl/apps/v1beta2/replica_set_status.rb +13 -2
  139. data/lib/kube-dsl/dsl/apps/v1beta2/rolling_update_daemon_set.rb +3 -1
  140. data/lib/kube-dsl/dsl/apps/v1beta2/rolling_update_deployment.rb +5 -1
  141. data/lib/kube-dsl/dsl/apps/v1beta2/rolling_update_stateful_set_strategy.rb +3 -1
  142. data/lib/kube-dsl/dsl/apps/v1beta2/scale.rb +4 -0
  143. data/lib/kube-dsl/dsl/apps/v1beta2/scale_spec.rb +3 -1
  144. data/lib/kube-dsl/dsl/apps/v1beta2/scale_status.rb +7 -2
  145. data/lib/kube-dsl/dsl/apps/v1beta2/stateful_set.rb +4 -0
  146. data/lib/kube-dsl/dsl/apps/v1beta2/stateful_set_condition.rb +11 -1
  147. data/lib/kube-dsl/dsl/apps/v1beta2/stateful_set_list.rb +4 -1
  148. data/lib/kube-dsl/dsl/apps/v1beta2/stateful_set_spec.rb +16 -4
  149. data/lib/kube-dsl/dsl/apps/v1beta2/stateful_set_status.rb +19 -2
  150. data/lib/kube-dsl/dsl/apps/v1beta2/stateful_set_update_strategy.rb +5 -2
  151. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/audit_sink.rb +3 -0
  152. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/audit_sink_list.rb +4 -1
  153. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/audit_sink_spec.rb +3 -0
  154. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/policy.rb +5 -1
  155. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/service_reference.rb +9 -1
  156. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/webhook.rb +3 -0
  157. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/webhook_client_config.rb +7 -2
  158. data/lib/kube-dsl/dsl/auditregistration/v1alpha1/webhook_throttle_config.rb +5 -1
  159. data/lib/kube-dsl/dsl/authentication/v1/bound_object_reference.rb +9 -1
  160. data/lib/kube-dsl/dsl/authentication/v1/token_request.rb +4 -0
  161. data/lib/kube-dsl/dsl/authentication/v1/token_request_spec.rb +7 -2
  162. data/lib/kube-dsl/dsl/authentication/v1/token_request_status.rb +5 -1
  163. data/lib/kube-dsl/dsl/authentication/v1/token_review.rb +4 -0
  164. data/lib/kube-dsl/dsl/authentication/v1/token_review_spec.rb +5 -1
  165. data/lib/kube-dsl/dsl/authentication/v1/token_review_status.rb +8 -1
  166. data/lib/kube-dsl/dsl/authentication/v1/user_info.rb +9 -2
  167. data/lib/kube-dsl/dsl/authentication/v1beta1/token_review.rb +4 -0
  168. data/lib/kube-dsl/dsl/authentication/v1beta1/token_review_spec.rb +5 -1
  169. data/lib/kube-dsl/dsl/authentication/v1beta1/token_review_status.rb +8 -1
  170. data/lib/kube-dsl/dsl/authentication/v1beta1/user_info.rb +9 -2
  171. data/lib/kube-dsl/dsl/authorization/v1/local_subject_access_review.rb +4 -0
  172. data/lib/kube-dsl/dsl/authorization/v1/non_resource_attributes.rb +5 -1
  173. data/lib/kube-dsl/dsl/authorization/v1/non_resource_rule.rb +5 -1
  174. data/lib/kube-dsl/dsl/authorization/v1/resource_attributes.rb +15 -1
  175. data/lib/kube-dsl/dsl/authorization/v1/resource_rule.rb +9 -1
  176. data/lib/kube-dsl/dsl/authorization/v1/self_subject_access_review.rb +4 -0
  177. data/lib/kube-dsl/dsl/authorization/v1/self_subject_access_review_spec.rb +3 -0
  178. data/lib/kube-dsl/dsl/authorization/v1/self_subject_rules_review.rb +4 -0
  179. data/lib/kube-dsl/dsl/authorization/v1/self_subject_rules_review_spec.rb +3 -1
  180. data/lib/kube-dsl/dsl/authorization/v1/subject_access_review.rb +4 -0
  181. data/lib/kube-dsl/dsl/authorization/v1/subject_access_review_spec.rb +14 -5
  182. data/lib/kube-dsl/dsl/authorization/v1/subject_access_review_status.rb +9 -1
  183. data/lib/kube-dsl/dsl/authorization/v1/subject_rules_review_status.rb +7 -1
  184. data/lib/kube-dsl/dsl/authorization/v1beta1/local_subject_access_review.rb +4 -0
  185. data/lib/kube-dsl/dsl/authorization/v1beta1/non_resource_attributes.rb +5 -1
  186. data/lib/kube-dsl/dsl/authorization/v1beta1/non_resource_rule.rb +5 -1
  187. data/lib/kube-dsl/dsl/authorization/v1beta1/resource_attributes.rb +15 -1
  188. data/lib/kube-dsl/dsl/authorization/v1beta1/resource_rule.rb +9 -1
  189. data/lib/kube-dsl/dsl/authorization/v1beta1/self_subject_access_review.rb +4 -0
  190. data/lib/kube-dsl/dsl/authorization/v1beta1/self_subject_access_review_spec.rb +3 -0
  191. data/lib/kube-dsl/dsl/authorization/v1beta1/self_subject_rules_review.rb +4 -0
  192. data/lib/kube-dsl/dsl/authorization/v1beta1/self_subject_rules_review_spec.rb +3 -1
  193. data/lib/kube-dsl/dsl/authorization/v1beta1/subject_access_review.rb +4 -0
  194. data/lib/kube-dsl/dsl/authorization/v1beta1/subject_access_review_spec.rb +14 -5
  195. data/lib/kube-dsl/dsl/authorization/v1beta1/subject_access_review_status.rb +9 -1
  196. data/lib/kube-dsl/dsl/authorization/v1beta1/subject_rules_review_status.rb +7 -1
  197. data/lib/kube-dsl/dsl/autoscaling/v1/cross_version_object_reference.rb +7 -1
  198. data/lib/kube-dsl/dsl/autoscaling/v1/horizontal_pod_autoscaler.rb +4 -0
  199. data/lib/kube-dsl/dsl/autoscaling/v1/horizontal_pod_autoscaler_list.rb +4 -1
  200. data/lib/kube-dsl/dsl/autoscaling/v1/horizontal_pod_autoscaler_spec.rb +9 -2
  201. data/lib/kube-dsl/dsl/autoscaling/v1/horizontal_pod_autoscaler_status.rb +11 -1
  202. data/lib/kube-dsl/dsl/autoscaling/v1/scale.rb +4 -0
  203. data/lib/kube-dsl/dsl/autoscaling/v1/scale_spec.rb +3 -1
  204. data/lib/kube-dsl/dsl/autoscaling/v1/scale_status.rb +5 -1
  205. data/lib/kube-dsl/dsl/autoscaling/v2beta1/cross_version_object_reference.rb +7 -1
  206. data/lib/kube-dsl/dsl/autoscaling/v2beta1/external_metric_source.rb +9 -2
  207. data/lib/kube-dsl/dsl/autoscaling/v2beta1/external_metric_status.rb +8 -1
  208. data/lib/kube-dsl/dsl/autoscaling/v2beta1/horizontal_pod_autoscaler.rb +4 -0
  209. data/lib/kube-dsl/dsl/autoscaling/v2beta1/horizontal_pod_autoscaler_condition.rb +11 -1
  210. data/lib/kube-dsl/dsl/autoscaling/v2beta1/horizontal_pod_autoscaler_list.rb +4 -1
  211. data/lib/kube-dsl/dsl/autoscaling/v2beta1/horizontal_pod_autoscaler_spec.rb +8 -2
  212. data/lib/kube-dsl/dsl/autoscaling/v2beta1/horizontal_pod_autoscaler_status.rb +13 -3
  213. data/lib/kube-dsl/dsl/autoscaling/v2beta1/metric_spec.rb +8 -2
  214. data/lib/kube-dsl/dsl/autoscaling/v2beta1/metric_status.rb +8 -2
  215. data/lib/kube-dsl/dsl/autoscaling/v2beta1/object_metric_source.rb +10 -2
  216. data/lib/kube-dsl/dsl/autoscaling/v2beta1/object_metric_status.rb +9 -1
  217. data/lib/kube-dsl/dsl/autoscaling/v2beta1/pods_metric_source.rb +7 -2
  218. data/lib/kube-dsl/dsl/autoscaling/v2beta1/pods_metric_status.rb +6 -1
  219. data/lib/kube-dsl/dsl/autoscaling/v2beta1/resource_metric_source.rb +7 -1
  220. data/lib/kube-dsl/dsl/autoscaling/v2beta1/resource_metric_status.rb +7 -1
  221. data/lib/kube-dsl/dsl/autoscaling/v2beta2/cross_version_object_reference.rb +7 -1
  222. data/lib/kube-dsl/dsl/autoscaling/v2beta2/external_metric_source.rb +3 -0
  223. data/lib/kube-dsl/dsl/autoscaling/v2beta2/external_metric_status.rb +3 -0
  224. data/lib/kube-dsl/dsl/autoscaling/v2beta2/horizontal_pod_autoscaler.rb +4 -0
  225. data/lib/kube-dsl/dsl/autoscaling/v2beta2/horizontal_pod_autoscaler_condition.rb +11 -1
  226. data/lib/kube-dsl/dsl/autoscaling/v2beta2/horizontal_pod_autoscaler_list.rb +4 -1
  227. data/lib/kube-dsl/dsl/autoscaling/v2beta2/horizontal_pod_autoscaler_spec.rb +8 -2
  228. data/lib/kube-dsl/dsl/autoscaling/v2beta2/horizontal_pod_autoscaler_status.rb +13 -3
  229. data/lib/kube-dsl/dsl/autoscaling/v2beta2/metric_identifier.rb +4 -1
  230. data/lib/kube-dsl/dsl/autoscaling/v2beta2/metric_spec.rb +8 -2
  231. data/lib/kube-dsl/dsl/autoscaling/v2beta2/metric_status.rb +8 -2
  232. data/lib/kube-dsl/dsl/autoscaling/v2beta2/metric_target.rb +9 -1
  233. data/lib/kube-dsl/dsl/autoscaling/v2beta2/metric_value_status.rb +7 -1
  234. data/lib/kube-dsl/dsl/autoscaling/v2beta2/object_metric_source.rb +4 -0
  235. data/lib/kube-dsl/dsl/autoscaling/v2beta2/object_metric_status.rb +4 -0
  236. data/lib/kube-dsl/dsl/autoscaling/v2beta2/pods_metric_source.rb +3 -0
  237. data/lib/kube-dsl/dsl/autoscaling/v2beta2/pods_metric_status.rb +3 -0
  238. data/lib/kube-dsl/dsl/autoscaling/v2beta2/resource_metric_source.rb +4 -1
  239. data/lib/kube-dsl/dsl/autoscaling/v2beta2/resource_metric_status.rb +5 -2
  240. data/lib/kube-dsl/dsl/batch/v1/job.rb +4 -0
  241. data/lib/kube-dsl/dsl/batch/v1/job_condition.rb +13 -1
  242. data/lib/kube-dsl/dsl/batch/v1/job_list.rb +4 -1
  243. data/lib/kube-dsl/dsl/batch/v1/job_spec.rb +16 -2
  244. data/lib/kube-dsl/dsl/batch/v1/job_status.rb +13 -2
  245. data/lib/kube-dsl/dsl/batch/v1beta1/cron_job.rb +4 -0
  246. data/lib/kube-dsl/dsl/batch/v1beta1/cron_job_list.rb +4 -1
  247. data/lib/kube-dsl/dsl/batch/v1beta1/cron_job_spec.rb +15 -2
  248. data/lib/kube-dsl/dsl/batch/v1beta1/cron_job_status.rb +5 -2
  249. data/lib/kube-dsl/dsl/batch/v1beta1/job_template_spec.rb +3 -0
  250. data/lib/kube-dsl/dsl/batch/v2alpha1/cron_job.rb +4 -0
  251. data/lib/kube-dsl/dsl/batch/v2alpha1/cron_job_list.rb +4 -1
  252. data/lib/kube-dsl/dsl/batch/v2alpha1/cron_job_spec.rb +15 -2
  253. data/lib/kube-dsl/dsl/batch/v2alpha1/cron_job_status.rb +5 -2
  254. data/lib/kube-dsl/dsl/batch/v2alpha1/job_template_spec.rb +3 -0
  255. data/lib/kube-dsl/dsl/certificates/v1beta1/certificate_signing_request.rb +4 -0
  256. data/lib/kube-dsl/dsl/certificates/v1beta1/certificate_signing_request_condition.rb +9 -1
  257. data/lib/kube-dsl/dsl/certificates/v1beta1/certificate_signing_request_list.rb +4 -1
  258. data/lib/kube-dsl/dsl/certificates/v1beta1/certificate_signing_request_spec.rb +13 -2
  259. data/lib/kube-dsl/dsl/certificates/v1beta1/certificate_signing_request_status.rb +4 -1
  260. data/lib/kube-dsl/dsl/coordination/v1/lease.rb +3 -0
  261. data/lib/kube-dsl/dsl/coordination/v1/lease_list.rb +4 -1
  262. data/lib/kube-dsl/dsl/coordination/v1/lease_spec.rb +11 -1
  263. data/lib/kube-dsl/dsl/coordination/v1beta1/lease.rb +3 -0
  264. data/lib/kube-dsl/dsl/coordination/v1beta1/lease_list.rb +4 -1
  265. data/lib/kube-dsl/dsl/coordination/v1beta1/lease_spec.rb +11 -1
  266. data/lib/kube-dsl/dsl/discovery/v1beta1/endpoint.rb +9 -2
  267. data/lib/kube-dsl/dsl/discovery/v1beta1/endpoint_conditions.rb +3 -1
  268. data/lib/kube-dsl/dsl/discovery/v1beta1/endpoint_port.rb +9 -1
  269. data/lib/kube-dsl/dsl/discovery/v1beta1/endpoint_slice.rb +10 -5
  270. data/lib/kube-dsl/dsl/discovery/v1beta1/endpoint_slice_list.rb +4 -1
  271. data/lib/kube-dsl/dsl/events/v1beta1/event.rb +33 -8
  272. data/lib/kube-dsl/dsl/events/v1beta1/event_list.rb +4 -1
  273. data/lib/kube-dsl/dsl/events/v1beta1/event_series.rb +7 -1
  274. data/lib/kube-dsl/dsl/extensions/v1beta1/allowed_csi_driver.rb +3 -1
  275. data/lib/kube-dsl/dsl/extensions/v1beta1/allowed_flex_volume.rb +3 -1
  276. data/lib/kube-dsl/dsl/extensions/v1beta1/allowed_host_path.rb +5 -1
  277. data/lib/kube-dsl/dsl/extensions/v1beta1/daemon_set.rb +4 -0
  278. data/lib/kube-dsl/dsl/extensions/v1beta1/daemon_set_condition.rb +11 -1
  279. data/lib/kube-dsl/dsl/extensions/v1beta1/daemon_set_list.rb +4 -1
  280. data/lib/kube-dsl/dsl/extensions/v1beta1/daemon_set_spec.rb +11 -2
  281. data/lib/kube-dsl/dsl/extensions/v1beta1/daemon_set_status.rb +21 -2
  282. data/lib/kube-dsl/dsl/extensions/v1beta1/daemon_set_update_strategy.rb +5 -2
  283. data/lib/kube-dsl/dsl/extensions/v1beta1/deployment.rb +4 -0
  284. data/lib/kube-dsl/dsl/extensions/v1beta1/deployment_condition.rb +13 -1
  285. data/lib/kube-dsl/dsl/extensions/v1beta1/deployment_list.rb +4 -1
  286. data/lib/kube-dsl/dsl/extensions/v1beta1/deployment_rollback.rb +5 -1
  287. data/lib/kube-dsl/dsl/extensions/v1beta1/deployment_spec.rb +15 -1
  288. data/lib/kube-dsl/dsl/extensions/v1beta1/deployment_status.rb +17 -2
  289. data/lib/kube-dsl/dsl/extensions/v1beta1/deployment_strategy.rb +5 -2
  290. data/lib/kube-dsl/dsl/extensions/v1beta1/fs_group_strategy_options.rb +5 -2
  291. data/lib/kube-dsl/dsl/extensions/v1beta1/host_port_range.rb +5 -1
  292. data/lib/kube-dsl/dsl/extensions/v1beta1/http_ingress_path.rb +5 -2
  293. data/lib/kube-dsl/dsl/extensions/v1beta1/http_ingress_rule_value.rb +2 -0
  294. data/lib/kube-dsl/dsl/extensions/v1beta1/id_range.rb +5 -1
  295. data/lib/kube-dsl/dsl/extensions/v1beta1/ingress.rb +4 -0
  296. data/lib/kube-dsl/dsl/extensions/v1beta1/ingress_backend.rb +5 -1
  297. data/lib/kube-dsl/dsl/extensions/v1beta1/ingress_list.rb +4 -1
  298. data/lib/kube-dsl/dsl/extensions/v1beta1/ingress_rule.rb +4 -1
  299. data/lib/kube-dsl/dsl/extensions/v1beta1/ingress_spec.rb +6 -2
  300. data/lib/kube-dsl/dsl/extensions/v1beta1/ingress_status.rb +2 -0
  301. data/lib/kube-dsl/dsl/extensions/v1beta1/ingress_tls.rb +5 -1
  302. data/lib/kube-dsl/dsl/extensions/v1beta1/ip_block.rb +5 -1
  303. data/lib/kube-dsl/dsl/extensions/v1beta1/network_policy.rb +3 -0
  304. data/lib/kube-dsl/dsl/extensions/v1beta1/network_policy_egress_rule.rb +3 -0
  305. data/lib/kube-dsl/dsl/extensions/v1beta1/network_policy_ingress_rule.rb +3 -0
  306. data/lib/kube-dsl/dsl/extensions/v1beta1/network_policy_list.rb +4 -1
  307. data/lib/kube-dsl/dsl/extensions/v1beta1/network_policy_peer.rb +4 -0
  308. data/lib/kube-dsl/dsl/extensions/v1beta1/network_policy_port.rb +5 -1
  309. data/lib/kube-dsl/dsl/extensions/v1beta1/network_policy_spec.rb +7 -2
  310. data/lib/kube-dsl/dsl/extensions/v1beta1/pod_security_policy.rb +3 -0
  311. data/lib/kube-dsl/dsl/extensions/v1beta1/pod_security_policy_list.rb +4 -1
  312. data/lib/kube-dsl/dsl/extensions/v1beta1/pod_security_policy_spec.rb +46 -8
  313. data/lib/kube-dsl/dsl/extensions/v1beta1/replica_set.rb +4 -0
  314. data/lib/kube-dsl/dsl/extensions/v1beta1/replica_set_condition.rb +11 -1
  315. data/lib/kube-dsl/dsl/extensions/v1beta1/replica_set_list.rb +4 -1
  316. data/lib/kube-dsl/dsl/extensions/v1beta1/replica_set_spec.rb +7 -1
  317. data/lib/kube-dsl/dsl/extensions/v1beta1/replica_set_status.rb +13 -2
  318. data/lib/kube-dsl/dsl/extensions/v1beta1/rollback_config.rb +3 -1
  319. data/lib/kube-dsl/dsl/extensions/v1beta1/rolling_update_daemon_set.rb +3 -1
  320. data/lib/kube-dsl/dsl/extensions/v1beta1/rolling_update_deployment.rb +5 -1
  321. data/lib/kube-dsl/dsl/extensions/v1beta1/run_as_group_strategy_options.rb +5 -2
  322. data/lib/kube-dsl/dsl/extensions/v1beta1/run_as_user_strategy_options.rb +5 -2
  323. data/lib/kube-dsl/dsl/extensions/v1beta1/runtime_class_strategy_options.rb +5 -1
  324. data/lib/kube-dsl/dsl/extensions/v1beta1/scale.rb +4 -0
  325. data/lib/kube-dsl/dsl/extensions/v1beta1/scale_spec.rb +3 -1
  326. data/lib/kube-dsl/dsl/extensions/v1beta1/scale_status.rb +7 -2
  327. data/lib/kube-dsl/dsl/extensions/v1beta1/se_linux_strategy_options.rb +4 -1
  328. data/lib/kube-dsl/dsl/extensions/v1beta1/supplemental_groups_strategy_options.rb +5 -2
  329. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/flow_distinguisher_method.rb +3 -1
  330. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/flow_schema.rb +4 -0
  331. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/flow_schema_condition.rb +11 -1
  332. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/flow_schema_list.rb +4 -1
  333. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/flow_schema_spec.rb +9 -4
  334. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/flow_schema_status.rb +2 -0
  335. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/group_subject.rb +3 -1
  336. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/limit_response.rb +5 -2
  337. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/limited_priority_level_configuration.rb +4 -1
  338. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/non_resource_policy_rule.rb +5 -1
  339. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/policy_rules_with_subjects.rb +4 -0
  340. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/priority_level_configuration.rb +4 -0
  341. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/priority_level_configuration_condition.rb +11 -1
  342. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/priority_level_configuration_list.rb +4 -1
  343. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/priority_level_configuration_reference.rb +3 -1
  344. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/priority_level_configuration_spec.rb +5 -2
  345. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/priority_level_configuration_status.rb +2 -0
  346. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/queuing_configuration.rb +7 -1
  347. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/resource_policy_rule.rb +11 -1
  348. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/service_account_subject.rb +5 -1
  349. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/subject.rb +7 -2
  350. data/lib/kube-dsl/dsl/flowcontrol/v1alpha1/user_subject.rb +3 -1
  351. data/lib/kube-dsl/dsl/meta/v1/api_group.rb +8 -3
  352. data/lib/kube-dsl/dsl/meta/v1/api_group_list.rb +3 -1
  353. data/lib/kube-dsl/dsl/meta/v1/api_resource.rb +21 -1
  354. data/lib/kube-dsl/dsl/meta/v1/api_resource_list.rb +5 -2
  355. data/lib/kube-dsl/dsl/meta/v1/api_versions.rb +5 -2
  356. data/lib/kube-dsl/dsl/meta/v1/delete_options.rb +14 -3
  357. data/lib/kube-dsl/dsl/meta/v1/group_version_for_discovery.rb +5 -1
  358. data/lib/kube-dsl/dsl/meta/v1/label_selector.rb +3 -0
  359. data/lib/kube-dsl/dsl/meta/v1/label_selector_requirement.rb +7 -1
  360. data/lib/kube-dsl/dsl/meta/v1/list_meta.rb +9 -1
  361. data/lib/kube-dsl/dsl/meta/v1/managed_fields_entry.rb +13 -1
  362. data/lib/kube-dsl/dsl/meta/v1/object_meta.rb +35 -7
  363. data/lib/kube-dsl/dsl/meta/v1/owner_reference.rb +13 -1
  364. data/lib/kube-dsl/dsl/meta/v1/preconditions.rb +5 -1
  365. data/lib/kube-dsl/dsl/meta/v1/server_address_by_client_cidr.rb +5 -1
  366. data/lib/kube-dsl/dsl/meta/v1/status.rb +14 -4
  367. data/lib/kube-dsl/dsl/meta/v1/status_cause.rb +7 -1
  368. data/lib/kube-dsl/dsl/meta/v1/status_details.rb +13 -2
  369. data/lib/kube-dsl/dsl/meta/v1/watch_event.rb +5 -1
  370. data/lib/kube-dsl/dsl/networking/v1/ip_block.rb +5 -1
  371. data/lib/kube-dsl/dsl/networking/v1/network_policy.rb +3 -0
  372. data/lib/kube-dsl/dsl/networking/v1/network_policy_egress_rule.rb +3 -0
  373. data/lib/kube-dsl/dsl/networking/v1/network_policy_ingress_rule.rb +3 -0
  374. data/lib/kube-dsl/dsl/networking/v1/network_policy_list.rb +4 -1
  375. data/lib/kube-dsl/dsl/networking/v1/network_policy_peer.rb +4 -0
  376. data/lib/kube-dsl/dsl/networking/v1/network_policy_port.rb +5 -1
  377. data/lib/kube-dsl/dsl/networking/v1/network_policy_spec.rb +7 -2
  378. data/lib/kube-dsl/dsl/networking/v1beta1/http_ingress_path.rb +5 -2
  379. data/lib/kube-dsl/dsl/networking/v1beta1/http_ingress_rule_value.rb +2 -0
  380. data/lib/kube-dsl/dsl/networking/v1beta1/ingress.rb +4 -0
  381. data/lib/kube-dsl/dsl/networking/v1beta1/ingress_backend.rb +5 -1
  382. data/lib/kube-dsl/dsl/networking/v1beta1/ingress_list.rb +4 -1
  383. data/lib/kube-dsl/dsl/networking/v1beta1/ingress_rule.rb +4 -1
  384. data/lib/kube-dsl/dsl/networking/v1beta1/ingress_spec.rb +6 -2
  385. data/lib/kube-dsl/dsl/networking/v1beta1/ingress_status.rb +2 -0
  386. data/lib/kube-dsl/dsl/networking/v1beta1/ingress_tls.rb +5 -1
  387. data/lib/kube-dsl/dsl/node/v1alpha1/overhead.rb +2 -0
  388. data/lib/kube-dsl/dsl/node/v1alpha1/runtime_class.rb +3 -0
  389. data/lib/kube-dsl/dsl/node/v1alpha1/runtime_class_list.rb +4 -1
  390. data/lib/kube-dsl/dsl/node/v1alpha1/runtime_class_spec.rb +6 -2
  391. data/lib/kube-dsl/dsl/node/v1alpha1/scheduling.rb +5 -2
  392. data/lib/kube-dsl/dsl/node/v1beta1/overhead.rb +2 -0
  393. data/lib/kube-dsl/dsl/node/v1beta1/runtime_class.rb +7 -2
  394. data/lib/kube-dsl/dsl/node/v1beta1/runtime_class_list.rb +4 -1
  395. data/lib/kube-dsl/dsl/node/v1beta1/scheduling.rb +5 -2
  396. data/lib/kube-dsl/dsl/pkg/version/info.rb +19 -1
  397. data/lib/kube-dsl/dsl/policy/v1beta1/allowed_csi_driver.rb +3 -1
  398. data/lib/kube-dsl/dsl/policy/v1beta1/allowed_flex_volume.rb +3 -1
  399. data/lib/kube-dsl/dsl/policy/v1beta1/allowed_host_path.rb +5 -1
  400. data/lib/kube-dsl/dsl/policy/v1beta1/eviction.rb +4 -1
  401. data/lib/kube-dsl/dsl/policy/v1beta1/fs_group_strategy_options.rb +5 -2
  402. data/lib/kube-dsl/dsl/policy/v1beta1/host_port_range.rb +5 -1
  403. data/lib/kube-dsl/dsl/policy/v1beta1/id_range.rb +5 -1
  404. data/lib/kube-dsl/dsl/policy/v1beta1/pod_disruption_budget.rb +4 -0
  405. data/lib/kube-dsl/dsl/policy/v1beta1/pod_disruption_budget_list.rb +4 -1
  406. data/lib/kube-dsl/dsl/policy/v1beta1/pod_disruption_budget_spec.rb +6 -1
  407. data/lib/kube-dsl/dsl/policy/v1beta1/pod_disruption_budget_status.rb +13 -2
  408. data/lib/kube-dsl/dsl/policy/v1beta1/pod_security_policy.rb +3 -0
  409. data/lib/kube-dsl/dsl/policy/v1beta1/pod_security_policy_list.rb +4 -1
  410. data/lib/kube-dsl/dsl/policy/v1beta1/pod_security_policy_spec.rb +46 -8
  411. data/lib/kube-dsl/dsl/policy/v1beta1/run_as_group_strategy_options.rb +5 -2
  412. data/lib/kube-dsl/dsl/policy/v1beta1/run_as_user_strategy_options.rb +5 -2
  413. data/lib/kube-dsl/dsl/policy/v1beta1/runtime_class_strategy_options.rb +5 -1
  414. data/lib/kube-dsl/dsl/policy/v1beta1/se_linux_strategy_options.rb +4 -1
  415. data/lib/kube-dsl/dsl/policy/v1beta1/supplemental_groups_strategy_options.rb +5 -2
  416. data/lib/kube-dsl/dsl/rbac/v1/aggregation_rule.rb +2 -0
  417. data/lib/kube-dsl/dsl/rbac/v1/cluster_role.rb +7 -3
  418. data/lib/kube-dsl/dsl/rbac/v1/cluster_role_binding.rb +6 -2
  419. data/lib/kube-dsl/dsl/rbac/v1/cluster_role_binding_list.rb +4 -1
  420. data/lib/kube-dsl/dsl/rbac/v1/cluster_role_list.rb +4 -1
  421. data/lib/kube-dsl/dsl/rbac/v1/policy_rule.rb +11 -1
  422. data/lib/kube-dsl/dsl/rbac/v1/role.rb +5 -2
  423. data/lib/kube-dsl/dsl/rbac/v1/role_binding.rb +6 -2
  424. data/lib/kube-dsl/dsl/rbac/v1/role_binding_list.rb +4 -1
  425. data/lib/kube-dsl/dsl/rbac/v1/role_list.rb +4 -1
  426. data/lib/kube-dsl/dsl/rbac/v1/role_ref.rb +7 -1
  427. data/lib/kube-dsl/dsl/rbac/v1/subject.rb +9 -1
  428. data/lib/kube-dsl/dsl/rbac/v1alpha1/aggregation_rule.rb +2 -0
  429. data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role.rb +7 -3
  430. data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role_binding.rb +6 -2
  431. data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role_binding_list.rb +4 -1
  432. data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role_list.rb +4 -1
  433. data/lib/kube-dsl/dsl/rbac/v1alpha1/policy_rule.rb +11 -1
  434. data/lib/kube-dsl/dsl/rbac/v1alpha1/role.rb +5 -2
  435. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_binding.rb +6 -2
  436. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_binding_list.rb +4 -1
  437. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_list.rb +4 -1
  438. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_ref.rb +7 -1
  439. data/lib/kube-dsl/dsl/rbac/v1alpha1/subject.rb +9 -1
  440. data/lib/kube-dsl/dsl/rbac/v1beta1/aggregation_rule.rb +2 -0
  441. data/lib/kube-dsl/dsl/rbac/v1beta1/cluster_role.rb +7 -3
  442. data/lib/kube-dsl/dsl/rbac/v1beta1/cluster_role_binding.rb +6 -2
  443. data/lib/kube-dsl/dsl/rbac/v1beta1/cluster_role_binding_list.rb +4 -1
  444. data/lib/kube-dsl/dsl/rbac/v1beta1/cluster_role_list.rb +4 -1
  445. data/lib/kube-dsl/dsl/rbac/v1beta1/policy_rule.rb +11 -1
  446. data/lib/kube-dsl/dsl/rbac/v1beta1/role.rb +5 -2
  447. data/lib/kube-dsl/dsl/rbac/v1beta1/role_binding.rb +6 -2
  448. data/lib/kube-dsl/dsl/rbac/v1beta1/role_binding_list.rb +4 -1
  449. data/lib/kube-dsl/dsl/rbac/v1beta1/role_list.rb +4 -1
  450. data/lib/kube-dsl/dsl/rbac/v1beta1/role_ref.rb +7 -1
  451. data/lib/kube-dsl/dsl/rbac/v1beta1/subject.rb +9 -1
  452. data/lib/kube-dsl/dsl/scheduling/v1/priority_class.rb +12 -3
  453. data/lib/kube-dsl/dsl/scheduling/v1/priority_class_list.rb +4 -1
  454. data/lib/kube-dsl/dsl/scheduling/v1alpha1/priority_class.rb +12 -3
  455. data/lib/kube-dsl/dsl/scheduling/v1alpha1/priority_class_list.rb +4 -1
  456. data/lib/kube-dsl/dsl/scheduling/v1beta1/priority_class.rb +12 -3
  457. data/lib/kube-dsl/dsl/scheduling/v1beta1/priority_class_list.rb +4 -1
  458. data/lib/kube-dsl/dsl/settings/v1alpha1/pod_preset.rb +3 -0
  459. data/lib/kube-dsl/dsl/settings/v1alpha1/pod_preset_list.rb +4 -1
  460. data/lib/kube-dsl/dsl/settings/v1alpha1/pod_preset_spec.rb +8 -2
  461. data/lib/kube-dsl/dsl/storage/v1/csi_node.rb +3 -0
  462. data/lib/kube-dsl/dsl/storage/v1/csi_node_driver.rb +9 -2
  463. data/lib/kube-dsl/dsl/storage/v1/csi_node_list.rb +4 -1
  464. data/lib/kube-dsl/dsl/storage/v1/csi_node_spec.rb +2 -0
  465. data/lib/kube-dsl/dsl/storage/v1/storage_class.rb +18 -5
  466. data/lib/kube-dsl/dsl/storage/v1/storage_class_list.rb +4 -1
  467. data/lib/kube-dsl/dsl/storage/v1/volume_attachment.rb +4 -0
  468. data/lib/kube-dsl/dsl/storage/v1/volume_attachment_list.rb +4 -1
  469. data/lib/kube-dsl/dsl/storage/v1/volume_attachment_source.rb +5 -2
  470. data/lib/kube-dsl/dsl/storage/v1/volume_attachment_spec.rb +6 -1
  471. data/lib/kube-dsl/dsl/storage/v1/volume_attachment_status.rb +9 -4
  472. data/lib/kube-dsl/dsl/storage/v1/volume_error.rb +5 -1
  473. data/lib/kube-dsl/dsl/storage/v1/volume_node_resources.rb +3 -1
  474. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment.rb +4 -0
  475. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_list.rb +4 -1
  476. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_source.rb +5 -2
  477. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_spec.rb +6 -1
  478. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_status.rb +9 -4
  479. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_error.rb +5 -1
  480. data/lib/kube-dsl/dsl/storage/v1beta1/csi_driver.rb +3 -0
  481. data/lib/kube-dsl/dsl/storage/v1beta1/csi_driver_list.rb +4 -1
  482. data/lib/kube-dsl/dsl/storage/v1beta1/csi_driver_spec.rb +7 -1
  483. data/lib/kube-dsl/dsl/storage/v1beta1/csi_node.rb +3 -0
  484. data/lib/kube-dsl/dsl/storage/v1beta1/csi_node_driver.rb +9 -2
  485. data/lib/kube-dsl/dsl/storage/v1beta1/csi_node_list.rb +4 -1
  486. data/lib/kube-dsl/dsl/storage/v1beta1/csi_node_spec.rb +2 -0
  487. data/lib/kube-dsl/dsl/storage/v1beta1/storage_class.rb +18 -5
  488. data/lib/kube-dsl/dsl/storage/v1beta1/storage_class_list.rb +4 -1
  489. data/lib/kube-dsl/dsl/storage/v1beta1/volume_attachment.rb +4 -0
  490. data/lib/kube-dsl/dsl/storage/v1beta1/volume_attachment_list.rb +4 -1
  491. data/lib/kube-dsl/dsl/storage/v1beta1/volume_attachment_source.rb +5 -2
  492. data/lib/kube-dsl/dsl/storage/v1beta1/volume_attachment_spec.rb +6 -1
  493. data/lib/kube-dsl/dsl/storage/v1beta1/volume_attachment_status.rb +9 -4
  494. data/lib/kube-dsl/dsl/storage/v1beta1/volume_error.rb +5 -1
  495. data/lib/kube-dsl/dsl/storage/v1beta1/volume_node_resources.rb +3 -1
  496. data/lib/kube-dsl/dsl/v1/affinity.rb +4 -0
  497. data/lib/kube-dsl/dsl/v1/attached_volume.rb +5 -1
  498. data/lib/kube-dsl/dsl/v1/aws_elastic_block_store_volume_source.rb +9 -1
  499. data/lib/kube-dsl/dsl/v1/azure_disk_volume_source.rb +13 -1
  500. data/lib/kube-dsl/dsl/v1/azure_file_persistent_volume_source.rb +9 -1
  501. data/lib/kube-dsl/dsl/v1/azure_file_volume_source.rb +7 -1
  502. data/lib/kube-dsl/dsl/v1/binding.rb +3 -0
  503. data/lib/kube-dsl/dsl/v1/capabilities.rb +5 -1
  504. data/lib/kube-dsl/dsl/v1/ceph_fs_persistent_volume_source.rb +13 -2
  505. data/lib/kube-dsl/dsl/v1/ceph_fs_volume_source.rb +13 -2
  506. data/lib/kube-dsl/dsl/v1/cinder_persistent_volume_source.rb +9 -2
  507. data/lib/kube-dsl/dsl/v1/cinder_volume_source.rb +9 -2
  508. data/lib/kube-dsl/dsl/v1/client_ip_config.rb +3 -1
  509. data/lib/kube-dsl/dsl/v1/component_condition.rb +9 -1
  510. data/lib/kube-dsl/dsl/v1/component_status.rb +4 -1
  511. data/lib/kube-dsl/dsl/v1/component_status_list.rb +4 -1
  512. data/lib/kube-dsl/dsl/v1/config_map.rb +7 -3
  513. data/lib/kube-dsl/dsl/v1/config_map_env_source.rb +5 -1
  514. data/lib/kube-dsl/dsl/v1/config_map_key_selector.rb +7 -1
  515. data/lib/kube-dsl/dsl/v1/config_map_list.rb +4 -1
  516. data/lib/kube-dsl/dsl/v1/config_map_node_config_source.rb +11 -1
  517. data/lib/kube-dsl/dsl/v1/config_map_projection.rb +7 -2
  518. data/lib/kube-dsl/dsl/v1/config_map_volume_source.rb +9 -2
  519. data/lib/kube-dsl/dsl/v1/container.rb +47 -14
  520. data/lib/kube-dsl/dsl/v1/container_image.rb +5 -1
  521. data/lib/kube-dsl/dsl/v1/container_port.rb +11 -1
  522. data/lib/kube-dsl/dsl/v1/container_state.rb +4 -0
  523. data/lib/kube-dsl/dsl/v1/container_state_running.rb +3 -1
  524. data/lib/kube-dsl/dsl/v1/container_state_terminated.rb +15 -1
  525. data/lib/kube-dsl/dsl/v1/container_state_waiting.rb +5 -1
  526. data/lib/kube-dsl/dsl/v1/container_status.rb +18 -2
  527. data/lib/kube-dsl/dsl/v1/csi_persistent_volume_source.rb +18 -5
  528. data/lib/kube-dsl/dsl/v1/csi_volume_source.rb +10 -2
  529. data/lib/kube-dsl/dsl/v1/daemon_endpoint.rb +3 -1
  530. data/lib/kube-dsl/dsl/v1/downward_api_projection.rb +2 -0
  531. data/lib/kube-dsl/dsl/v1/downward_api_volume_file.rb +8 -2
  532. data/lib/kube-dsl/dsl/v1/downward_api_volume_source.rb +4 -1
  533. data/lib/kube-dsl/dsl/v1/empty_dir_volume_source.rb +5 -1
  534. data/lib/kube-dsl/dsl/v1/endpoint_address.rb +8 -1
  535. data/lib/kube-dsl/dsl/v1/endpoint_port.rb +7 -1
  536. data/lib/kube-dsl/dsl/v1/endpoint_subset.rb +4 -0
  537. data/lib/kube-dsl/dsl/v1/endpoints.rb +5 -2
  538. data/lib/kube-dsl/dsl/v1/endpoints_list.rb +4 -1
  539. data/lib/kube-dsl/dsl/v1/env_from_source.rb +6 -2
  540. data/lib/kube-dsl/dsl/v1/env_var.rb +6 -1
  541. data/lib/kube-dsl/dsl/v1/env_var_source.rb +5 -0
  542. data/lib/kube-dsl/dsl/v1/ephemeral_container.rb +49 -14
  543. data/lib/kube-dsl/dsl/v1/event.rb +32 -7
  544. data/lib/kube-dsl/dsl/v1/event_list.rb +4 -1
  545. data/lib/kube-dsl/dsl/v1/event_series.rb +7 -1
  546. data/lib/kube-dsl/dsl/v1/event_source.rb +5 -1
  547. data/lib/kube-dsl/dsl/v1/exec_action.rb +3 -1
  548. data/lib/kube-dsl/dsl/v1/fc_volume_source.rb +11 -1
  549. data/lib/kube-dsl/dsl/v1/flex_persistent_volume_source.rb +11 -3
  550. data/lib/kube-dsl/dsl/v1/flex_volume_source.rb +11 -3
  551. data/lib/kube-dsl/dsl/v1/flocker_volume_source.rb +5 -1
  552. data/lib/kube-dsl/dsl/v1/gce_persistent_disk_volume_source.rb +9 -1
  553. data/lib/kube-dsl/dsl/v1/git_repo_volume_source.rb +7 -1
  554. data/lib/kube-dsl/dsl/v1/glusterfs_persistent_volume_source.rb +9 -1
  555. data/lib/kube-dsl/dsl/v1/glusterfs_volume_source.rb +7 -1
  556. data/lib/kube-dsl/dsl/v1/handler.rb +4 -0
  557. data/lib/kube-dsl/dsl/v1/host_alias.rb +5 -1
  558. data/lib/kube-dsl/dsl/v1/host_path_volume_source.rb +5 -1
  559. data/lib/kube-dsl/dsl/v1/http_get_action.rb +11 -2
  560. data/lib/kube-dsl/dsl/v1/http_header.rb +5 -1
  561. data/lib/kube-dsl/dsl/v1/iscsi_persistent_volume_source.rb +23 -2
  562. data/lib/kube-dsl/dsl/v1/iscsi_volume_source.rb +23 -2
  563. data/lib/kube-dsl/dsl/v1/key_to_path.rb +7 -1
  564. data/lib/kube-dsl/dsl/v1/lifecycle.rb +3 -0
  565. data/lib/kube-dsl/dsl/v1/limit_range.rb +3 -0
  566. data/lib/kube-dsl/dsl/v1/limit_range_item.rb +9 -2
  567. data/lib/kube-dsl/dsl/v1/limit_range_list.rb +4 -1
  568. data/lib/kube-dsl/dsl/v1/limit_range_spec.rb +2 -0
  569. data/lib/kube-dsl/dsl/v1/load_balancer_ingress.rb +5 -1
  570. data/lib/kube-dsl/dsl/v1/load_balancer_status.rb +2 -0
  571. data/lib/kube-dsl/dsl/v1/local_object_reference.rb +3 -1
  572. data/lib/kube-dsl/dsl/v1/local_volume_source.rb +5 -1
  573. data/lib/kube-dsl/dsl/v1/namespace.rb +4 -0
  574. data/lib/kube-dsl/dsl/v1/namespace_condition.rb +11 -1
  575. data/lib/kube-dsl/dsl/v1/namespace_list.rb +4 -1
  576. data/lib/kube-dsl/dsl/v1/namespace_spec.rb +3 -1
  577. data/lib/kube-dsl/dsl/v1/namespace_status.rb +5 -2
  578. data/lib/kube-dsl/dsl/v1/nfs_volume_source.rb +7 -1
  579. data/lib/kube-dsl/dsl/v1/node.rb +4 -0
  580. data/lib/kube-dsl/dsl/v1/node_address.rb +5 -1
  581. data/lib/kube-dsl/dsl/v1/node_affinity.rb +3 -0
  582. data/lib/kube-dsl/dsl/v1/node_condition.rb +13 -1
  583. data/lib/kube-dsl/dsl/v1/node_config_source.rb +2 -0
  584. data/lib/kube-dsl/dsl/v1/node_config_status.rb +7 -2
  585. data/lib/kube-dsl/dsl/v1/node_daemon_endpoints.rb +2 -0
  586. data/lib/kube-dsl/dsl/v1/node_list.rb +4 -1
  587. data/lib/kube-dsl/dsl/v1/node_selector.rb +2 -0
  588. data/lib/kube-dsl/dsl/v1/node_selector_requirement.rb +7 -1
  589. data/lib/kube-dsl/dsl/v1/node_selector_term.rb +3 -0
  590. data/lib/kube-dsl/dsl/v1/node_spec.rb +16 -4
  591. data/lib/kube-dsl/dsl/v1/node_status.rb +24 -11
  592. data/lib/kube-dsl/dsl/v1/node_system_info.rb +21 -1
  593. data/lib/kube-dsl/dsl/v1/object_field_selector.rb +5 -1
  594. data/lib/kube-dsl/dsl/v1/object_reference.rb +15 -1
  595. data/lib/kube-dsl/dsl/v1/persistent_volume.rb +4 -0
  596. data/lib/kube-dsl/dsl/v1/persistent_volume_claim.rb +4 -0
  597. data/lib/kube-dsl/dsl/v1/persistent_volume_claim_condition.rb +13 -1
  598. data/lib/kube-dsl/dsl/v1/persistent_volume_claim_list.rb +4 -1
  599. data/lib/kube-dsl/dsl/v1/persistent_volume_claim_spec.rb +15 -4
  600. data/lib/kube-dsl/dsl/v1/persistent_volume_claim_status.rb +10 -4
  601. data/lib/kube-dsl/dsl/v1/persistent_volume_claim_volume_source.rb +5 -1
  602. data/lib/kube-dsl/dsl/v1/persistent_volume_list.rb +4 -1
  603. data/lib/kube-dsl/dsl/v1/persistent_volume_spec.rb +42 -7
  604. data/lib/kube-dsl/dsl/v1/persistent_volume_status.rb +7 -1
  605. data/lib/kube-dsl/dsl/v1/photon_persistent_disk_volume_source.rb +5 -1
  606. data/lib/kube-dsl/dsl/v1/pod.rb +4 -0
  607. data/lib/kube-dsl/dsl/v1/pod_affinity.rb +3 -0
  608. data/lib/kube-dsl/dsl/v1/pod_affinity_term.rb +7 -2
  609. data/lib/kube-dsl/dsl/v1/pod_anti_affinity.rb +3 -0
  610. data/lib/kube-dsl/dsl/v1/pod_condition.rb +13 -1
  611. data/lib/kube-dsl/dsl/v1/pod_dns_config.rb +7 -2
  612. data/lib/kube-dsl/dsl/v1/pod_dns_config_option.rb +5 -1
  613. data/lib/kube-dsl/dsl/v1/pod_ip.rb +3 -1
  614. data/lib/kube-dsl/dsl/v1/pod_list.rb +4 -1
  615. data/lib/kube-dsl/dsl/v1/pod_readiness_gate.rb +3 -1
  616. data/lib/kube-dsl/dsl/v1/pod_security_context.rb +16 -3
  617. data/lib/kube-dsl/dsl/v1/pod_spec.rb +71 -17
  618. data/lib/kube-dsl/dsl/v1/pod_status.rb +27 -6
  619. data/lib/kube-dsl/dsl/v1/pod_template.rb +3 -0
  620. data/lib/kube-dsl/dsl/v1/pod_template_list.rb +4 -1
  621. data/lib/kube-dsl/dsl/v1/pod_template_spec.rb +3 -0
  622. data/lib/kube-dsl/dsl/v1/portworx_volume_source.rb +7 -1
  623. data/lib/kube-dsl/dsl/v1/preferred_scheduling_term.rb +5 -2
  624. data/lib/kube-dsl/dsl/v1/probe.rb +17 -4
  625. data/lib/kube-dsl/dsl/v1/projected_volume_source.rb +4 -1
  626. data/lib/kube-dsl/dsl/v1/quobyte_volume_source.rb +13 -1
  627. data/lib/kube-dsl/dsl/v1/rbd_persistent_volume_source.rb +17 -2
  628. data/lib/kube-dsl/dsl/v1/rbd_volume_source.rb +17 -2
  629. data/lib/kube-dsl/dsl/v1/replication_controller.rb +4 -0
  630. data/lib/kube-dsl/dsl/v1/replication_controller_condition.rb +11 -1
  631. data/lib/kube-dsl/dsl/v1/replication_controller_list.rb +4 -1
  632. data/lib/kube-dsl/dsl/v1/replication_controller_spec.rb +9 -3
  633. data/lib/kube-dsl/dsl/v1/replication_controller_status.rb +13 -2
  634. data/lib/kube-dsl/dsl/v1/resource_field_selector.rb +7 -1
  635. data/lib/kube-dsl/dsl/v1/resource_quota.rb +4 -0
  636. data/lib/kube-dsl/dsl/v1/resource_quota_list.rb +4 -1
  637. data/lib/kube-dsl/dsl/v1/resource_quota_spec.rb +8 -4
  638. data/lib/kube-dsl/dsl/v1/resource_quota_status.rb +3 -0
  639. data/lib/kube-dsl/dsl/v1/resource_requirements.rb +3 -0
  640. data/lib/kube-dsl/dsl/v1/scale_io_persistent_volume_source.rb +21 -2
  641. data/lib/kube-dsl/dsl/v1/scale_io_volume_source.rb +21 -2
  642. data/lib/kube-dsl/dsl/v1/scope_selector.rb +2 -0
  643. data/lib/kube-dsl/dsl/v1/scoped_resource_selector_requirement.rb +7 -1
  644. data/lib/kube-dsl/dsl/v1/se_linux_options.rb +9 -1
  645. data/lib/kube-dsl/dsl/v1/secret.rb +9 -4
  646. data/lib/kube-dsl/dsl/v1/secret_env_source.rb +5 -1
  647. data/lib/kube-dsl/dsl/v1/secret_key_selector.rb +7 -1
  648. data/lib/kube-dsl/dsl/v1/secret_list.rb +4 -1
  649. data/lib/kube-dsl/dsl/v1/secret_projection.rb +7 -2
  650. data/lib/kube-dsl/dsl/v1/secret_reference.rb +5 -1
  651. data/lib/kube-dsl/dsl/v1/secret_volume_source.rb +9 -2
  652. data/lib/kube-dsl/dsl/v1/security_context.rb +19 -2
  653. data/lib/kube-dsl/dsl/v1/service.rb +4 -0
  654. data/lib/kube-dsl/dsl/v1/service_account.rb +9 -4
  655. data/lib/kube-dsl/dsl/v1/service_account_list.rb +4 -1
  656. data/lib/kube-dsl/dsl/v1/service_account_token_projection.rb +7 -1
  657. data/lib/kube-dsl/dsl/v1/service_list.rb +4 -1
  658. data/lib/kube-dsl/dsl/v1/service_port.rb +11 -1
  659. data/lib/kube-dsl/dsl/v1/service_spec.rb +32 -5
  660. data/lib/kube-dsl/dsl/v1/service_status.rb +2 -0
  661. data/lib/kube-dsl/dsl/v1/session_affinity_config.rb +2 -0
  662. data/lib/kube-dsl/dsl/v1/storage_os_persistent_volume_source.rb +11 -2
  663. data/lib/kube-dsl/dsl/v1/storage_os_volume_source.rb +11 -2
  664. data/lib/kube-dsl/dsl/v1/sysctl.rb +5 -1
  665. data/lib/kube-dsl/dsl/v1/taint.rb +9 -1
  666. data/lib/kube-dsl/dsl/v1/tcp_socket_action.rb +5 -1
  667. data/lib/kube-dsl/dsl/v1/toleration.rb +11 -1
  668. data/lib/kube-dsl/dsl/v1/topology_selector_label_requirement.rb +5 -1
  669. data/lib/kube-dsl/dsl/v1/topology_selector_term.rb +2 -0
  670. data/lib/kube-dsl/dsl/v1/topology_spread_constraint.rb +9 -2
  671. data/lib/kube-dsl/dsl/v1/typed_local_object_reference.rb +7 -1
  672. data/lib/kube-dsl/dsl/v1/volume.rb +32 -2
  673. data/lib/kube-dsl/dsl/v1/volume_device.rb +5 -1
  674. data/lib/kube-dsl/dsl/v1/volume_mount.rb +13 -1
  675. data/lib/kube-dsl/dsl/v1/volume_node_affinity.rb +2 -0
  676. data/lib/kube-dsl/dsl/v1/volume_projection.rb +5 -0
  677. data/lib/kube-dsl/dsl/v1/vsphere_virtual_disk_volume_source.rb +9 -1
  678. data/lib/kube-dsl/dsl/v1/weighted_pod_affinity_term.rb +5 -2
  679. data/lib/kube-dsl/dsl/v1/windows_security_context_options.rb +7 -1
  680. data/lib/kube-dsl/dsl_object.rb +1 -0
  681. data/lib/kube-dsl/field_res.rb +35 -0
  682. data/lib/kube-dsl/generator.rb +6 -6
  683. data/lib/kube-dsl/key_value_field_res.rb +32 -0
  684. data/lib/kube-dsl/key_value_fields.rb +1 -1
  685. data/lib/kube-dsl/object_field_res.rb +35 -0
  686. data/lib/kube-dsl/ref.rb +8 -5
  687. data/lib/kube-dsl/resource_meta.rb +27 -64
  688. data/lib/kube-dsl/string_helpers.rb +14 -0
  689. data/lib/kube-dsl/validations.rb +228 -0
  690. data/lib/kube-dsl/value_fields.rb +1 -1
  691. data/lib/kube-dsl/version.rb +1 -1
  692. data/lib/kube-dsl.rb +6 -0
  693. metadata +13 -6
@@ -0,0 +1,228 @@
1
+ module KubeDSL
2
+ class ValidationError < StandardError; end
3
+
4
+ module Validations
5
+ class ValidationErrors
6
+ attr_reader :messages
7
+
8
+ def initialize
9
+ @messages = {}
10
+ end
11
+
12
+ def add(field_name, msg)
13
+ messages[field_name] ||= []
14
+ messages[field_name] << msg
15
+ end
16
+
17
+ def empty?
18
+ messages.empty?
19
+ end
20
+ end
21
+
22
+ class PresenceValidator
23
+ attr_reader :field_name, :presence
24
+
25
+ def initialize(field_name, presence)
26
+ @field_name = field_name
27
+ @presence = presence
28
+ end
29
+
30
+ def validate(obj, errors, nesting)
31
+ if presence && obj_empty?(obj)
32
+ errors.add([*nesting, field_name].join('.'), 'is required')
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def obj_empty?(obj)
39
+ if obj.respond_to?(:empty)
40
+ obj.empty?
41
+ else
42
+ !!obj
43
+ end
44
+ end
45
+ end
46
+
47
+ class ArrayValidator
48
+ attr_reader :field_name, :kind_of
49
+
50
+ def initialize(field_name, opts)
51
+ @field_name = field_name
52
+ @kind_of = opts.fetch(:kind_of)
53
+ end
54
+
55
+ def validate(obj, errors, nesting)
56
+ unless obj.is_a?(Array)
57
+ errors.add([*nesting, field_name].join('.'), 'is not an array')
58
+ return
59
+ end
60
+
61
+ obj.each_with_index do |elem, idx|
62
+ unless elem.nil? || elem.is_a?(kind_of)
63
+ errors.add(
64
+ [*nesting, field_name].join('.'), "contains an object at index #{idx} "\
65
+ "of type '#{elem.class.name}', expected '#{kind_of.name}'"
66
+ )
67
+ end
68
+ end
69
+ end
70
+ end
71
+
72
+ class FormatValidator
73
+ attr_reader :format
74
+
75
+ def initialize(format)
76
+ @format = format
77
+ end
78
+
79
+ def valid?(obj)
80
+ klasses.any? { |k| obj.nil? || obj.is_a?(k) }
81
+ end
82
+
83
+ def klasses
84
+ @klasses ||= case format
85
+ when :string, :byte
86
+ [String]
87
+ when :integer
88
+ [Integer]
89
+ when :boolean
90
+ [TrueClass, FalseClass]
91
+ else
92
+ raise "format '#{format}' not recognized"
93
+ end
94
+ end
95
+ end
96
+
97
+ class FieldValidator
98
+ attr_reader :field_name, :format_validator
99
+
100
+ def initialize(field_name, options = {})
101
+ @field_name = field_name
102
+ @format_validator ||= FormatValidator.new(options[:format])
103
+ end
104
+
105
+ def validate(obj, errors, nesting)
106
+ unless format_validator.valid?(obj)
107
+ errors.add([*nesting, field_name].join('.'), "is not a #{format_validator.klasses.map(&:to_s).join(', ')}")
108
+ end
109
+ end
110
+ end
111
+
112
+ class ObjectValidator
113
+ attr_reader :field_name, :kind_of
114
+
115
+ def initialize(field_name, opts)
116
+ @field_name = field_name
117
+ @kind_of = opts.fetch(:kind_of)
118
+ end
119
+
120
+ def validate(obj, errors, nesting)
121
+ unless obj.nil? || obj.is_a?(kind_of)
122
+ errors.add([*nesting, field_name].join('.'), "'#{obj.class.name}', expected '#{kind_of.name}'")
123
+ end
124
+ end
125
+ end
126
+
127
+ class KeyValueValidator
128
+ attr_reader :field_name, :format_validator
129
+
130
+ def initialize(field_name, options = {})
131
+ @field_name = field_name
132
+ @format_validator ||= FormatValidator.new(options[:value_format])
133
+ end
134
+
135
+ def validate(obj, errors, nesting)
136
+ obj.kv_pairs.each_pair do |k, v|
137
+ unless format_validator.valid?(v)
138
+ errors.add(
139
+ [*nesting, field_name].join('.'),
140
+ "expected element '#{k}' to be a #{format_validator.klasses.map(&:to_s).join(', ')}, got #{v.class.name}")
141
+ end
142
+ end
143
+ end
144
+ end
145
+
146
+ class InclusionValidator
147
+ attr_reader :field_name, :list
148
+
149
+ def initialize(field_name, opts)
150
+ @field_name = field_name
151
+ @list = opts[:in]
152
+ end
153
+
154
+ def validate(obj, errors, nesting)
155
+ unless list.include?(obj)
156
+ errors.add([*nesting, field_name].join('.'), "is not in #{list.join(', ')}")
157
+ end
158
+ end
159
+ end
160
+
161
+ module ClassMethods
162
+ def validates(field_name, options)
163
+ validators[field_name] = options.map do |val, *val_args|
164
+ validator_class = case val
165
+ when :array
166
+ ArrayValidator
167
+ when :presence
168
+ PresenceValidator
169
+ when :field
170
+ FieldValidator
171
+ when :object
172
+ ObjectValidator
173
+ when :kv
174
+ KeyValueValidator
175
+ when :inclusion
176
+ InclusionValidator
177
+ else
178
+ raise "couldn't find a(n) #{val} validator"
179
+ end
180
+
181
+ validator_class.new(field_name, *val_args)
182
+ end
183
+ end
184
+
185
+ def validators
186
+ @validators ||= {}
187
+ end
188
+ end
189
+
190
+ module InstanceMethods
191
+ def validate(errors = nil, nesting = [])
192
+ errors ||= ValidationErrors.new
193
+
194
+ self.class.validators.each do |field_name, validators|
195
+ field = send(field_name)
196
+ validators.each { |val| val.validate(field, errors, nesting) }
197
+
198
+ if field.respond_to?(:validate)
199
+ field.validate(errors, nesting + [field_name.to_s])
200
+ end
201
+ end
202
+
203
+ errors
204
+ end
205
+
206
+ def validate!
207
+ errors = validate
208
+
209
+ unless errors.empty?
210
+ field = errors.messages.keys.first
211
+ message = errors.messages[field].first
212
+ raise ValidationError, "#{field} #{message}"
213
+ end
214
+ end
215
+
216
+ def valid?
217
+ errors = validate
218
+ errors.empty?
219
+ end
220
+ end
221
+
222
+
223
+ def self.extended(base)
224
+ base.include(InstanceMethods)
225
+ base.extend(ClassMethods)
226
+ end
227
+ end
228
+ end
@@ -15,7 +15,7 @@ module KubeDSL
15
15
  define_method(field) do |*args|
16
16
  if args.empty?
17
17
  instance_variable_get(:"@#{field}") || (
18
- default.respond_to?(:call) ? default.call : default
18
+ default.respond_to?(:call) ? default.call(self) : default
19
19
  )
20
20
  else
21
21
  instance_variable_set(:"@#{field}", args.first)
@@ -1,3 +1,3 @@
1
1
  module KubeDSL
2
- VERSION = '0.3.0'
2
+ VERSION = '0.6.0'
3
3
  end
data/lib/kube-dsl.rb CHANGED
@@ -1,19 +1,25 @@
1
1
  module KubeDSL
2
2
  KUBERNETES_VERSION = '1.17.4'.freeze
3
3
 
4
+ autoload :ArrayFieldRes, 'kube-dsl/array_field_res'
4
5
  autoload :Builder, 'kube-dsl/builder'
6
+ autoload :DefaultFieldRes, 'kube-dsl/default_field_res'
5
7
  autoload :DSL, 'kube-dsl/dsl'
6
8
  autoload :DSLObject, 'kube-dsl/dsl_object'
7
9
  autoload :Entrypoint, 'kube-dsl/entrypoint'
8
10
  autoload :ExternalRef, 'kube-dsl/external_ref'
9
11
  autoload :ExternalResourceMeta, 'kube-dsl/external_resource_meta'
12
+ autoload :FieldRes, 'kube-dsl/field_res'
10
13
  autoload :Generator, 'kube-dsl/generator'
11
14
  autoload :Inflector, 'kube-dsl/inflector'
12
15
  autoload :KeyValueFields, 'kube-dsl/key_value_fields'
16
+ autoload :KeyValueFieldRes, 'kube-dsl/key_value_field_res'
17
+ autoload :ObjectFieldRes, 'kube-dsl/object_field_res'
13
18
  autoload :Ref, 'kube-dsl/ref'
14
19
  autoload :Resource, 'kube-dsl/resource'
15
20
  autoload :ResourceMeta, 'kube-dsl/resource_meta'
16
21
  autoload :StringHelpers, 'kube-dsl/string_helpers'
22
+ autoload :Validations, 'kube-dsl/validations'
17
23
  autoload :ValueFields, 'kube-dsl/value_fields'
18
24
 
19
25
  extend Entrypoint
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kube-dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Dutro
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-18 00:00:00.000000000 Z
11
+ date: 2021-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector
@@ -34,10 +34,13 @@ files:
34
34
  - CHANGELOG.md
35
35
  - Gemfile
36
36
  - LICENSE
37
+ - README.md
37
38
  - Rakefile
38
39
  - kube-dsl.gemspec
39
40
  - lib/kube-dsl.rb
41
+ - lib/kube-dsl/array_field_res.rb
40
42
  - lib/kube-dsl/builder.rb
43
+ - lib/kube-dsl/default_field_res.rb
41
44
  - lib/kube-dsl/dsl.rb
42
45
  - lib/kube-dsl/dsl/admissionregistration.rb
43
46
  - lib/kube-dsl/dsl/admissionregistration/v1.rb
@@ -784,19 +787,23 @@ files:
784
787
  - lib/kube-dsl/entrypoint.rb
785
788
  - lib/kube-dsl/external_ref.rb
786
789
  - lib/kube-dsl/external_resource_meta.rb
790
+ - lib/kube-dsl/field_res.rb
787
791
  - lib/kube-dsl/generator.rb
788
792
  - lib/kube-dsl/inflector.rb
793
+ - lib/kube-dsl/key_value_field_res.rb
789
794
  - lib/kube-dsl/key_value_fields.rb
795
+ - lib/kube-dsl/object_field_res.rb
790
796
  - lib/kube-dsl/ref.rb
791
797
  - lib/kube-dsl/resource.rb
792
798
  - lib/kube-dsl/resource_meta.rb
793
799
  - lib/kube-dsl/string_helpers.rb
800
+ - lib/kube-dsl/validations.rb
794
801
  - lib/kube-dsl/value_fields.rb
795
802
  - lib/kube-dsl/version.rb
796
803
  homepage: http://github.com/getkuby/kube-dsl
797
804
  licenses: []
798
805
  metadata: {}
799
- post_install_message:
806
+ post_install_message:
800
807
  rdoc_options: []
801
808
  require_paths:
802
809
  - lib
@@ -811,8 +818,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
811
818
  - !ruby/object:Gem::Version
812
819
  version: '0'
813
820
  requirements: []
814
- rubygems_version: 3.1.4
815
- signing_key:
821
+ rubygems_version: 3.1.6
822
+ signing_key:
816
823
  specification_version: 4
817
824
  summary: A Ruby DSL for defining Kubernetes resources.
818
825
  test_files: []