kube-dsl 0.7.5 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +2 -2
  4. data/Rakefile +16 -8
  5. data/lib/kube-dsl/dsl/apiextensions/v1/json_schema_props.rb +3 -0
  6. data/lib/kube-dsl/dsl/{storage/v1alpha1/volume_error.rb → apiextensions/v1/validation_rule.rb} +7 -7
  7. data/lib/kube-dsl/dsl/apiextensions/v1.rb +1 -0
  8. data/lib/kube-dsl/dsl/apps/v1/stateful_set_persistent_volume_claim_retention_policy.rb +28 -0
  9. data/lib/kube-dsl/dsl/apps/v1/stateful_set_spec.rb +3 -0
  10. data/lib/kube-dsl/dsl/apps/v1.rb +1 -0
  11. data/lib/kube-dsl/dsl/autoscaling/v2/container_resource_metric_source.rb +31 -0
  12. data/lib/kube-dsl/dsl/autoscaling/v2/container_resource_metric_status.rb +31 -0
  13. data/lib/kube-dsl/dsl/{rbac/v1alpha1/subject.rb → autoscaling/v2/cross_version_object_reference.rb} +4 -7
  14. data/lib/kube-dsl/dsl/autoscaling/v2/external_metric_source.rb +28 -0
  15. data/lib/kube-dsl/dsl/autoscaling/v2/external_metric_status.rb +28 -0
  16. data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler.rb +33 -0
  17. data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_behavior.rb +28 -0
  18. data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_condition.rb +37 -0
  19. data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_list.rb +30 -0
  20. data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_spec.rb +37 -0
  21. data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_status.rb +40 -0
  22. data/lib/kube-dsl/dsl/autoscaling/v2/hpa_scaling_policy.rb +31 -0
  23. data/lib/kube-dsl/dsl/autoscaling/v2/hpa_scaling_rules.rb +31 -0
  24. data/lib/kube-dsl/dsl/autoscaling/v2/metric_identifier.rb +28 -0
  25. data/lib/kube-dsl/dsl/autoscaling/v2/metric_spec.rb +40 -0
  26. data/lib/kube-dsl/dsl/autoscaling/v2/metric_status.rb +40 -0
  27. data/lib/kube-dsl/dsl/autoscaling/v2/metric_target.rb +34 -0
  28. data/lib/kube-dsl/dsl/autoscaling/v2/metric_value_status.rb +31 -0
  29. data/lib/kube-dsl/dsl/autoscaling/v2/object_metric_source.rb +31 -0
  30. data/lib/kube-dsl/dsl/autoscaling/v2/object_metric_status.rb +31 -0
  31. data/lib/kube-dsl/dsl/autoscaling/v2/pods_metric_source.rb +28 -0
  32. data/lib/kube-dsl/dsl/autoscaling/v2/pods_metric_status.rb +28 -0
  33. data/lib/kube-dsl/dsl/autoscaling/v2/resource_metric_source.rb +28 -0
  34. data/lib/kube-dsl/dsl/autoscaling/v2/resource_metric_status.rb +28 -0
  35. data/lib/kube-dsl/dsl/autoscaling/v2.rb +26 -0
  36. data/lib/kube-dsl/dsl/autoscaling.rb +1 -0
  37. data/lib/kube-dsl/dsl/batch/v1/job_status.rb +3 -0
  38. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_distinguisher_method.rb +25 -0
  39. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema.rb +33 -0
  40. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema_condition.rb +37 -0
  41. data/lib/kube-dsl/dsl/{rbac/v1alpha1/cluster_role_list.rb → flowcontrol/v1beta2/flow_schema_list.rb} +8 -8
  42. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema_spec.rb +34 -0
  43. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema_status.rb +25 -0
  44. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/group_subject.rb +25 -0
  45. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/limit_response.rb +28 -0
  46. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/limited_priority_level_configuration.rb +28 -0
  47. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/non_resource_policy_rule.rb +28 -0
  48. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/policy_rules_with_subjects.rb +31 -0
  49. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration.rb +33 -0
  50. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_condition.rb +37 -0
  51. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_list.rb +30 -0
  52. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_reference.rb +25 -0
  53. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_spec.rb +28 -0
  54. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_status.rb +25 -0
  55. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/queuing_configuration.rb +31 -0
  56. data/lib/kube-dsl/dsl/{rbac/v1alpha1/policy_rule.rb → flowcontrol/v1beta2/resource_policy_rule.rb} +10 -10
  57. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/service_account_subject.rb +28 -0
  58. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/subject.rb +34 -0
  59. data/lib/kube-dsl/dsl/flowcontrol/v1beta2/user_subject.rb +25 -0
  60. data/lib/kube-dsl/dsl/flowcontrol/v1beta2.rb +24 -0
  61. data/lib/kube-dsl/dsl/flowcontrol.rb +1 -0
  62. data/lib/kube-dsl/dsl/rbac.rb +0 -1
  63. data/lib/kube-dsl/dsl/scheduling.rb +0 -1
  64. data/lib/kube-dsl/dsl/storage/v1alpha1.rb +0 -6
  65. data/lib/kube-dsl/dsl/v1/grpc_action.rb +26 -0
  66. data/lib/kube-dsl/dsl/v1/lifecycle.rb +4 -4
  67. data/lib/kube-dsl/dsl/v1/{handler.rb → lifecycle_handler.rb} +2 -2
  68. data/lib/kube-dsl/dsl/v1/persistent_volume_claim_status.rb +6 -0
  69. data/lib/kube-dsl/dsl/v1/pod_os.rb +23 -0
  70. data/lib/kube-dsl/dsl/v1/pod_spec.rb +3 -0
  71. data/lib/kube-dsl/dsl/v1/probe.rb +3 -0
  72. data/lib/kube-dsl/dsl/v1.rb +3 -1
  73. data/lib/kube-dsl/entrypoint.rb +121 -9
  74. data/lib/kube-dsl/validations.rb +2 -2
  75. data/lib/kube-dsl/version.rb +1 -1
  76. data/lib/kube-dsl.rb +1 -1
  77. data/rbi/kube-dsl.rbi +2343 -1521
  78. metadata +59 -29
  79. data/lib/kube-dsl/dsl/rbac/v1alpha1/aggregation_rule.rb +0 -25
  80. data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role.rb +0 -33
  81. data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role_binding.rb +0 -33
  82. data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role_binding_list.rb +0 -30
  83. data/lib/kube-dsl/dsl/rbac/v1alpha1/role.rb +0 -30
  84. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_binding.rb +0 -33
  85. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_binding_list.rb +0 -30
  86. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_list.rb +0 -30
  87. data/lib/kube-dsl/dsl/rbac/v1alpha1/role_ref.rb +0 -31
  88. data/lib/kube-dsl/dsl/rbac/v1alpha1.rb +0 -14
  89. data/lib/kube-dsl/dsl/scheduling/v1alpha1/priority_class.rb +0 -39
  90. data/lib/kube-dsl/dsl/scheduling/v1alpha1/priority_class_list.rb +0 -30
  91. data/lib/kube-dsl/dsl/scheduling/v1alpha1.rb +0 -4
  92. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment.rb +0 -33
  93. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_list.rb +0 -30
  94. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_source.rb +0 -28
  95. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_spec.rb +0 -31
  96. data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_status.rb +0 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c07145a85d3b5554f469688421d56fc64cf97a4ac9b05ee75b707abbd6ddffeb
4
- data.tar.gz: 1cddc65cbda068182755c1259b00ea25f31a1a8409a68466ad6ff491009f9083
3
+ metadata.gz: de8bd85a855059eb721225535bf9116a71a724fa6200204f68fde813131536a8
4
+ data.tar.gz: 9086677e1ccdd62fcea750c39b57d6dac113cbb5bba4033db0893c861c843f44
5
5
  SHA512:
6
- metadata.gz: 5f7fe3ab71ddcc48e5ae26bfa9d02244831420a70dc02f88253517cd6c7d0d242f72ea00bf9073af210dd791405bbe946fd56f5dc11b598701454efaef660192
7
- data.tar.gz: c39e8ea014235f101d0247329a8eaf09c051e5d92a9f860b29488f9f490237ad91cb525877b60c3b1e0e4b56d33352deabfe81d0da59606796ffe008257a5f25
6
+ metadata.gz: 1c4222594087e664ceb1f35d2f22382f42c5a3b78fcee23fd7fcf2d43c4f2d1e426f3e3cebbd42ca8f6d12b02a6c5c0bb465b4f6772b1d411d2130f818da9683
7
+ data.tar.gz: 91bad2ac1bb76b7e5c1b906f34e49a6e9cbfba755bf6f80ab6483b1a3fe0ef7f27a6b73c05cb9d0d9fd733683eb8f5053d519d79a1422a65c3101f597dbf7aee
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.8.0
2
+
3
+ * Update Kubernetes to v1.23.17 to match kuby.
4
+
1
5
  ## 0.7.5
2
6
 
3
7
  * Fix RBIs for new version of Sorbet.
data/Gemfile CHANGED
@@ -9,8 +9,8 @@ end
9
9
 
10
10
  group :development do
11
11
  # lock to a specific version to prevent breaking CI when new versions come out
12
- gem 'sorbet', '= 0.5.10851'
13
- gem 'tapioca', '~> 0.11'
12
+ gem 'sorbet', '= 0.5.11865'
13
+ gem 'tapioca', '~> 0.16'
14
14
  gem 'parlour', '~> 8.0'
15
15
  gem 'curdle', '~> 1.2'
16
16
  end
data/Rakefile CHANGED
@@ -18,20 +18,28 @@ task :generate do
18
18
  require 'dry/inflector'
19
19
  require 'fileutils'
20
20
 
21
+ FileUtils.mkdir_p('./vendor')
22
+
23
+ export_url = "https://github.com/yannh/kubernetes-json-schema"
24
+ local_checkout_path = "vendor/kubernetes-json-schema/"
25
+
26
+ unless File.exist?(local_checkout_path)
27
+ system("git clone -n --depth 1 --filter tree:0 #{export_url} #{local_checkout_path}")
28
+
29
+ Dir.chdir(local_checkout_path) do
30
+ system("git sparse-checkout set --no-cone /v#{KubeDSL::KUBERNETES_VERSION}-local")
31
+ system("git checkout")
32
+ end
33
+ end
34
+
35
+ local_schema_path = "#{local_checkout_path}v#{KubeDSL::KUBERNETES_VERSION}-local"
36
+
21
37
  FileUtils.rm_rf('./lib/kube-dsl/entrypoint.rb')
22
38
  FileUtils.rm_rf('./lib/kube-dsl/dsl.rb')
23
39
  FileUtils.rm_rf('./lib/kube-dsl/dsl')
24
40
  FileUtils.rm_rf('./sorbet/rbi/kube-dsl')
25
41
 
26
42
  FileUtils.mkdir_p('./lib/kube-dsl/dsl')
27
- FileUtils.mkdir_p('./vendor')
28
-
29
- export_url = "https://github.com/yannh/kubernetes-json-schema/trunk/v#{KubeDSL::KUBERNETES_VERSION}-local"
30
- local_schema_path = "vendor/kubernetes-json-schema/v#{KubeDSL::KUBERNETES_VERSION}-local"
31
-
32
- unless File.exist?(local_schema_path)
33
- system("svn export #{export_url} #{local_schema_path}")
34
- end
35
43
 
36
44
  generator = KubeDSL::Generator.new(
37
45
  schema_dir: local_schema_path,
@@ -46,6 +46,7 @@ module KubeDSL
46
46
  value_field :x_kubernetes_list_type
47
47
  value_field :x_kubernetes_map_type
48
48
  value_field :x_kubernetes_preserve_unknown_fields
49
+ array_field(:x_kubernetes_validation) { KubeDSL::DSL::Apiextensions::V1::ValidationRule.new }
49
50
 
50
51
  validates :additional_items, field: { format: :string }, presence: false
51
52
  validates :additional_properties, field: { format: :string }, presence: false
@@ -88,6 +89,7 @@ module KubeDSL
88
89
  validates :x_kubernetes_list_type, field: { format: :string }, presence: false
89
90
  validates :x_kubernetes_map_type, field: { format: :string }, presence: false
90
91
  validates :x_kubernetes_preserve_unknown_fields, field: { format: :boolean }, presence: false
92
+ validates :x_kubernetes_validations, array: { kind_of: KubeDSL::DSL::Apiextensions::V1::ValidationRule }, presence: false
91
93
 
92
94
  def serialize
93
95
  {}.tap do |result|
@@ -132,6 +134,7 @@ module KubeDSL
132
134
  result[:'x-kubernetes-list-type'] = x_kubernetes_list_type
133
135
  result[:'x-kubernetes-map-type'] = x_kubernetes_map_type
134
136
  result[:'x-kubernetes-preserve-unknown-fields'] = x_kubernetes_preserve_unknown_fields
137
+ result[:'x-kubernetes-validations'] = x_kubernetes_validations.map(&:serialize)
135
138
  end
136
139
  end
137
140
 
@@ -2,24 +2,24 @@
2
2
 
3
3
  module KubeDSL
4
4
  module DSL
5
- module Storage
6
- module V1alpha1
7
- class VolumeError < ::KubeDSL::DSLObject
5
+ module Apiextensions
6
+ module V1
7
+ class ValidationRule < ::KubeDSL::DSLObject
8
8
  value_field :message
9
- value_field :time
9
+ value_field :rule
10
10
 
11
11
  validates :message, field: { format: :string }, presence: false
12
- validates :time, field: { format: :string }, presence: false
12
+ validates :rule, field: { format: :string }, presence: false
13
13
 
14
14
  def serialize
15
15
  {}.tap do |result|
16
16
  result[:message] = message
17
- result[:time] = time
17
+ result[:rule] = rule
18
18
  end
19
19
  end
20
20
 
21
21
  def kind_sym
22
- :volume_error
22
+ :validation_rule
23
23
  end
24
24
  end
25
25
  end
@@ -15,6 +15,7 @@ module KubeDSL::DSL::Apiextensions::V1
15
15
  autoload :JSON, 'kube-dsl/dsl/apiextensions/v1/json'
16
16
  autoload :JSONSchemaProps, 'kube-dsl/dsl/apiextensions/v1/json_schema_props'
17
17
  autoload :ServiceReference, 'kube-dsl/dsl/apiextensions/v1/service_reference'
18
+ autoload :ValidationRule, 'kube-dsl/dsl/apiextensions/v1/validation_rule'
18
19
  autoload :WebhookClientConfig, 'kube-dsl/dsl/apiextensions/v1/webhook_client_config'
19
20
  autoload :WebhookConversion, 'kube-dsl/dsl/apiextensions/v1/webhook_conversion'
20
21
  end
@@ -0,0 +1,28 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Apps
6
+ module V1
7
+ class StatefulSetPersistentVolumeClaimRetentionPolicy < ::KubeDSL::DSLObject
8
+ value_field :when_deleted
9
+ value_field :when_scaled
10
+
11
+ validates :when_deleted, field: { format: :string }, presence: false
12
+ validates :when_scaled, field: { format: :string }, presence: false
13
+
14
+ def serialize
15
+ {}.tap do |result|
16
+ result[:whenDeleted] = when_deleted
17
+ result[:whenScaled] = when_scaled
18
+ end
19
+ end
20
+
21
+ def kind_sym
22
+ :stateful_set_persistent_volume_claim_retention_policy
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -6,6 +6,7 @@ module KubeDSL
6
6
  module V1
7
7
  class StatefulSetSpec < ::KubeDSL::DSLObject
8
8
  value_field :min_ready_seconds
9
+ object_field(:persistent_volume_claim_retention_policy) { KubeDSL::DSL::Apps::V1::StatefulSetPersistentVolumeClaimRetentionPolicy.new }
9
10
  value_field :pod_management_policy
10
11
  value_field :replicas
11
12
  value_field :revision_history_limit
@@ -16,6 +17,7 @@ module KubeDSL
16
17
  array_field(:volume_claim_template) { KubeDSL::DSL::V1::PersistentVolumeClaim.new }
17
18
 
18
19
  validates :min_ready_seconds, field: { format: :integer }, presence: false
20
+ validates :persistent_volume_claim_retention_policy, object: { kind_of: KubeDSL::DSL::Apps::V1::StatefulSetPersistentVolumeClaimRetentionPolicy }
19
21
  validates :pod_management_policy, field: { format: :string }, presence: false
20
22
  validates :replicas, field: { format: :integer }, presence: false
21
23
  validates :revision_history_limit, field: { format: :integer }, presence: false
@@ -28,6 +30,7 @@ module KubeDSL
28
30
  def serialize
29
31
  {}.tap do |result|
30
32
  result[:minReadySeconds] = min_ready_seconds
33
+ result[:persistentVolumeClaimRetentionPolicy] = persistent_volume_claim_retention_policy.serialize
31
34
  result[:podManagementPolicy] = pod_management_policy
32
35
  result[:replicas] = replicas
33
36
  result[:revisionHistoryLimit] = revision_history_limit
@@ -24,6 +24,7 @@ module KubeDSL::DSL::Apps::V1
24
24
  autoload :StatefulSet, 'kube-dsl/dsl/apps/v1/stateful_set'
25
25
  autoload :StatefulSetCondition, 'kube-dsl/dsl/apps/v1/stateful_set_condition'
26
26
  autoload :StatefulSetList, 'kube-dsl/dsl/apps/v1/stateful_set_list'
27
+ autoload :StatefulSetPersistentVolumeClaimRetentionPolicy, 'kube-dsl/dsl/apps/v1/stateful_set_persistent_volume_claim_retention_policy'
27
28
  autoload :StatefulSetSpec, 'kube-dsl/dsl/apps/v1/stateful_set_spec'
28
29
  autoload :StatefulSetStatus, 'kube-dsl/dsl/apps/v1/stateful_set_status'
29
30
  autoload :StatefulSetUpdateStrategy, 'kube-dsl/dsl/apps/v1/stateful_set_update_strategy'
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class ContainerResourceMetricSource < ::KubeDSL::DSLObject
8
+ value_field :container
9
+ value_field :name
10
+ object_field(:target) { KubeDSL::DSL::Autoscaling::V2::MetricTarget.new }
11
+
12
+ validates :container, field: { format: :string }, presence: false
13
+ validates :name, field: { format: :string }, presence: false
14
+ validates :target, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricTarget }
15
+
16
+ def serialize
17
+ {}.tap do |result|
18
+ result[:container] = container
19
+ result[:name] = name
20
+ result[:target] = target.serialize
21
+ end
22
+ end
23
+
24
+ def kind_sym
25
+ :container_resource_metric_source
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class ContainerResourceMetricStatus < ::KubeDSL::DSLObject
8
+ value_field :container
9
+ object_field(:current) { KubeDSL::DSL::Autoscaling::V2::MetricValueStatus.new }
10
+ value_field :name
11
+
12
+ validates :container, field: { format: :string }, presence: false
13
+ validates :current, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricValueStatus }
14
+ validates :name, field: { format: :string }, presence: false
15
+
16
+ def serialize
17
+ {}.tap do |result|
18
+ result[:container] = container
19
+ result[:current] = current.serialize
20
+ result[:name] = name
21
+ end
22
+ end
23
+
24
+ def kind_sym
25
+ :container_resource_metric_status
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -2,30 +2,27 @@
2
2
 
3
3
  module KubeDSL
4
4
  module DSL
5
- module Rbac
6
- module V1alpha1
7
- class Subject < ::KubeDSL::DSLObject
5
+ module Autoscaling
6
+ module V2
7
+ class CrossVersionObjectReference < ::KubeDSL::DSLObject
8
8
  value_field :api_version
9
9
  value_field :kind
10
10
  value_field :name
11
- value_field :namespace
12
11
 
13
12
  validates :api_version, field: { format: :string }, presence: false
14
13
  validates :kind, field: { format: :string }, presence: false
15
14
  validates :name, field: { format: :string }, presence: false
16
- validates :namespace, field: { format: :string }, presence: false
17
15
 
18
16
  def serialize
19
17
  {}.tap do |result|
20
18
  result[:apiVersion] = api_version
21
19
  result[:kind] = kind
22
20
  result[:name] = name
23
- result[:namespace] = namespace
24
21
  end
25
22
  end
26
23
 
27
24
  def kind_sym
28
- :subject
25
+ :cross_version_object_reference
29
26
  end
30
27
  end
31
28
  end
@@ -0,0 +1,28 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class ExternalMetricSource < ::KubeDSL::DSLObject
8
+ object_field(:metric) { KubeDSL::DSL::Autoscaling::V2::MetricIdentifier.new }
9
+ object_field(:target) { KubeDSL::DSL::Autoscaling::V2::MetricTarget.new }
10
+
11
+ validates :metric, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricIdentifier }
12
+ validates :target, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricTarget }
13
+
14
+ def serialize
15
+ {}.tap do |result|
16
+ result[:metric] = metric.serialize
17
+ result[:target] = target.serialize
18
+ end
19
+ end
20
+
21
+ def kind_sym
22
+ :external_metric_source
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class ExternalMetricStatus < ::KubeDSL::DSLObject
8
+ object_field(:current) { KubeDSL::DSL::Autoscaling::V2::MetricValueStatus.new }
9
+ object_field(:metric) { KubeDSL::DSL::Autoscaling::V2::MetricIdentifier.new }
10
+
11
+ validates :current, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricValueStatus }
12
+ validates :metric, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricIdentifier }
13
+
14
+ def serialize
15
+ {}.tap do |result|
16
+ result[:current] = current.serialize
17
+ result[:metric] = metric.serialize
18
+ end
19
+ end
20
+
21
+ def kind_sym
22
+ :external_metric_status
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,33 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HorizontalPodAutoscaler < ::KubeDSL::DSLObject
8
+ object_field(:metadata) { KubeDSL::DSL::Meta::V1::ObjectMeta.new }
9
+ object_field(:spec) { KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerSpec.new }
10
+ object_field(:status) { KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerStatus.new }
11
+
12
+ validates :metadata, object: { kind_of: KubeDSL::DSL::Meta::V1::ObjectMeta }
13
+ validates :spec, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerSpec }
14
+ validates :status, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerStatus }
15
+
16
+ def serialize
17
+ {}.tap do |result|
18
+ result[:apiVersion] = "autoscaling/v2"
19
+ result[:kind] = "HorizontalPodAutoscaler"
20
+ result[:metadata] = metadata.serialize
21
+ result[:spec] = spec.serialize
22
+ result[:status] = status.serialize
23
+ end
24
+ end
25
+
26
+ def kind_sym
27
+ :horizontal_pod_autoscaler
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,28 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HorizontalPodAutoscalerBehavior < ::KubeDSL::DSLObject
8
+ object_field(:scale_down) { KubeDSL::DSL::Autoscaling::V2::HPAScalingRules.new }
9
+ object_field(:scale_up) { KubeDSL::DSL::Autoscaling::V2::HPAScalingRules.new }
10
+
11
+ validates :scale_down, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::HPAScalingRules }
12
+ validates :scale_up, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::HPAScalingRules }
13
+
14
+ def serialize
15
+ {}.tap do |result|
16
+ result[:scaleDown] = scale_down.serialize
17
+ result[:scaleUp] = scale_up.serialize
18
+ end
19
+ end
20
+
21
+ def kind_sym
22
+ :horizontal_pod_autoscaler_behavior
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,37 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HorizontalPodAutoscalerCondition < ::KubeDSL::DSLObject
8
+ value_field :last_transition_time
9
+ value_field :message
10
+ value_field :reason
11
+ value_field :status
12
+ value_field :type
13
+
14
+ validates :last_transition_time, field: { format: :string }, presence: false
15
+ validates :message, field: { format: :string }, presence: false
16
+ validates :reason, field: { format: :string }, presence: false
17
+ validates :status, field: { format: :string }, presence: false
18
+ validates :type, field: { format: :string }, presence: false
19
+
20
+ def serialize
21
+ {}.tap do |result|
22
+ result[:lastTransitionTime] = last_transition_time
23
+ result[:message] = message
24
+ result[:reason] = reason
25
+ result[:status] = status
26
+ result[:type] = type
27
+ end
28
+ end
29
+
30
+ def kind_sym
31
+ :horizontal_pod_autoscaler_condition
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,30 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HorizontalPodAutoscalerList < ::KubeDSL::DSLObject
8
+ array_field(:item) { KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscaler.new }
9
+ object_field(:metadata) { KubeDSL::DSL::Meta::V1::ListMeta.new }
10
+
11
+ validates :items, array: { kind_of: KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscaler }, presence: false
12
+ validates :metadata, object: { kind_of: KubeDSL::DSL::Meta::V1::ListMeta }
13
+
14
+ def serialize
15
+ {}.tap do |result|
16
+ result[:apiVersion] = "autoscaling/v2"
17
+ result[:items] = items.map(&:serialize)
18
+ result[:kind] = "HorizontalPodAutoscalerList"
19
+ result[:metadata] = metadata.serialize
20
+ end
21
+ end
22
+
23
+ def kind_sym
24
+ :horizontal_pod_autoscaler_list
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,37 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HorizontalPodAutoscalerSpec < ::KubeDSL::DSLObject
8
+ object_field(:behavior) { KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerBehavior.new }
9
+ value_field :max_replicas
10
+ array_field(:metric) { KubeDSL::DSL::Autoscaling::V2::MetricSpec.new }
11
+ value_field :min_replicas
12
+ object_field(:scale_target_ref) { KubeDSL::DSL::Autoscaling::V2::CrossVersionObjectReference.new }
13
+
14
+ validates :behavior, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerBehavior }
15
+ validates :max_replicas, field: { format: :integer }, presence: false
16
+ validates :metrics, array: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricSpec }, presence: false
17
+ validates :min_replicas, field: { format: :integer }, presence: false
18
+ validates :scale_target_ref, object: { kind_of: KubeDSL::DSL::Autoscaling::V2::CrossVersionObjectReference }
19
+
20
+ def serialize
21
+ {}.tap do |result|
22
+ result[:behavior] = behavior.serialize
23
+ result[:maxReplicas] = max_replicas
24
+ result[:metrics] = metrics.map(&:serialize)
25
+ result[:minReplicas] = min_replicas
26
+ result[:scaleTargetRef] = scale_target_ref.serialize
27
+ end
28
+ end
29
+
30
+ def kind_sym
31
+ :horizontal_pod_autoscaler_spec
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,40 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HorizontalPodAutoscalerStatus < ::KubeDSL::DSLObject
8
+ array_field(:condition) { KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerCondition.new }
9
+ array_field(:current_metric) { KubeDSL::DSL::Autoscaling::V2::MetricStatus.new }
10
+ value_field :current_replicas
11
+ value_field :desired_replicas
12
+ value_field :last_scale_time
13
+ value_field :observed_generation
14
+
15
+ validates :conditions, array: { kind_of: KubeDSL::DSL::Autoscaling::V2::HorizontalPodAutoscalerCondition }, presence: false
16
+ validates :current_metrics, array: { kind_of: KubeDSL::DSL::Autoscaling::V2::MetricStatus }, presence: false
17
+ validates :current_replicas, field: { format: :integer }, presence: false
18
+ validates :desired_replicas, field: { format: :integer }, presence: false
19
+ validates :last_scale_time, field: { format: :string }, presence: false
20
+ validates :observed_generation, field: { format: :integer }, presence: false
21
+
22
+ def serialize
23
+ {}.tap do |result|
24
+ result[:conditions] = conditions.map(&:serialize)
25
+ result[:currentMetrics] = current_metrics.map(&:serialize)
26
+ result[:currentReplicas] = current_replicas
27
+ result[:desiredReplicas] = desired_replicas
28
+ result[:lastScaleTime] = last_scale_time
29
+ result[:observedGeneration] = observed_generation
30
+ end
31
+ end
32
+
33
+ def kind_sym
34
+ :horizontal_pod_autoscaler_status
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HPAScalingPolicy < ::KubeDSL::DSLObject
8
+ value_field :period_seconds
9
+ value_field :type
10
+ value_field :value
11
+
12
+ validates :period_seconds, field: { format: :integer }, presence: false
13
+ validates :type, field: { format: :string }, presence: false
14
+ validates :value, field: { format: :integer }, presence: false
15
+
16
+ def serialize
17
+ {}.tap do |result|
18
+ result[:periodSeconds] = period_seconds
19
+ result[:type] = type
20
+ result[:value] = value
21
+ end
22
+ end
23
+
24
+ def kind_sym
25
+ :hpa_scaling_policy
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class HPAScalingRules < ::KubeDSL::DSLObject
8
+ array_field(:policy) { KubeDSL::DSL::Autoscaling::V2::HPAScalingPolicy.new }
9
+ value_field :select_policy
10
+ value_field :stabilization_window_seconds
11
+
12
+ validates :policies, array: { kind_of: KubeDSL::DSL::Autoscaling::V2::HPAScalingPolicy }, presence: false
13
+ validates :select_policy, field: { format: :string }, presence: false
14
+ validates :stabilization_window_seconds, field: { format: :integer }, presence: false
15
+
16
+ def serialize
17
+ {}.tap do |result|
18
+ result[:policies] = policies.map(&:serialize)
19
+ result[:selectPolicy] = select_policy
20
+ result[:stabilizationWindowSeconds] = stabilization_window_seconds
21
+ end
22
+ end
23
+
24
+ def kind_sym
25
+ :hpa_scaling_rules
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,28 @@
1
+ # typed: true
2
+
3
+ module KubeDSL
4
+ module DSL
5
+ module Autoscaling
6
+ module V2
7
+ class MetricIdentifier < ::KubeDSL::DSLObject
8
+ value_field :name
9
+ object_field(:selector) { KubeDSL::DSL::Meta::V1::LabelSelector.new }
10
+
11
+ validates :name, field: { format: :string }, presence: false
12
+ validates :selector, object: { kind_of: KubeDSL::DSL::Meta::V1::LabelSelector }
13
+
14
+ def serialize
15
+ {}.tap do |result|
16
+ result[:name] = name
17
+ result[:selector] = selector.serialize
18
+ end
19
+ end
20
+
21
+ def kind_sym
22
+ :metric_identifier
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end