kube-dsl 0.3.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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