kube-dsl 0.7.4 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile +3 -3
- data/Rakefile +16 -8
- data/lib/kube-dsl/dsl/apiextensions/v1/json_schema_props.rb +3 -0
- data/lib/kube-dsl/dsl/{storage/v1alpha1/volume_error.rb → apiextensions/v1/validation_rule.rb} +7 -7
- data/lib/kube-dsl/dsl/apiextensions/v1.rb +1 -0
- data/lib/kube-dsl/dsl/apps/v1/stateful_set_persistent_volume_claim_retention_policy.rb +28 -0
- data/lib/kube-dsl/dsl/apps/v1/stateful_set_spec.rb +3 -0
- data/lib/kube-dsl/dsl/apps/v1.rb +1 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/container_resource_metric_source.rb +31 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/container_resource_metric_status.rb +31 -0
- data/lib/kube-dsl/dsl/{rbac/v1alpha1/subject.rb → autoscaling/v2/cross_version_object_reference.rb} +4 -7
- data/lib/kube-dsl/dsl/autoscaling/v2/external_metric_source.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/external_metric_status.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler.rb +33 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_behavior.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_condition.rb +37 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_list.rb +30 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_spec.rb +37 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/horizontal_pod_autoscaler_status.rb +40 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/hpa_scaling_policy.rb +31 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/hpa_scaling_rules.rb +31 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/metric_identifier.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/metric_spec.rb +40 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/metric_status.rb +40 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/metric_target.rb +34 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/metric_value_status.rb +31 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/object_metric_source.rb +31 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/object_metric_status.rb +31 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/pods_metric_source.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/pods_metric_status.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/resource_metric_source.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2/resource_metric_status.rb +28 -0
- data/lib/kube-dsl/dsl/autoscaling/v2.rb +26 -0
- data/lib/kube-dsl/dsl/autoscaling.rb +1 -0
- data/lib/kube-dsl/dsl/batch/v1/job_status.rb +3 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_distinguisher_method.rb +25 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema.rb +33 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema_condition.rb +37 -0
- data/lib/kube-dsl/dsl/{rbac/v1alpha1/cluster_role_list.rb → flowcontrol/v1beta2/flow_schema_list.rb} +8 -8
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema_spec.rb +34 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/flow_schema_status.rb +25 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/group_subject.rb +25 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/limit_response.rb +28 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/limited_priority_level_configuration.rb +28 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/non_resource_policy_rule.rb +28 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/policy_rules_with_subjects.rb +31 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration.rb +33 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_condition.rb +37 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_list.rb +30 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_reference.rb +25 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_spec.rb +28 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/priority_level_configuration_status.rb +25 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/queuing_configuration.rb +31 -0
- data/lib/kube-dsl/dsl/{rbac/v1alpha1/policy_rule.rb → flowcontrol/v1beta2/resource_policy_rule.rb} +10 -10
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/service_account_subject.rb +28 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/subject.rb +34 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2/user_subject.rb +25 -0
- data/lib/kube-dsl/dsl/flowcontrol/v1beta2.rb +24 -0
- data/lib/kube-dsl/dsl/flowcontrol.rb +1 -0
- data/lib/kube-dsl/dsl/rbac.rb +0 -1
- data/lib/kube-dsl/dsl/scheduling.rb +0 -1
- data/lib/kube-dsl/dsl/storage/v1alpha1.rb +0 -6
- data/lib/kube-dsl/dsl/v1/grpc_action.rb +26 -0
- data/lib/kube-dsl/dsl/v1/lifecycle.rb +4 -4
- data/lib/kube-dsl/dsl/v1/{handler.rb → lifecycle_handler.rb} +2 -2
- data/lib/kube-dsl/dsl/v1/persistent_volume_claim_status.rb +6 -0
- data/lib/kube-dsl/dsl/v1/pod_os.rb +23 -0
- data/lib/kube-dsl/dsl/v1/pod_spec.rb +3 -0
- data/lib/kube-dsl/dsl/v1/probe.rb +3 -0
- data/lib/kube-dsl/dsl/v1.rb +3 -1
- data/lib/kube-dsl/entrypoint.rb +121 -9
- data/lib/kube-dsl/key_value_fields.rb +1 -1
- data/lib/kube-dsl/resource.rb +1 -1
- data/lib/kube-dsl/validations.rb +2 -2
- data/lib/kube-dsl/version.rb +1 -1
- data/lib/kube-dsl.rb +1 -1
- data/rbi/kube-dsl.rbi +2345 -1523
- metadata +59 -29
- data/lib/kube-dsl/dsl/rbac/v1alpha1/aggregation_rule.rb +0 -25
- data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role.rb +0 -33
- data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role_binding.rb +0 -33
- data/lib/kube-dsl/dsl/rbac/v1alpha1/cluster_role_binding_list.rb +0 -30
- data/lib/kube-dsl/dsl/rbac/v1alpha1/role.rb +0 -30
- data/lib/kube-dsl/dsl/rbac/v1alpha1/role_binding.rb +0 -33
- data/lib/kube-dsl/dsl/rbac/v1alpha1/role_binding_list.rb +0 -30
- data/lib/kube-dsl/dsl/rbac/v1alpha1/role_list.rb +0 -30
- data/lib/kube-dsl/dsl/rbac/v1alpha1/role_ref.rb +0 -31
- data/lib/kube-dsl/dsl/rbac/v1alpha1.rb +0 -14
- data/lib/kube-dsl/dsl/scheduling/v1alpha1/priority_class.rb +0 -39
- data/lib/kube-dsl/dsl/scheduling/v1alpha1/priority_class_list.rb +0 -30
- data/lib/kube-dsl/dsl/scheduling/v1alpha1.rb +0 -4
- data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment.rb +0 -33
- data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_list.rb +0 -30
- data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_source.rb +0 -28
- data/lib/kube-dsl/dsl/storage/v1alpha1/volume_attachment_spec.rb +0 -31
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de8bd85a855059eb721225535bf9116a71a724fa6200204f68fde813131536a8
|
4
|
+
data.tar.gz: 9086677e1ccdd62fcea750c39b57d6dac113cbb5bba4033db0893c861c843f44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c4222594087e664ceb1f35d2f22382f42c5a3b78fcee23fd7fcf2d43c4f2d1e426f3e3cebbd42ca8f6d12b02a6c5c0bb465b4f6772b1d411d2130f818da9683
|
7
|
+
data.tar.gz: 91bad2ac1bb76b7e5c1b906f34e49a6e9cbfba755bf6f80ab6483b1a3fe0ef7f27a6b73c05cb9d0d9fd733683eb8f5053d519d79a1422a65c3101f597dbf7aee
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -9,9 +9,9 @@ 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'
|
13
|
-
gem 'tapioca', '~> 0.
|
14
|
-
gem 'parlour',
|
12
|
+
gem 'sorbet', '= 0.5.11865'
|
13
|
+
gem 'tapioca', '~> 0.16'
|
14
|
+
gem 'parlour', '~> 8.0'
|
15
15
|
gem 'curdle', '~> 1.2'
|
16
16
|
end
|
17
17
|
|
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
|
|
data/lib/kube-dsl/dsl/{storage/v1alpha1/volume_error.rb → apiextensions/v1/validation_rule.rb}
RENAMED
@@ -2,24 +2,24 @@
|
|
2
2
|
|
3
3
|
module KubeDSL
|
4
4
|
module DSL
|
5
|
-
module
|
6
|
-
module
|
7
|
-
class
|
5
|
+
module Apiextensions
|
6
|
+
module V1
|
7
|
+
class ValidationRule < ::KubeDSL::DSLObject
|
8
8
|
value_field :message
|
9
|
-
value_field :
|
9
|
+
value_field :rule
|
10
10
|
|
11
11
|
validates :message, field: { format: :string }, presence: false
|
12
|
-
validates :
|
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[:
|
17
|
+
result[:rule] = rule
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
def kind_sym
|
22
|
-
:
|
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
|
data/lib/kube-dsl/dsl/apps/v1.rb
CHANGED
@@ -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
|
data/lib/kube-dsl/dsl/{rbac/v1alpha1/subject.rb → autoscaling/v2/cross_version_object_reference.rb}
RENAMED
@@ -2,30 +2,27 @@
|
|
2
2
|
|
3
3
|
module KubeDSL
|
4
4
|
module DSL
|
5
|
-
module
|
6
|
-
module
|
7
|
-
class
|
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
|
-
:
|
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
|