kubernetes_references 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +101 -0
  4. data/README.md +225 -33
  5. data/Steepfile +2 -0
  6. data/lib/kubernetes_references/{exec_action.rb → action/exec_action.rb} +7 -0
  7. data/lib/kubernetes_references/{grpc_action.rb → action/grpc_action.rb} +8 -0
  8. data/lib/kubernetes_references/action/http_get_action.rb +24 -0
  9. data/lib/kubernetes_references/{tcp_socket_action.rb → action/tcp_socket_action.rb} +8 -0
  10. data/lib/kubernetes_references/affinity.rb +22 -0
  11. data/lib/kubernetes_references/api.rb +9 -1
  12. data/lib/kubernetes_references/capabilities.rb +8 -0
  13. data/lib/kubernetes_references/{config_map_env_source.rb → config_map/config_map_env_source.rb} +8 -0
  14. data/lib/kubernetes_references/{config_map_key_selector.rb → config_map/config_map_key_selector.rb} +9 -0
  15. data/lib/kubernetes_references/config_map/config_map_projection.rb +20 -0
  16. data/lib/kubernetes_references/container/container.rb +79 -0
  17. data/lib/kubernetes_references/container/container_port.rb +27 -0
  18. data/lib/kubernetes_references/container/container_state.rb +20 -0
  19. data/lib/kubernetes_references/container/container_state_running.rb +16 -0
  20. data/lib/kubernetes_references/container/container_state_terminated.rb +34 -0
  21. data/lib/kubernetes_references/container/container_state_waiting.rb +18 -0
  22. data/lib/kubernetes_references/container/container_status.rb +40 -0
  23. data/lib/kubernetes_references/cron_job/cron_job.rb +28 -0
  24. data/lib/kubernetes_references/cron_job/cron_job_spec.rb +34 -0
  25. data/lib/kubernetes_references/cron_job/cron_job_status.rb +22 -0
  26. data/lib/kubernetes_references/daemon_set/daemon_set.rb +28 -0
  27. data/lib/kubernetes_references/daemon_set/daemon_set_condition.rb +28 -0
  28. data/lib/kubernetes_references/daemon_set/daemon_set_spec.rb +28 -0
  29. data/lib/kubernetes_references/daemon_set/daemon_set_status.rb +43 -0
  30. data/lib/kubernetes_references/daemon_set/daemon_set_update_strategy.rb +20 -0
  31. data/lib/kubernetes_references/daemon_set/rolling_update_daemon_set.rb +19 -0
  32. data/lib/kubernetes_references/deployment/deployment.rb +28 -0
  33. data/lib/kubernetes_references/deployment/deployment_condition.rb +31 -0
  34. data/lib/kubernetes_references/deployment/deployment_spec.rb +37 -0
  35. data/lib/kubernetes_references/deployment/deployment_status.rb +37 -0
  36. data/lib/kubernetes_references/deployment/deployment_strategy.rb +19 -0
  37. data/lib/kubernetes_references/deployment/rolling_update_deployment.rb +19 -0
  38. data/lib/kubernetes_references/downward/downward_api_projection.rb +16 -0
  39. data/lib/kubernetes_references/downward/downward_api_volume_file.rb +25 -0
  40. data/lib/kubernetes_references/env/env_from_source.rb +22 -0
  41. data/lib/kubernetes_references/env/env_var.rb +22 -0
  42. data/lib/kubernetes_references/env/env_var_source.rb +25 -0
  43. data/lib/kubernetes_references/ephemeral_container.rb +82 -0
  44. data/lib/kubernetes_references/errors.rb +1 -0
  45. data/lib/kubernetes_references/fields.yaml +24 -0
  46. data/lib/kubernetes_references/fields_v1.rb +16 -0
  47. data/lib/kubernetes_references/host_alias.rb +19 -0
  48. data/lib/kubernetes_references/http_header.rb +9 -0
  49. data/lib/kubernetes_references/job/job.rb +28 -0
  50. data/lib/kubernetes_references/job/job_condition.rb +31 -0
  51. data/lib/kubernetes_references/job/job_status.rb +40 -0
  52. data/lib/kubernetes_references/job/uncounted_terminated_pods.rb +19 -0
  53. data/lib/kubernetes_references/job_spec.rb +43 -0
  54. data/lib/kubernetes_references/job_template_spec.rb +19 -0
  55. data/lib/kubernetes_references/key_to_path.rb +22 -0
  56. data/lib/kubernetes_references/label_selector.rb +19 -0
  57. data/lib/kubernetes_references/label_selector_requirement.rb +22 -0
  58. data/lib/kubernetes_references/lifecycle.rb +9 -0
  59. data/lib/kubernetes_references/lifecycle_handler.rb +11 -0
  60. data/lib/kubernetes_references/local_object_reference.rb +16 -0
  61. data/lib/kubernetes_references/managed_fields_entry.rb +34 -0
  62. data/lib/kubernetes_references/node/node_affinity.rb +19 -0
  63. data/lib/kubernetes_references/node/node_selector.rb +16 -0
  64. data/lib/kubernetes_references/node/node_selector_requirement.rb +22 -0
  65. data/lib/kubernetes_references/node/node_selector_term.rb +19 -0
  66. data/lib/kubernetes_references/object_field_selector.rb +9 -0
  67. data/lib/kubernetes_references/object_meta.rb +61 -0
  68. data/lib/kubernetes_references/object_reference.rb +34 -0
  69. data/lib/kubernetes_references/owner_reference.rb +31 -0
  70. data/lib/kubernetes_references/persistent_volume_claim_spec.rb +37 -0
  71. data/lib/kubernetes_references/persistent_volume_claim_template.rb +19 -0
  72. data/lib/kubernetes_references/pod/pod.rb +28 -0
  73. data/lib/kubernetes_references/pod/pod_affinity.rb +19 -0
  74. data/lib/kubernetes_references/pod/pod_affinity_term.rb +25 -0
  75. data/lib/kubernetes_references/pod/pod_anti_affinity.rb +19 -0
  76. data/lib/kubernetes_references/pod/pod_condition.rb +31 -0
  77. data/lib/kubernetes_references/pod/pod_dns_config.rb +22 -0
  78. data/lib/kubernetes_references/pod/pod_dns_config_option.rb +19 -0
  79. data/lib/kubernetes_references/pod/pod_ip.rb +16 -0
  80. data/lib/kubernetes_references/pod/pod_os.rb +16 -0
  81. data/lib/kubernetes_references/pod/pod_readiness_gate.rb +16 -0
  82. data/lib/kubernetes_references/pod/pod_security_context.rb +42 -0
  83. data/lib/kubernetes_references/pod/pod_spec.rb +121 -0
  84. data/lib/kubernetes_references/pod/pod_status.rb +52 -0
  85. data/lib/kubernetes_references/pod/pod_template_spec.rb +19 -0
  86. data/lib/kubernetes_references/preferred_scheduling_term.rb +19 -0
  87. data/lib/kubernetes_references/probe.rb +25 -0
  88. data/lib/kubernetes_references/quantity.rb +5 -0
  89. data/lib/kubernetes_references/resource_field_selector.rb +11 -0
  90. data/lib/kubernetes_references/resource_requirements.rb +9 -0
  91. data/lib/kubernetes_references/seccomp_profile.rb +9 -0
  92. data/lib/kubernetes_references/{secret_env_source.rb → secret/secret_env_source.rb} +9 -0
  93. data/lib/kubernetes_references/{secret_key_selector.rb → secret/secret_key_selector.rb} +11 -0
  94. data/lib/kubernetes_references/secret/secret_projection.rb +22 -0
  95. data/lib/kubernetes_references/security_context.rb +27 -0
  96. data/lib/kubernetes_references/selinux_options.rb +13 -0
  97. data/lib/kubernetes_references/service_account_token_projection.rb +22 -0
  98. data/lib/kubernetes_references/sysctl.rb +19 -0
  99. data/lib/kubernetes_references/toleration.rb +28 -0
  100. data/lib/kubernetes_references/topology_spread_constraint.rb +25 -0
  101. data/lib/kubernetes_references/typed_local_object_reference.rb +22 -0
  102. data/lib/kubernetes_references/version.rb +1 -1
  103. data/lib/kubernetes_references/volume/volume.rb +103 -0
  104. data/lib/kubernetes_references/{volume_device.rb → volume/volume_device.rb} +9 -0
  105. data/lib/kubernetes_references/volume/volume_mount.rb +31 -0
  106. data/lib/kubernetes_references/volume/volume_projection.rb +25 -0
  107. data/lib/kubernetes_references/volume_source/aws_elastic_block_store_volume_source.rb +25 -0
  108. data/lib/kubernetes_references/volume_source/azure_disk_volume_source.rb +31 -0
  109. data/lib/kubernetes_references/volume_source/azure_file_volume_source.rb +22 -0
  110. data/lib/kubernetes_references/volume_source/cephfs_volume_source.rb +31 -0
  111. data/lib/kubernetes_references/volume_source/cinder_volume_source.rb +25 -0
  112. data/lib/kubernetes_references/volume_source/config_map_volume_source.rb +25 -0
  113. data/lib/kubernetes_references/volume_source/csi_volume_source.rb +28 -0
  114. data/lib/kubernetes_references/volume_source/downward_api_volume_source.rb +19 -0
  115. data/lib/kubernetes_references/volume_source/empty_dir_volume_source.rb +19 -0
  116. data/lib/kubernetes_references/volume_source/ephemeral_volume_source.rb +16 -0
  117. data/lib/kubernetes_references/volume_source/fc_volume_source.rb +28 -0
  118. data/lib/kubernetes_references/volume_source/flex_volume_source.rb +28 -0
  119. data/lib/kubernetes_references/volume_source/flocker_volume_source.rb +19 -0
  120. data/lib/kubernetes_references/volume_source/gce_persistent_disk_volume_source.rb +25 -0
  121. data/lib/kubernetes_references/volume_source/git_repo_volume_source.rb +22 -0
  122. data/lib/kubernetes_references/volume_source/glusterfs_volume_source.rb +22 -0
  123. data/lib/kubernetes_references/volume_source/host_path_volume_source.rb +19 -0
  124. data/lib/kubernetes_references/volume_source/iscsi_volume_source.rb +46 -0
  125. data/lib/kubernetes_references/volume_source/nfs_volume_source.rb +22 -0
  126. data/lib/kubernetes_references/volume_source/persistent_volume_claim_volume_source.rb +19 -0
  127. data/lib/kubernetes_references/volume_source/photon_persistent_disk_volume_source.rb +19 -0
  128. data/lib/kubernetes_references/volume_source/portworx_volume_source.rb +22 -0
  129. data/lib/kubernetes_references/volume_source/projected_volume_source.rb +19 -0
  130. data/lib/kubernetes_references/volume_source/quobyte_volume_source.rb +31 -0
  131. data/lib/kubernetes_references/volume_source/rbd_volume_source.rb +37 -0
  132. data/lib/kubernetes_references/volume_source/scaleio_volume_source.rb +43 -0
  133. data/lib/kubernetes_references/volume_source/secret_volume_source.rb +25 -0
  134. data/lib/kubernetes_references/volume_source/storageos_volume_source.rb +28 -0
  135. data/lib/kubernetes_references/volume_source/vsphere_virtual_disk_volume_source.rb +25 -0
  136. data/lib/kubernetes_references/weighted_pod_affinity_term.rb +19 -0
  137. data/lib/kubernetes_references/windows_security_context_options.rb +13 -0
  138. data/lib/kubernetes_references.rb +224 -17
  139. data/sig/affinity.rbs +9 -0
  140. data/sig/api.rbs +10 -0
  141. data/sig/config_map/config_map_key_selector.rbs +9 -0
  142. data/sig/config_map/config_map_projection.rbs +9 -0
  143. data/sig/container/container_state.rbs +9 -0
  144. data/sig/container/container_state_running.rbs +7 -0
  145. data/sig/container/container_state_terminated.rbs +13 -0
  146. data/sig/container/container_state_waiting.rbs +8 -0
  147. data/sig/container/container_status.rbs +15 -0
  148. data/sig/cron_job/cron_job.rbs +12 -0
  149. data/sig/cron_job/cron_job_spec.rbs +13 -0
  150. data/sig/cron_job/cron_job_status.rbs +9 -0
  151. data/sig/daemon_set/daemon_set.rbs +11 -0
  152. data/sig/daemon_set/daemon_set_condition.rbs +11 -0
  153. data/sig/daemon_set/daemon_set_spec.rbs +11 -0
  154. data/sig/daemon_set/daemon_set_status.rbs +16 -0
  155. data/sig/daemon_set/daemon_set_update_strategy.rbs +8 -0
  156. data/sig/daemon_set/rolling_update_daemon_set.rbs +8 -0
  157. data/sig/deployment/deployment.rbs +11 -0
  158. data/sig/deployment/deployment_condition.rbs +12 -0
  159. data/sig/deployment/deployment_spec.rbs +14 -0
  160. data/sig/deployment/deployment_status.rbs +14 -0
  161. data/sig/deployment/deployment_strategy.rbs +8 -0
  162. data/sig/deployment/rolling_update_deployment.rbs +8 -0
  163. data/sig/downward/downward_api_projection.rbs +7 -0
  164. data/sig/downward/downward_api_volume_file.rbs +10 -0
  165. data/sig/env/env_from_source.rbs +9 -0
  166. data/sig/env/env_var.rbs +9 -0
  167. data/sig/env/env_var_source.rbs +10 -0
  168. data/sig/ephemeral_container.rbs +31 -0
  169. data/sig/errors.rbs +3 -0
  170. data/sig/fields_v1.rbs +7 -0
  171. data/sig/host_alias.rbs +8 -0
  172. data/sig/job/job.rbs +11 -0
  173. data/sig/job/job_condition.rbs +12 -0
  174. data/sig/job/job_status.rbs +15 -0
  175. data/sig/job/uncounted_terminated_pods.rbs +8 -0
  176. data/sig/job_spec.rbs +17 -0
  177. data/sig/job_template_spec.rbs +8 -0
  178. data/sig/key_to_path.rbs +9 -0
  179. data/sig/label_selector.rbs +8 -0
  180. data/sig/label_selector_requirement.rbs +9 -0
  181. data/sig/lifecycle.rbs +6 -4
  182. data/sig/lifecycle_handler.rbs +7 -5
  183. data/sig/local_object_reference.rbs +7 -0
  184. data/sig/managed_fields_entry.rbs +13 -0
  185. data/sig/node/node_affinity.rbs +8 -0
  186. data/sig/node/node_selector.rbs +7 -0
  187. data/sig/node/node_selector_requirement.rbs +9 -0
  188. data/sig/node/node_selector_term.rbs +8 -0
  189. data/sig/object_meta.rbs +22 -0
  190. data/sig/object_reference.rbs +13 -0
  191. data/sig/owner_reference.rbs +13 -0
  192. data/sig/persistent_volume_claim_spec.rbs +14 -0
  193. data/sig/persistent_volume_claim_template.rbs +8 -0
  194. data/sig/pod/pod.rbs +11 -0
  195. data/sig/pod/pod_affinity.rbs +8 -0
  196. data/sig/pod/pod_affinity_term.rbs +10 -0
  197. data/sig/pod/pod_anti_affinity.rbs +8 -0
  198. data/sig/pod/pod_condition.rbs +12 -0
  199. data/sig/pod/pod_dns_config.rbs +9 -0
  200. data/sig/pod/pod_dns_config_option.rbs +8 -0
  201. data/sig/pod/pod_ip.rbs +7 -0
  202. data/sig/pod/pod_os.rbs +7 -0
  203. data/sig/pod/pod_readiness_gate.rbs +7 -0
  204. data/sig/pod/pod_security_context.rbs +16 -0
  205. data/sig/pod/pod_spec.rbs +42 -0
  206. data/sig/pod/pod_status.rbs +19 -0
  207. data/sig/pod/pod_template_spec.rbs +8 -0
  208. data/sig/preferred_scheduling_term.rbs +8 -0
  209. data/sig/probe.rbs +14 -12
  210. data/sig/resource_field_selector.rbs +8 -6
  211. data/sig/secret/secret_projection.rbs +9 -0
  212. data/sig/security_context.rbs +15 -13
  213. data/sig/service_account_token_projection.rbs +9 -0
  214. data/sig/sysctl.rbs +8 -0
  215. data/sig/toleration.rbs +11 -0
  216. data/sig/topology_spread_constraint.rbs +10 -0
  217. data/sig/typed_local_object_reference.rbs +9 -0
  218. data/sig/volume/volume.rbs +36 -0
  219. data/sig/volume/volume_projection.rbs +10 -0
  220. data/sig/volume_source/aws_elastic_block_store_volume_source.rbs +10 -0
  221. data/sig/volume_source/azure_disk_volume_source.rbs +12 -0
  222. data/sig/volume_source/azure_file_volume_source.rbs +9 -0
  223. data/sig/volume_source/cephfs_volume_source.rbs +12 -0
  224. data/sig/volume_source/cinder_volume_source.rbs +10 -0
  225. data/sig/volume_source/config_map_volume_source.rbs +10 -0
  226. data/sig/volume_source/csi_volume_source.rbs +11 -0
  227. data/sig/volume_source/downward_api_volume_source.rbs +8 -0
  228. data/sig/volume_source/empty_dir_volume_source.rbs +8 -0
  229. data/sig/volume_source/ephemeral_volume_source.rbs +7 -0
  230. data/sig/volume_source/fc_volume_source.rbs +11 -0
  231. data/sig/volume_source/flex_volume_source.rbs +11 -0
  232. data/sig/volume_source/flocker_volume_source.rbs +8 -0
  233. data/sig/volume_source/gce_persistent_disk_volume_source.rbs +10 -0
  234. data/sig/volume_source/git_repo_volume_source.rbs +9 -0
  235. data/sig/volume_source/glusterfs_volume_source.rbs +9 -0
  236. data/sig/volume_source/host_path_volume_source.rbs +8 -0
  237. data/sig/volume_source/iscsi_volume_source.rbs +17 -0
  238. data/sig/volume_source/nfs_volume_source.rbs +9 -0
  239. data/sig/volume_source/persistent_volume_claim_volume_source.rbs +8 -0
  240. data/sig/volume_source/photon_persistent_disk_volume_source.rbs +8 -0
  241. data/sig/volume_source/portworx_volume_source.rbs +9 -0
  242. data/sig/volume_source/projected_volume_source.rbs +8 -0
  243. data/sig/volume_source/quobyte_volume_sources.rbs +12 -0
  244. data/sig/volume_source/rbd_volume_source.rbs +14 -0
  245. data/sig/volume_source/scaleio_volume_source.rbs +16 -0
  246. data/sig/volume_source/secret_volume_source.rbs +10 -0
  247. data/sig/volume_source/storageos_volume_source.rbs +11 -0
  248. data/sig/volume_source/vsphere_virtual_disk_volume_source.rbs +10 -0
  249. data/sig/weighted_pod_Affinity_term.rbs +8 -0
  250. data/sig/windows_security_context_options.rbs +8 -6
  251. metadata +235 -32
  252. data/lib/kubernetes_references/container.rb +0 -30
  253. data/lib/kubernetes_references/container_port.rb +0 -13
  254. data/lib/kubernetes_references/env_from_source.rb +0 -11
  255. data/lib/kubernetes_references/env_var.rb +0 -11
  256. data/lib/kubernetes_references/env_var_source.rb +0 -12
  257. data/lib/kubernetes_references/http_get_action.rb +0 -13
  258. data/lib/kubernetes_references/volume_mount.rb +0 -14
  259. data/sig/config_map_key_selector.rbs +0 -7
  260. data/sig/env_from_source.rbs +0 -7
  261. data/sig/env_var.rbs +0 -7
  262. data/sig/env_var_source.rbs +0 -8
  263. /data/sig/{exec_action.rbs → action/exec_action.rbs} +0 -0
  264. /data/sig/{grpc_action.rbs → action/grpc_action.rbs} +0 -0
  265. /data/sig/{http_get_action.rbs → action/http_get_action.rbs} +0 -0
  266. /data/sig/{tcp_socket_action.rbs → action/tcp_socket_action.rbs} +0 -0
  267. /data/sig/{config_map_env_source.rbs → config_map/config_map_env_source.rbs} +0 -0
  268. /data/sig/{container.rbs → container/container.rbs} +0 -0
  269. /data/sig/{container_port.rbs → container/container_port.rbs} +0 -0
  270. /data/sig/{secret_env_source.rbs → secret/secret_env_source.rbs} +0 -0
  271. /data/sig/{secret_key_selector.rbs → secret/secret_key_selector.rbs} +0 -0
  272. /data/sig/{volume_device.rbs → volume/volume_device.rbs} +0 -0
  273. /data/sig/{volume_mount.rbs → volume/volume_mount.rbs} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e0a5f4f32d9ba9c816e5a12a2789cc492a2fcd84713ebbfbf92c4ca3e975d86
4
- data.tar.gz: 84067462e1752805bc906006bc041805f8369327756a0543d58800dca0e34eff
3
+ metadata.gz: 140f77c60537f81161b442747444d742ad4f04d9cdf1f2cce952d7a39caca37f
4
+ data.tar.gz: a0bfb97506691ab7826f251fad574e9e2e8e654a689ea99e5b42a2291ddbb7dd
5
5
  SHA512:
6
- metadata.gz: 79ebbefc87acf74ba4035bbc52f00ee95911ab7ba31573bdb1227871cd609ed7f35ba5c17caab41b38a8898ee710a6f03797878e480a5111012e9414cee59328
7
- data.tar.gz: e69dcd1e11ecc685e185ec30562a5e34fba7c9506365c78dc6af96b829be346820318290f73073ddd3fa22bb755b603c4a61fa7797cbc4857c9b902c3aad43c9
6
+ metadata.gz: a6bad835c6c839bbedffe4078873e9606bb0dd2829d32c3261c05825482fa6b4a8ded42206ffcb71d71442afd6a737a1a181361483d111e5af081a0aee2b58a1
7
+ data.tar.gz: 64a50e2c8f35f0a40cddcaaf7c9d080e878b25f0672d7307cadb1f922b5bd3ac4ca78b43a16122de39c1976999a372b4e032f38ee722156e9595085f27b82f5a
data/Gemfile CHANGED
@@ -10,3 +10,5 @@ gem "rake", "~> 13.0"
10
10
  gem "minitest", "~> 5.0"
11
11
 
12
12
  gem "standard", "~> 1.3"
13
+
14
+ gem "steep"
data/Gemfile.lock ADDED
@@ -0,0 +1,101 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ kubernetes_references (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ activesupport (7.0.4.3)
10
+ concurrent-ruby (~> 1.0, >= 1.0.2)
11
+ i18n (>= 1.6, < 2)
12
+ minitest (>= 5.1)
13
+ tzinfo (~> 2.0)
14
+ ast (2.4.2)
15
+ concurrent-ruby (1.2.2)
16
+ csv (3.2.6)
17
+ ffi (1.15.5)
18
+ fileutils (1.7.1)
19
+ i18n (1.13.0)
20
+ concurrent-ruby (~> 1.0)
21
+ json (2.6.3)
22
+ language_server-protocol (3.17.0.3)
23
+ lint_roller (1.0.0)
24
+ listen (3.8.0)
25
+ rb-fsevent (~> 0.10, >= 0.10.3)
26
+ rb-inotify (~> 0.9, >= 0.9.10)
27
+ logger (1.5.3)
28
+ minitest (5.18.0)
29
+ parallel (1.23.0)
30
+ parser (3.2.2.1)
31
+ ast (~> 2.4.1)
32
+ rainbow (3.1.1)
33
+ rake (13.0.6)
34
+ rb-fsevent (0.11.2)
35
+ rb-inotify (0.10.1)
36
+ ffi (~> 1.0)
37
+ rbs (3.1.0)
38
+ regexp_parser (2.8.0)
39
+ rexml (3.2.5)
40
+ rubocop (1.50.2)
41
+ json (~> 2.3)
42
+ parallel (~> 1.10)
43
+ parser (>= 3.2.0.0)
44
+ rainbow (>= 2.2.2, < 4.0)
45
+ regexp_parser (>= 1.8, < 3.0)
46
+ rexml (>= 3.2.5, < 4.0)
47
+ rubocop-ast (>= 1.28.0, < 2.0)
48
+ ruby-progressbar (~> 1.7)
49
+ unicode-display_width (>= 2.4.0, < 3.0)
50
+ rubocop-ast (1.28.1)
51
+ parser (>= 3.2.1.0)
52
+ rubocop-performance (1.16.0)
53
+ rubocop (>= 1.7.0, < 2.0)
54
+ rubocop-ast (>= 0.4.0)
55
+ ruby-progressbar (1.13.0)
56
+ securerandom (0.2.2)
57
+ standard (1.28.3)
58
+ language_server-protocol (~> 3.17.0.2)
59
+ lint_roller (~> 1.0)
60
+ rubocop (~> 1.50.2)
61
+ standard-custom (~> 1.0.0)
62
+ standard-performance (~> 1.0.1)
63
+ standard-custom (1.0.0)
64
+ lint_roller (~> 1.0)
65
+ standard-performance (1.0.1)
66
+ lint_roller (~> 1.0)
67
+ rubocop-performance (~> 1.16.0)
68
+ steep (1.4.0)
69
+ activesupport (>= 5.1)
70
+ concurrent-ruby (>= 1.2.2)
71
+ csv (>= 3.0.9)
72
+ fileutils (>= 1.1.0)
73
+ json (>= 2.1.0)
74
+ language_server-protocol (>= 3.15, < 4.0)
75
+ listen (~> 3.0)
76
+ logger (>= 1.3.0)
77
+ parser (>= 3.1)
78
+ rainbow (>= 2.2.2, < 4.0)
79
+ rbs (>= 2.8.0)
80
+ securerandom (>= 0.1)
81
+ strscan (>= 1.0.0)
82
+ terminal-table (>= 2, < 4)
83
+ strscan (3.0.6)
84
+ terminal-table (3.0.2)
85
+ unicode-display_width (>= 1.1.1, < 3)
86
+ tzinfo (2.0.6)
87
+ concurrent-ruby (~> 1.0)
88
+ unicode-display_width (2.4.2)
89
+
90
+ PLATFORMS
91
+ arm64-darwin-21
92
+
93
+ DEPENDENCIES
94
+ kubernetes_references!
95
+ minitest (~> 5.0)
96
+ rake (~> 13.0)
97
+ standard (~> 1.3)
98
+ steep
99
+
100
+ BUNDLED WITH
101
+ 2.4.12
data/README.md CHANGED
@@ -1,9 +1,25 @@
1
1
  # KubernetesReferences
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/kubernetes_references.svg)](https://badge.fury.io/rb/kubernetes_references)
4
+
3
5
  **Current API version: v1.23**
4
6
 
5
7
  This Ruby gem attempts to collect all the Kubernetes objects available in the API as Ruby objects. Although not very useful at the moment, it could come in handy if you want to develop tools that need to play with the api's schemas.
6
8
 
9
+ ## What is it
10
+
11
+ * a dictionary of native Kubernetes objects
12
+ * a precise definition of object types
13
+ * a native library without external dependencies
14
+
15
+
16
+ ## What it is not
17
+
18
+ * a wrapper around kubectl explain
19
+ * a Kubernetes client
20
+ * a tool officially managed by the Kubernetes team
21
+
22
+
7
23
  ## Naming and conventions
8
24
 
9
25
  The files in this gem are named in snake_case and the classes are in camelCase.
@@ -34,7 +50,7 @@ container = KubernetesReferences::Container.new(
34
50
  )
35
51
  ```
36
52
 
37
- Tired of writing "KubernetesReferences::" ? Shortcuts are present with the `Kube` prefix:
53
+ Tired of writing "KubernetesReferences::" ? Classes are also callable with the `Kube` prefix:
38
54
 
39
55
  ```ruby
40
56
  require "kubernetes_references"
@@ -51,6 +67,22 @@ container = KubeContainer.new(
51
67
 
52
68
  Please check the test files for more examples of how to use this gem.
53
69
 
70
+ ## Compatibility with Kubernetes API
71
+
72
+ Since Ruby uses snake_case attributes instead of the camelCase used by Go (and therefore by Kubernetes), each object definition (let's call them templates) has a `#schema` method that returns a (native) Ruby hash with the right keys.
73
+
74
+
75
+ **Example**
76
+
77
+ ```
78
+ irb(main):001:0> container = KubeContainer.new(image_pull_policy: "Always")
79
+ => #<KubernetesReferences::Container:0x0000000100f4ce18 @image_pull_policy="Always">
80
+ irb(main):002:0> container.schema
81
+ => {:imagePullPolicy=>"Always"}
82
+ ```
83
+
84
+ when calling the "`#schema`" method, all sub-models on which the called object depends are also rendered with the correct keys. You can basically use the `to_json` method on `schema` to generate ready-to-use Kubernetes `json` manifests.
85
+
54
86
  ## Types
55
87
 
56
88
  All objects have type definitions as rbs files, in the "sig" folder. To check types, the project uses Steep.
@@ -73,7 +105,7 @@ module KubernetesReferences
73
105
  attr_accessor :my_field
74
106
  attr_accessor :another_field
75
107
 
76
- # obj must be hash withfields:
108
+ # obj must be hash with fields:
77
109
  # {
78
110
  # my_field: "my-value",
79
111
  # another_field: 1
@@ -88,9 +120,13 @@ end
88
120
  Types of `my_field` and `another_field` are validated by `Steep` (in the `sig` folder):
89
121
 
90
122
  ```ruby
91
- class KubernetesReferences::MyObjectClass
92
- attr_accessor my_field: String
93
- attr_accessor another_field: Integer
123
+ module KubernetesReferences
124
+ class MyObjectClass < KubernetesReferences::API
125
+ attr_accessor my_field: String
126
+ attr_accessor another_field: Integer
127
+
128
+ def initialize: (untyped obj) -> void
129
+ end
94
130
  end
95
131
  ```
96
132
 
@@ -100,35 +136,191 @@ This method avoids the need for additional requires such as OpenStruct or Struct
100
136
 
101
137
  The Kubernetes api is extremely large and evolves regularly. For the moment, the following objects are supported:
102
138
 
139
+ ### Workloads APIs
140
+
141
+ - [x] Container v1 core
142
+ - [x] CronJob v1 batch
143
+ - [x] DaemonSet v1 apps
144
+ - [x] Deployment v1 apps
145
+ - [x] Job v1 batch
146
+ - [x] Pod v1 core
147
+ - [] ReplicaSet v1 apps
148
+ - [] ReplicationController v1 core
149
+ - [] StatefulSet v1 apps
150
+
151
+ ### Service APIs
152
+
153
+ - [] Endpoints v1 core
154
+ - [] EndpointSlice v1 discovery.k8s.io
155
+ - [] Ingress v1 networking.k8s.io
156
+ - [] IngressClass v1 networking.k8s.io
157
+ - [] Service v1 core
158
+
159
+ ### Config and storage APIs
160
+
161
+ - [] ConfigMap v1 core
162
+ - [] CSIDriver v1 storage.k8s.io
163
+ - [] CSINode v1 storage.k8s.io
164
+ - [] Secret v1 core
165
+ - [] PersistentVolumeClaim v1 core
166
+ - [] StorageClass v1 storage.k8s.io
167
+ - [] CSIStorageCapacity v1beta1 storage.k8s.io
168
+ - [] Volume v1 core
169
+ - [] VolumeAttachment v1 storage.k8s.io
170
+
171
+ ### Metadata APIs
172
+
173
+ - [] ControllerRevision v1 apps
174
+ - [] CustomResourceDefinition v1 apiextensions.k8s.io
175
+ - [] Event v1 events.k8s.io
176
+ - [] LimitRange v1 core
177
+ - [] HorizontalPodAutoscaler v1 autoscaling
178
+ - [] MutatingWebhookConfiguration v1 admissionregistration.k8s.io
179
+ - [] ValidatingWebhookConfiguration v1 admissionregistration.k8s.io
180
+ - [] PodTemplate v1 core
181
+ - [] PodDisruptionBudget v1 policy
182
+ - [] PriorityClass v1 scheduling.k8s.io
183
+ - [] PodSecurityPolicy v1beta policy
184
+
185
+ ### Cluster APIs
186
+
187
+ - [] APIService v1 apiregistration.k8s.io
188
+ - [] Binding v1 core
189
+ - [] CertificateSigningRequest v1 certificats.k8s.io
190
+ - [] ClusterRole v1 rbac.authorization.k8s.io
191
+ - [] ClusterRoleBinding v1 rbac.authorization.k8s.io
192
+ - [] ComponentStatus v1 core
193
+ - [] FlowSchema v1beta1 flowcontrol.apiserver.k8s.io
194
+ - [] Lease v1 coordination.k8s.io
195
+ - [] LocalSubjectAccessReview v1 authorization.k8s.io
196
+ - [] Namespace v1 core
197
+ - [] Node v1 core
198
+ - [] PersistentVolume v1 core
199
+ - [] PriorityLevelConfiguration v1beta1 flowcontrol.apiserver.k8s.io
200
+ - [] ResourceQuota v1 core
201
+ - [] Role v1 rbac.authorization.k8s.io
202
+ - [] RoleBinding v1 rbac.authorization.k8s.io
203
+ - [] RuntimeClass v1 nodes.k8s.io
204
+ - [] SelfSubjectAccessReview v1 authorization.k8s.io
205
+ - [] SelfSubjectRulesReview v1 authorization.k8s.io
206
+ - [] ServiceAccount v1 core
207
+ - [] StorageVersion v1alpha1 internal.apiserver.k8s.io
208
+ - [] SubjectAccessReview v1 authorization.k8s.io
209
+ - [] TokenRequest v1 authentication.k8s.io
210
+ - [] TokenReview v1 authentication.k8s.io
211
+ - [] NetworkPolicy v1 networking.k8s.io
103
212
  ```
104
- core/v1 Capabilities
105
- core/v1 ConfigMapEnvSource
106
- core/v1 ConfigMapKeySelector
107
- core/v1 Container
108
- core/v1 ContainerPort
109
- core/v1 EnvFromSource
110
- core/v1 EnvVar
111
- core/v1 EnvVarSource
112
- core/v1 ExecAction
113
- core/v1 GRPCAction
114
- core/v1 HTTPGetAction
115
- core/v1 HTTPHeader
116
- core/v1 Lifecycle
117
- core/v1 LifecycleHandler
118
- core/v1 ObjectFieldSelector
119
- core/v1 Probe
120
- core/v1 Quantity # todo
121
- core/v1 ResourceFieldSelector
122
- core/v1 ResourceRequirements
123
- core/v1 SeccompProfile
124
- core/v1 SecretEnvSource
125
- core/v1 SecretKeySelector
126
- core/v1 SecurityContext
127
- core/v1 SELinuxOptions
128
- core/v1 TCPSocketAction
129
- core/v1 VolumeDevice
130
- core/v1 VolumeMount
131
- core/v1 WindowsSecurityContextOptions
213
+ Affinity
214
+ AWSElasticBlockStoreVolumeSource
215
+ AzureDiskVolumeSource
216
+ AzureFileVolumeSource
217
+ Capabilities
218
+ CephFSVolumeSource
219
+ CinderVolumeSource
220
+ ConfigMapEnvSource
221
+ ConfigMapKeySelector
222
+ ConfigMapProjection
223
+ ConfigMapVolumeSource
224
+ Container
225
+ ContainerPort
226
+ ContainerState
227
+ ContainerStateRunning
228
+ ContainerStateTerminated
229
+ ContainerStateWaiting
230
+ ContainerStatus
231
+ CronJob
232
+ CronJobSpec
233
+ CronJobStatus
234
+ CSIVolumeSource
235
+ DownwardAPIProjection
236
+ DownwardAPIVolumeFile
237
+ DownwardAPIVolumeSource
238
+ EmptyDirVolumeSource
239
+ EnvFromSource
240
+ EnvVar
241
+ EnvVarSource
242
+ EphemeralContainer
243
+ EphemeralVolumeSource
244
+ ExecAction
245
+ FCVolumeSource
246
+ FieldsV1
247
+ FlexVolumeSource
248
+ FlockerVolumeSource
249
+ GCEPersistentDiskVolumeSource
250
+ GitRepoVolumeSource
251
+ GlusterfsVolumeSource
252
+ GRPCAction
253
+ HostAlias
254
+ HostPathVolumeSource
255
+ HTTPGetAction
256
+ HTTPHeader
257
+ InvalidObjectFieldError
258
+ ISCSIVolumeSource
259
+ JobSpec
260
+ JobTemplateSpec
261
+ KeyToPath
262
+ KubernetesReferences::Quantity
263
+ LabelSelector
264
+ LabelSelectorRequirement
265
+ Lifecycle
266
+ LifecycleHandler
267
+ LocalObjectReference
268
+ ManagedFieldsEntry
269
+ NFSVolumeSource
270
+ NodeAffinity
271
+ NodeSelector
272
+ NodeSelectorRequirement
273
+ NodeSelectorTerm
274
+ ObjectFieldSelector
275
+ ObjectMeta
276
+ ObjectReference
277
+ OwnerReference
278
+ PersistentVolumeClaimSpec
279
+ PersistentVolumeClaimTemplate
280
+ PersistentVolumeClaimVolumeSource
281
+ PhotonPersistentDiskVolumeSource
282
+ PodAffinity
283
+ PodAffinityTerm
284
+ PodAntiAffinity
285
+ PodDNSConfig
286
+ PodDNSConfigOption
287
+ PodOS
288
+ PodReadinessGate
289
+ PodSecurityContext
290
+ PodSpec
291
+ PodTemplateSpec
292
+ PortworxVolumeSource
293
+ PreferredSchedulingTerm
294
+ Probe
295
+ ProjectedVolumeSource
296
+ Quantity
297
+ QuobyteVolumeSource
298
+ RBDVolumeSource
299
+ ResourceFieldSelector
300
+ ResourceRequirements
301
+ ScaleIOVolumeSource
302
+ SeccompProfile
303
+ SecretEnvSource
304
+ SecretKeySelector
305
+ SecretProjection
306
+ SecretVolumeSource
307
+ SecurityContext
308
+ SELinuxOptions
309
+ ServiceAccountTokenProjection
310
+ StorageOSVolumeSource
311
+ Sysctl
312
+ TCPSocketAction
313
+ TestKubernetesReferences
314
+ Toleration
315
+ TopologySpreadConstraint
316
+ TypedLocalObjectReference
317
+ Volume
318
+ VolumeDevice
319
+ VolumeMount
320
+ VolumeProjection
321
+ VsphereVirtualDiskVolumeSource
322
+ WeightedPodAffinityTerm
323
+ WindowsSecurityContextOptions
132
324
  ```
133
325
 
134
326
  ## Tests
data/Steepfile CHANGED
@@ -28,5 +28,7 @@
28
28
 
29
29
  target :kuberbetes do
30
30
  signature "sig"
31
+ signature "sig/**/*.rbs"
32
+ library "yaml"
31
33
  check "lib/**/*.rb"
32
34
  end
@@ -1,9 +1,16 @@
1
1
  module KubernetesReferences
2
2
  class ExecAction < KubernetesReferences::API
3
+ # @dynamic command, command=
3
4
  attr_accessor :command
4
5
 
5
6
  def initialize(obj)
6
7
  _set!(obj)
7
8
  end
9
+
10
+ def _schema
11
+ {
12
+ command: @command
13
+ }
14
+ end
8
15
  end
9
16
  end
@@ -1,10 +1,18 @@
1
1
  module KubernetesReferences
2
2
  class GRPCAction < KubernetesReferences::API
3
+ # @dynamic port, port=, service, service=
3
4
  attr_accessor :port
4
5
  attr_accessor :service
5
6
 
6
7
  def initialize(obj)
7
8
  _set!(obj)
8
9
  end
10
+
11
+ def _schema
12
+ {
13
+ port: @port,
14
+ service: @service
15
+ }
16
+ end
9
17
  end
10
18
  end
@@ -0,0 +1,24 @@
1
+ module KubernetesReferences
2
+ class HTTPGetAction < KubernetesReferences::API
3
+ # @dynamic host, host=, http_headers, http_headers=, path, path=, port, port=, scheme, scheme=
4
+ attr_accessor :host
5
+ attr_accessor :http_headers
6
+ attr_accessor :path
7
+ attr_accessor :port
8
+ attr_accessor :scheme
9
+
10
+ def initialize(obj)
11
+ _set!(obj)
12
+ end
13
+
14
+ def _schema
15
+ {
16
+ host: @host,
17
+ httpHeaders: @http_headers.each{|r| r.schema},
18
+ path: @path,
19
+ port: @port,
20
+ scheme: @scheme
21
+ }
22
+ end
23
+ end
24
+ end
@@ -1,10 +1,18 @@
1
1
  module KubernetesReferences
2
2
  class TCPSocketAction < KubernetesReferences::API
3
+ # @dynamic host, host=, port, port=
3
4
  attr_accessor :host
4
5
  attr_accessor :port
5
6
 
6
7
  def initialize(obj)
7
8
  _set!(obj)
8
9
  end
10
+
11
+ def _schema
12
+ {
13
+ host: @host,
14
+ port: @port
15
+ }
16
+ end
9
17
  end
10
18
  end
@@ -0,0 +1,22 @@
1
+ module KubernetesReferences
2
+ class Affinity < KubernetesReferences::API
3
+ # @dynamic node_affinity, node_affinity=
4
+ attr_accessor :node_affinity
5
+ # @dynamic pod_affinity, pod_affinity=
6
+ attr_accessor :pod_affinity
7
+ # @dynamic pod_anti_affinity, pod_anti_affinity=
8
+ attr_accessor :pod_anti_affinity
9
+
10
+ def initialize(obj)
11
+ _set!(obj)
12
+ end
13
+
14
+ def _schema
15
+ {
16
+ nodeAffinity: @node_affinity.schema,
17
+ podAffinity: @pod_affinity.schema,
18
+ podAntiAffinity: @pod_anti_affinity.schema
19
+ }
20
+ end
21
+ end
22
+ end
@@ -1,8 +1,16 @@
1
+ require "yaml"
2
+ require "json"
3
+ require 'json/add/symbol'
1
4
  require "kubernetes_references/errors"
2
5
 
3
6
  module KubernetesReferences
4
7
  class API
5
- def to_json
8
+ def to_hash
9
+ schema
10
+ end
11
+
12
+ def schema
13
+ _schema.select{|k, v| v}
6
14
  end
7
15
 
8
16
  def _set!(obj)
@@ -1,10 +1,18 @@
1
1
  module KubernetesReferences
2
2
  class Capabilities < KubernetesReferences::API
3
+ # @dynamic add, add=, drop, drop=
3
4
  attr_accessor :add
4
5
  attr_accessor :drop
5
6
 
6
7
  def initialize(obj)
7
8
  _set!(obj)
8
9
  end
10
+
11
+ def _schema
12
+ {
13
+ add: @add,
14
+ drop: @drop
15
+ }
16
+ end
9
17
  end
10
18
  end
@@ -1,10 +1,18 @@
1
1
  module KubernetesReferences
2
2
  class ConfigMapEnvSource < KubernetesReferences::API
3
+ # @dynamic name, name=, optional, optional=
3
4
  attr_accessor :name
4
5
  attr_accessor :optional
5
6
 
6
7
  def initialize(obj)
7
8
  _set!(obj)
8
9
  end
10
+
11
+ def _schema
12
+ {
13
+ name: @name,
14
+ optional: @optional
15
+ }
16
+ end
9
17
  end
10
18
  end
@@ -1,5 +1,6 @@
1
1
  module KubernetesReferences
2
2
  class ConfigMapKeySelector < KubernetesReferences::API
3
+ # @dynamic key, key=, name, name=, optional, optional=
3
4
  attr_accessor :key
4
5
  attr_accessor :name
5
6
  attr_accessor :optional
@@ -7,5 +8,13 @@ module KubernetesReferences
7
8
  def initialize(obj)
8
9
  _set!(obj)
9
10
  end
11
+
12
+ def _schema
13
+ {
14
+ key: @key,
15
+ name: @name,
16
+ optional: @optional
17
+ }
18
+ end
10
19
  end
11
20
  end
@@ -0,0 +1,20 @@
1
+ module KubernetesReferences
2
+ class ConfigMapProjection < KubernetesReferences::API
3
+ # @dynamic items, items=, name, name=, optional, optional=
4
+ attr_accessor :items
5
+ attr_accessor :name
6
+ attr_accessor :optional
7
+
8
+ def initialize(obj)
9
+ _set!(obj)
10
+ end
11
+
12
+ def _schema
13
+ {
14
+ items: @items.map{|r| r.schema},
15
+ name: @name,
16
+ optional: @optional
17
+ }
18
+ end
19
+ end
20
+ end