Skip to content

Commit 1774b65

Browse files
Merge pull request #451 from treydock/kubeadm-configs
Add scheduler_extra_arguments parameter
2 parents d4d9f75 + 8984d34 commit 1774b65

File tree

6 files changed

+46
-0
lines changed

6 files changed

+46
-0
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,11 @@ controllermanager_extra_volumes => {
296296

297297
Defaults to `{}`.
298298

299+
#### `scheduler_extra_arguments`
300+
301+
A string array of extra arguments passed to the scheduler.
302+
303+
Defaults to `[]`.
299304

300305
#### `create_repos`
301306

manifests/config/kubeadm.pp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
Optional[Array] $apiserver_cert_extra_sans = $kubernetes::apiserver_cert_extra_sans,
4444
Optional[Array] $apiserver_extra_arguments = $kubernetes::apiserver_extra_arguments,
4545
Optional[Array] $controllermanager_extra_arguments = $kubernetes::controllermanager_extra_arguments,
46+
Optional[Array] $scheduler_extra_arguments = $kubernetes::scheduler_extra_arguments,
4647
Optional[Array] $kubelet_extra_arguments = $kubernetes::kubelet_extra_arguments,
4748
String $service_cidr = $kubernetes::service_cidr,
4849
String $node_name = $kubernetes::node_name,
@@ -128,6 +129,7 @@
128129
}
129130
$apiserver_merged_extra_arguments = concat($apiserver_extra_arguments, $cloud_args)
130131
$controllermanager_merged_extra_arguments = concat($controllermanager_extra_arguments, $cloud_args)
132+
$scheduler_merged_extra_arguments = concat($scheduler_extra_arguments, $cloud_args)
131133

132134
# could check against Kubernetes 1.10 here, but that uses alpha1 config which doesn't have these options
133135
if $cloud_config {
@@ -151,6 +153,7 @@
151153
} else {
152154
$apiserver_merged_extra_arguments = $apiserver_extra_arguments
153155
$controllermanager_merged_extra_arguments = $controllermanager_extra_arguments
156+
$scheduler_merged_extra_arguments = $scheduler_extra_arguments
154157

155158
$apiserver_merged_extra_volumes = $apiserver_extra_volumes
156159
$controllermanager_merged_extra_volumes = $controllermanager_extra_volumes

manifests/init.pp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,10 @@
233233
# A hash of extra volume mounts mounted on the controller manager.
234234
# Defaults to []
235235
#
236+
# [*scheduler_extra_arguments*]
237+
# A string array of extra arguments to be passed to scheduler.
238+
# Defaults to []
239+
#
236240
# [*delegated_pki*]
237241
# Set to true if all required X509 certificates will be provided by external means. Setting this to true will ignore all *_crt and *_key including sa.key and sa.pub files.
238242
# Defaults to false
@@ -535,6 +539,7 @@
535539
Optional[Array] $apiserver_cert_extra_sans = [],
536540
Optional[Array] $apiserver_extra_arguments = [],
537541
Optional[Array] $controllermanager_extra_arguments = [],
542+
Optional[Array] $scheduler_extra_arguments = [],
538543
String $service_cidr = '10.96.0.0/12',
539544
Optional[String] $node_label = undef,
540545
Optional[String] $controller_address = undef,

spec/classes/config/kubeadm_spec.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,25 @@
323323
end
324324
end
325325

326+
context 'with version = 1.14' do
327+
let(:params) do
328+
{
329+
'kubernetes_version' => '1.14.1',
330+
'scheduler_extra_arguments' => ['foo', 'bar'],
331+
}
332+
end
333+
334+
let(:config_yaml) { YAML.load_stream(catalogue.resource('file', '/etc/kubernetes/config.yaml').send(:parameters)[:content]) }
335+
336+
it { is_expected.to contain_file('/etc/kubernetes/config.yaml') }
337+
it 'has foo in scheduler arguments' do
338+
expect(config_yaml[1]['scheduler']['extraArgs']).to include('foo')
339+
end
340+
it 'has bar in scheduler arguments' do
341+
expect(config_yaml[1]['scheduler']['extraArgs']).to include('bar')
342+
end
343+
end
344+
326345
context 'with version = 1.14' do
327346
let(:params) do
328347
{

templates/v1beta1/config_kubeadm.yaml.erb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@ controllerManager:
7676
pathType: <%= config['pathType'] %>
7777
<%- end -%>
7878
<%- end -%>
79+
scheduler:
80+
<%- if @scheduler_merged_extra_arguments -%>
81+
extraArgs:
82+
<%- @scheduler_merged_extra_arguments.each do |arg| -%>
83+
<%= arg %>
84+
<%- end -%>
85+
<%- end -%>
7986
dns:
8087
type: CoreDNS
8188
etcd:

templates/v1beta2/config_kubeadm.yaml.erb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ controllerManager:
7878
pathType: <%= config['pathType'] %>
7979
<%- end -%>
8080
<%- end -%>
81+
scheduler:
82+
<%- if @scheduler_merged_extra_arguments -%>
83+
extraArgs:
84+
<%- @scheduler_merged_extra_arguments.each do |arg| -%>
85+
<%= arg %>
86+
<%- end -%>
87+
<%- end -%>
8188
dns:
8289
type: CoreDNS
8390
etcd:

0 commit comments

Comments
 (0)