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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7a616f5571a180de6f04decd298d902b823148b10596292fa69ab68ce7f2ddb
4
- data.tar.gz: 51d822c6644973f06cb3f8c819eef7bf99f21d54ff7c7820f0e3105b712a1880
3
+ metadata.gz: 03cadaa643bb90a6baa5338e3de7905f8243c0032fde7991db072ad7b964691c
4
+ data.tar.gz: 40feae243bcc6e2a953b1b97ae0bbd865b6239354e7abe47b471227b2dff582a
5
5
  SHA512:
6
- metadata.gz: 821f0332b1aa16b3ba3ffc2fad7a3f453878fa97993dfb71fc74386dc5a0b1aecd0e56f9bd86518a869721d1a5d21a7c2f433edc8bc82e378bba5b1b1900929f
7
- data.tar.gz: 6882c287e01af9c05d32a8729e1999a485a75bfec2fd433a53d65efbbd1de0d6fa6dc72b4f6169150d7f00b419e650d8ac4766308f23ba9d766c7bd7af0df354
6
+ metadata.gz: f4c771dd4d07ee252b160c1ca4d0de23b913298974bf12f9374ac58ff05aa368a0962a458a9543cb959fea1e4a1596257b22a0b4571d88a0a6bf634f920d1210
7
+ data.tar.gz: 17ac1ab5ebea2c780623bc8d5bf7600b660b09d709c2a132bedb130477b9c61f8377ecf6f22cb9be8335778eb902f1736e5d0adf1d45fa4ad65a230c81be1bc9
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## 0.6.0
2
+ * Improve path and namespace handling in generator.
3
+
4
+ ## 0.5.1
5
+ * Support Ruby 2.7
6
+ - Stop using the `RubyToken` class from irb, which doesn't exist anymore.
7
+ * Fix bug causing `NoMethodError`s if the type field contains a single string and not an array.
8
+
9
+ ## 0.5.0
10
+ * Recursively validate.
11
+ * Add README.
12
+
13
+ ## 0.4.0
14
+ * Add validations.
15
+ - You can now call `#valid?` and `#validate` methods on DSL objects.
16
+ * Fixed several bad inflections causing Ruby keywords to appear in unexpected places, namely in `#serialize` methods.
17
+ * Prevent JSON schema "$" variables (eg. "$ref") from being added as fields.
18
+
1
19
  ## 0.3.0
2
20
  * Introduce the `key_value_field` method to simplify creating key/value fields.
3
21
  * Add `#merge` and `#merge!` methods to anything that includes or extends `ValueFields`.
data/README.md ADDED
@@ -0,0 +1,293 @@
1
+ ## kube-dsl
2
+ A Ruby DSL for defining Kubernetes resources.
3
+
4
+ ## What is this thing?
5
+
6
+ KubeDSL provides a [domain-specific language](https://en.wikipedia.org/wiki/Domain-specific_language) for defining Kubernetes resource objects in Ruby. Why would you want to do this? Well,
7
+
8
+ 1. I think Ruby code is easier to read than YAML.
9
+ 1. every property is a Ruby method, meaning Ruby will blow up if you try to configure the object the wrong way.
10
+ 1. doing so follows the principle of [infrastructure as code](https://en.wikipedia.org/wiki/Infrastructure_as_code).
11
+ 1. validations are built-in.
12
+
13
+ ## Installation
14
+
15
+ Either run `gem install kube-dsl` or add it to your Gemfile:
16
+
17
+ ```ruby
18
+ gem 'kube-dsl', '< 1'
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ KubeDSL directly mirrors the fields and nesting structure of each Kubernetes YAML (or JSON) object. Ruby fields are snake_cased while Kubernetes fields are camelCased. Let's take a look at a short example where we define a Namespace:
24
+
25
+ ```ruby
26
+ ns = KubeDSL.namespace do
27
+ metadata do
28
+ name 'my-namespace'
29
+ end
30
+ end
31
+ ```
32
+
33
+ In the example above, we've defined a `KubeDSL::DSL::V1::Namespace` object and assigned it to a local variable called `ns`. Now let's convert it into a YAML string and print it out:
34
+
35
+ ```ruby
36
+ # ---
37
+ # apiVersion: v1
38
+ # kind: Namespace
39
+ # metadata:
40
+ # name: foo
41
+ puts ns.to_resource.to_yaml
42
+ ```
43
+
44
+ The `#to_resource` method returns an instance of the `KubeDSL::Resource` class while `#to_yaml` converts the resource into a YAML string. Pretty cool, eh? See the next few sections for examples creating other types of common Kubernetes objects.
45
+
46
+ ### ServiceAccount Example
47
+
48
+ Note how key/value pairs are added to the `labels` field.
49
+
50
+ ```ruby
51
+ KubeDSL.service_account do
52
+ metadata do
53
+ name 'my-service-account'
54
+ namespace 'my-namespace'
55
+
56
+ labels do
57
+ add :app, 'my-app'
58
+ add :role, 'web'
59
+ end
60
+ end
61
+ end
62
+ ```
63
+
64
+ ### Service Example
65
+
66
+ ```ruby
67
+ KubeDSL.service do
68
+ metadata do
69
+ name 'my-service'
70
+ namespace 'my-namespace'
71
+
72
+ labels do
73
+ add :app, 'my-app'
74
+ add :role, 'web'
75
+ end
76
+ end
77
+
78
+ spec do
79
+ type 'NodePort'
80
+
81
+ selector do
82
+ add :app, 'my-app'
83
+ add :role, 'web'
84
+ end
85
+
86
+ port do
87
+ name 'http'
88
+ port 3000
89
+ protocol 'TCP'
90
+ target_port 'http'
91
+ end
92
+ end
93
+ end
94
+ ```
95
+
96
+ ### Deployment Example
97
+
98
+ Note:
99
+
100
+ 1. Elements of arrays can be given names (see the use of the `#container` method below) so they can be easily retrieved and/or modified later.
101
+ 1. The example below shows how to add config maps and secrets to a deployment via references.
102
+
103
+ ```ruby
104
+ KubeDSL.deployment do
105
+ metadata do
106
+ name 'my-deployment'
107
+ namespace 'my-namespace'
108
+
109
+ labels do
110
+ add :app, 'my-app'
111
+ add :role, 'web'
112
+ end
113
+ end
114
+
115
+ spec do
116
+ replicas 2
117
+
118
+ selector do
119
+ match_labels do
120
+ add :app, 'my-app'
121
+ add :role, 'web'
122
+ end
123
+ end
124
+
125
+ strategy do
126
+ type 'RollingUpdate'
127
+
128
+ rolling_update do
129
+ max_surge '25%'
130
+ max_unavailable 1
131
+ end
132
+ end
133
+
134
+ template do
135
+ metadata do
136
+ labels do
137
+ add :app, 'my-app'
138
+ add :role, 'web'
139
+ end
140
+ end
141
+
142
+ spec do
143
+ # elements of arrays can be given names (:web in this case) so they can be
144
+ # easily retrieved and/or modified later
145
+ container(:web) do
146
+ name 'my-web-container'
147
+ image_pull_policy 'IfNotPresent'
148
+
149
+ port do
150
+ container_port 3000
151
+ name 'http'
152
+ protocol 'TCP'
153
+ end
154
+
155
+ env_from do
156
+ config_map_ref do
157
+ name 'my-config-map'
158
+ end
159
+ end
160
+
161
+ env_from do
162
+ secret_ref do
163
+ name 'my-secrets'
164
+ end
165
+ end
166
+
167
+ readiness_probe do
168
+ success_threshold 1
169
+ failure_threshold 2
170
+ initial_delay_seconds 15
171
+ period_seconds 3
172
+ timeout_seconds 1
173
+
174
+ http_get do
175
+ path '/healthz'
176
+ port 3000
177
+ scheme 'HTTP'
178
+ end
179
+ end
180
+ end
181
+
182
+ image_pull_secret do
183
+ name 'my-registry-secret'
184
+ end
185
+ end
186
+
187
+ restart_policy 'Always'
188
+ service_account_name 'my-service-account'
189
+ end
190
+ end
191
+ end
192
+ ```
193
+
194
+ ### Ingress Example
195
+
196
+ NOTE: the example below includes an annotation that is specific to the Nginx ingress controller.
197
+
198
+ ```ruby
199
+ KubeDSL::DSL::Extensions::V1beta1::Ingress.new do
200
+ metadata do
201
+ name 'my-ingress'
202
+ namespace 'my-namespace'
203
+
204
+ annotations do
205
+ add :'kubernetes.io/ingress.class', 'nginx'
206
+ end
207
+ end
208
+
209
+ spec do
210
+ rule do
211
+ host 'my-website.com'
212
+
213
+ http do
214
+ path do
215
+ path '/'
216
+
217
+ backend do
218
+ service_name 'my-service'
219
+ service_port 80
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
225
+ end
226
+ ```
227
+
228
+ ### ConfigMap Example
229
+
230
+ ```ruby
231
+ KubeDSL.config_map do
232
+ metadata do
233
+ name 'my-config-map'
234
+ namespace 'my-namespace'
235
+ end
236
+
237
+ data do
238
+ add :MY_VAR, 'value'
239
+ add :MY_OTHER_VAR, 'value'
240
+ end
241
+ end
242
+ ```
243
+
244
+ ### Secret Example
245
+
246
+ ```ruby
247
+ KubeDSL.secret do
248
+ metadata do
249
+ name 'my-secrets'
250
+ namespace 'my-namespace'
251
+ end
252
+
253
+ type 'Opaque'
254
+
255
+ data do
256
+ add :MY_SECRET, 'value'
257
+ end
258
+ end
259
+ ```
260
+
261
+ ## Validations
262
+
263
+ All `KubeDSL::DSLObject`s respond to `#valid?` and `#validate` methods. Use `#valid?` to determine whether or not an object is valid. Use `#validate` to retrieve a list of validation errors:
264
+
265
+ ```ruby
266
+ ns = KubeDSL.namespace do
267
+ metadata do
268
+ name 123
269
+ end
270
+ end
271
+
272
+ ns.valid? # => false
273
+ ns.validate # => #<KubeDSL::Validations::ValidationErrors:0x00007fc8ce276e80 ... >
274
+ ns.validate.messages # => {"metadata.name"=>["is not a String"]}
275
+ ```
276
+
277
+ The handy `#validate!` method will raise a `KubeDSL::ValidationError` if the object is invalid.
278
+
279
+ ## Code Generation
280
+
281
+ All the Ruby code present in KubeDSL is generated from the Kubernetes JSON schema available [here](https://github.com/instrumenta/kubernetes-json-schema). Run the following rake task to regenerate:
282
+
283
+ ```bash
284
+ bundle exec rake generate
285
+ ```
286
+
287
+ ## Authors
288
+
289
+ * Cameron C. Dutro: http://github.com/camertron
290
+
291
+ ## License
292
+
293
+ Licensed under the MIT license.
data/Rakefile CHANGED
@@ -16,6 +16,7 @@ end
16
16
 
17
17
  task :generate do
18
18
  require 'dry/inflector'
19
+ require 'fileutils'
19
20
 
20
21
  FileUtils.rm_rf('./lib/kube-dsl/entrypoint.rb')
21
22
  FileUtils.rm_rf('./lib/kube-dsl/dsl.rb')
@@ -24,29 +25,36 @@ task :generate do
24
25
  FileUtils.mkdir_p('./vendor')
25
26
 
26
27
  export_url = "https://github.com/instrumenta/kubernetes-json-schema/trunk/v#{KubeDSL::KUBERNETES_VERSION}-local"
27
- local_path = "vendor/kubernetes-json-schema/v#{KubeDSL::KUBERNETES_VERSION}-local"
28
+ local_schema_path = "vendor/kubernetes-json-schema/v#{KubeDSL::KUBERNETES_VERSION}-local"
28
29
 
29
- unless File.exist?(local_path)
30
- system("svn export #{export_url} #{local_path}")
30
+ unless File.exist?(local_schema_path)
31
+ system("svn export #{export_url} #{local_schema_path}")
31
32
  end
32
33
 
33
- Dir.chdir('lib') do
34
- generator = KubeDSL::Generator.new(
35
- schema_dir: File.join('..', local_path),
36
- output_dir: File.join('kube-dsl', 'dsl'),
37
- inflector: Dry::Inflector.new do |inflections|
38
- inflections.acronym('DSL')
39
-
40
- inflections.plural('tls', 'tlses')
41
- inflections.singular('tls', 'tls')
42
- end
43
- )
44
-
45
- generator.generate_resource_files
46
- generator.generate_autoload_files
47
- generator.generate_entrypoint_file do |resource, ns|
48
- version = resource.ref.version || ''
49
- !version.include?('beta') && !version.include?('alpha')
34
+ generator = KubeDSL::Generator.new(
35
+ schema_dir: local_schema_path,
36
+ output_dir: File.join('lib'),
37
+ autoload_prefix: File.join('kube-dsl', 'dsl'),
38
+ dsl_namespace: ['KubeDSL', 'DSL'],
39
+ entrypoint_namespace: ['KubeDSL'],
40
+ inflector: Dry::Inflector.new do |inflections|
41
+ inflections.acronym('DSL')
42
+
43
+ inflections.singular('tls', 'tls')
44
+ inflections.singular('causes', 'cause')
45
+
46
+ inflections.plural('tls', 'tlses')
47
+ inflections.plural('enum', 'enums')
48
+ inflections.plural('one_of', 'one_ofs')
49
+ inflections.plural('any_of', 'any_ofs')
50
+ inflections.plural('all_of', 'all_ofs')
50
51
  end
52
+ )
53
+
54
+ generator.generate_resource_files
55
+ generator.generate_autoload_files
56
+ generator.generate_entrypoint_file do |resource, ns|
57
+ version = resource.ref.version || ''
58
+ !version.include?('beta') && !version.include?('alpha')
51
59
  end
52
60
  end
@@ -0,0 +1,41 @@
1
+ module KubeDSL
2
+ class ArrayFieldRes
3
+ include StringHelpers
4
+
5
+ attr_reader :name, :required, :elem_res
6
+
7
+ alias_method :required?, :required
8
+
9
+ def initialize(name, required, elem_res)
10
+ @name = name
11
+ @required = required
12
+ @elem_res = elem_res
13
+ end
14
+
15
+ def fields_to_ruby(inflector)
16
+ [
17
+ "array_field(:#{underscore(inflector.singularize(name))})"\
18
+ " { #{elem_res.ref.ruby_namespace.join('::')}::#{elem_res.ref.kind}.new }"
19
+ ]
20
+ end
21
+
22
+ def validations(inflector)
23
+ [].tap do |result|
24
+ ruby_type = [*elem_res.ref.ruby_namespace, elem_res.ref.kind].join('::')
25
+ result << "validates :#{plural_name(inflector)}, array: { kind_of: #{ruby_type} }, presence: #{required? ? 'true' : 'false'}"
26
+ end
27
+ end
28
+
29
+ def serialize_call(inflector)
30
+ "#{plural_name(inflector)}.map(&:serialize)"
31
+ end
32
+
33
+ private
34
+
35
+ def plural_name(inflector)
36
+ inflector.pluralize(
37
+ underscore(inflector.singularize(name))
38
+ )
39
+ end
40
+ end
41
+ end
@@ -4,12 +4,17 @@ module KubeDSL
4
4
  class Builder
5
5
  include StringHelpers
6
6
 
7
- attr_reader :schema_dir, :output_dir, :namespace, :inflector, :resolvers
7
+ attr_reader :schema_dir, :output_dir, :autoload_prefix
8
+ attr_reader :dsl_namespace, :entrypoint_namespace
9
+ attr_reader :inflector, :resolvers
8
10
 
9
- def initialize(schema_dir:, output_dir:, inflector:)
11
+ def initialize(schema_dir:, output_dir:, autoload_prefix:, inflector:, dsl_namespace:, entrypoint_namespace:)
10
12
  @schema_dir = schema_dir
11
13
  @output_dir = output_dir
14
+ @autoload_prefix = autoload_prefix
12
15
  @inflector = inflector
16
+ @dsl_namespace = dsl_namespace
17
+ @entrypoint_namespace = entrypoint_namespace
13
18
  @resolvers ||= {}
14
19
  end
15
20
 
@@ -19,25 +24,17 @@ module KubeDSL
19
24
  end
20
25
  end
21
26
 
22
- def each_resource
27
+ def each_resource_file
23
28
  return to_enum(__method__) unless block_given?
24
29
 
25
- resources.each do |res|
26
- # "External" resources are ones that live outside the current
27
- # schema, i.e. k8s resources like ObjectMeta that other
28
- # k8s-compatible schemas depend on.
29
- #
30
- # Resources can be "empty" if they contain no properties. This
31
- # usually happens for resources that are really just aliases
32
- # for basic types like integer and string. The k8s' Duration
33
- # object is a good example. It's just an alias for string.
34
- yield res if !res.external? && !res.empty?
30
+ each_resource do |res|
31
+ yield File.join(output_dir, res.ref.ruby_autoload_path), res
35
32
  end
36
33
  end
37
34
 
38
35
  def entrypoint(&block)
39
36
  ''.tap do |ruby_code|
40
- ruby_code << "module #{namespace[0..-2].join('::')}::Entrypoint\n"
37
+ ruby_code << "module #{entrypoint_namespace.join('::')}::Entrypoint\n"
41
38
 
42
39
  each_resource do |resource|
43
40
  ns = resource.ref.ruby_namespace.join('::')
@@ -53,26 +50,15 @@ module KubeDSL
53
50
  end
54
51
  end
55
52
 
56
- def namespace
57
- @namespace ||= inflector.classify(
58
- File
59
- .split(output_dir)
60
- .map { |seg| inflector.camelize(underscore(seg)) }
61
- .join('/')
62
- ).split('::')
63
- end
64
-
65
53
  def entrypoint_path
66
- File.join(File.dirname(output_dir), 'entrypoint.rb')
54
+ File.join(output_dir, File.dirname(autoload_prefix), 'entrypoint.rb')
67
55
  end
68
56
 
69
57
  def each_autoload_file(&block)
70
58
  return to_enum(__method__) unless block
71
59
 
72
- start = output_dir.split(File::SEPARATOR).first
73
-
74
60
  each_autoload_file_helper(
75
- autoload_map[start], [start], &block
61
+ autoload_map[:root], [], &block
76
62
  )
77
63
  end
78
64
 
@@ -82,18 +68,33 @@ module KubeDSL
82
68
  end
83
69
 
84
70
  res = resource_cache[ref.str] = ref.meta
85
-
86
71
  add_doc_to_resource(res, ref.document)
87
72
 
88
73
  res
89
74
  end
90
75
 
91
76
  def parse_ref(ref_str)
92
- Ref.new(ref_str, namespace, output_dir, inflector, schema_dir)
77
+ Ref.new(ref_str, dsl_namespace, inflector, schema_dir, autoload_prefix)
93
78
  end
94
79
 
95
80
  private
96
81
 
82
+ def each_resource
83
+ return to_enum(__method__) unless block_given?
84
+
85
+ resources.each do |res|
86
+ # "External" resources are ones that live outside the current
87
+ # schema, i.e. k8s resources like ObjectMeta that other
88
+ # k8s-compatible schemas depend on.
89
+ #
90
+ # Resources can be "empty" if they contain no properties. This
91
+ # usually happens for resources that are really just aliases
92
+ # for basic types like integer and string. The k8s' Duration
93
+ # object is a good example. It's just an alias for string.
94
+ yield res if !res.external? && !res.empty?
95
+ end
96
+ end
97
+
97
98
  def resources
98
99
  JSON.parse(File.read(start_path))['oneOf'].map do |entry|
99
100
  resource_from_ref(resolve_ref(entry['$ref']))
@@ -106,7 +107,7 @@ module KubeDSL
106
107
  parts = res.ref.ruby_autoload_path.split(File::SEPARATOR)
107
108
  parts.reject!(&:empty?)
108
109
 
109
- parts.inject(amap) do |ret, seg|
110
+ [:root, *parts].inject(amap) do |ret, seg|
110
111
  if seg.end_with?('.rb')
111
112
  ret[seg] = res
112
113
  else
@@ -138,7 +139,7 @@ module KubeDSL
138
139
  end
139
140
 
140
141
  ruby_code << "end\n"
141
- yield File.join(*path, "#{ns}.rb"), ruby_code
142
+ yield File.join(output_dir, *path, "#{ns}.rb"), ruby_code
142
143
  each_autoload_file_helper(children, path + [ns], &block)
143
144
  end
144
145
  end
@@ -151,6 +152,7 @@ module KubeDSL
151
152
 
152
153
  def add_props_to_resource(properties, res)
153
154
  properties.each do |name, prop|
155
+ next if name.start_with?('$')
154
156
  add_prop_to_resource(name, prop, res)
155
157
  end
156
158
  end
@@ -168,27 +170,34 @@ module KubeDSL
168
170
  end
169
171
 
170
172
  def add_prop_to_resource(name, prop, res)
173
+ required = prop.include?('type') && !prop['type'].include?('null')
174
+
171
175
  case Array(prop['type']).first
172
176
  when 'array'
173
- if ref_str = prop['items']['$ref']
177
+ if ref_str = prop.dig('items', '$ref')
174
178
  ref = resolve_ref(ref_str)
175
- res.array_fields[name] = resource_from_ref(ref)
179
+ res.fields[name] = ArrayFieldRes.new(
180
+ name, required, resource_from_ref(ref)
181
+ )
176
182
  else
177
- res.fields << name
183
+ res.fields[name] = FieldRes.new(
184
+ name, (prop.dig('items', 'types') || ['string']).first, required
185
+ )
178
186
  end
179
187
 
180
188
  when 'object' # this means key/value pairs
181
- fmt = prop['additionalProperties']['format'] || 'string'
182
- res.key_value_fields[name] = fmt
189
+ type = prop.dig('additionalProperties', 'format') || 'string'
190
+ res.fields[name] = KeyValueFieldRes.new(name, res, type, required)
183
191
 
184
192
  when 'string', 'integer', 'number', 'boolean', 'date-time'
185
193
  enum = prop['enum']
186
194
 
187
195
  if enum&.size == 1
188
- # use JSON.generate to add quotes around strings, etc
189
- res.default_fields[name] = JSON.generate(enum.first)
196
+ res.fields[name] = DefaultFieldRes.new(name, res, enum)
190
197
  else
191
- res.fields << name
198
+ res.fields[name] = FieldRes.new(
199
+ name, Array(prop['type']).first, required
200
+ )
192
201
  end
193
202
 
194
203
  else
@@ -196,16 +205,20 @@ module KubeDSL
196
205
 
197
206
  if ref.object?
198
207
  # this ref refers to a nested type
199
- res.object_fields[name] = resource_from_ref(ref)
208
+ res.fields[name] = ObjectFieldRes.new(
209
+ name, resource_from_ref(ref)
210
+ )
200
211
  else
201
212
  # this ref refers to just a field
202
- res.fields << name
213
+ res.fields[name] = FieldRes.new(
214
+ name, (prop.dig('items', 'types') || ['string']).first, required
215
+ )
203
216
  end
204
217
  end
205
218
  end
206
219
 
207
220
  def start_path
208
- @entrypoint_path ||= File.join(schema_dir, 'all.json')
221
+ @start_path ||= File.join(schema_dir, 'all.json')
209
222
  end
210
223
 
211
224
  def resource_cache