Skip to content

Commit a8a9343

Browse files
authored
Merge pull request #600 from deric/nodename
Stronger type checking for $node_name
2 parents 895b6ed + a0df61b commit a8a9343

File tree

9 files changed

+17
-12
lines changed

9 files changed

+17
-12
lines changed

manifests/cluster_roles.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
class kubernetes::cluster_roles (
44
Optional[Boolean] $controller = $kubernetes::controller,
55
Optional[Boolean] $worker = $kubernetes::worker,
6-
String $node_name = $kubernetes::node_name,
6+
Stdlib::Fqdn $node_name = $kubernetes::node_name,
77
String $container_runtime = $kubernetes::container_runtime,
88
Optional[String] $join_discovery_file = $kubernetes::join_discovery_file,
99
Optional[Array] $ignore_preflight_errors = $kubernetes::ignore_preflight_errors,

manifests/config/kubeadm.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
Optional[Array] $scheduler_extra_arguments = $kubernetes::scheduler_extra_arguments,
5050
Optional[Array] $kubelet_extra_arguments = $kubernetes::kubelet_extra_arguments,
5151
String $service_cidr = $kubernetes::service_cidr,
52-
String $node_name = $kubernetes::node_name,
52+
Stdlib::Fqdn $node_name = $kubernetes::node_name,
5353
Optional[String] $cloud_provider = $kubernetes::cloud_provider,
5454
Optional[String] $cloud_config = $kubernetes::cloud_config,
5555
Optional[Hash] $apiserver_extra_volumes = $kubernetes::apiserver_extra_volumes,

manifests/config/worker.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Class kubernetes config_worker, populates worker config files with joinconfig
22
class kubernetes::config::worker (
3-
String $node_name = $kubernetes::node_name,
3+
Stdlib::Fqdn $node_name = $kubernetes::node_name,
44
String $config_file = $kubernetes::config_file,
55
String $kubernetes_version = $kubernetes::kubernetes_version,
66
String $kubernetes_cluster_name = $kubernetes::kubernetes_cluster_name,

manifests/init.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@
643643
Array $controllermanager_extra_arguments = [],
644644
Array $scheduler_extra_arguments = [],
645645
String $service_cidr = '10.96.0.0/12',
646-
Optional[String] $node_label = undef,
646+
Optional[Stdlib::Fqdn] $node_label = undef,
647647
Optional[String] $controller_address = undef,
648648
Optional[String] $cloud_provider = undef,
649649
Optional[String] $cloud_config = undef,

manifests/kube_addons.pp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
String $kubernetes_version = $kubernetes::kubernetes_version,
1313
Boolean $controller = $kubernetes::controller,
1414
Optional[Boolean] $schedule_on_controller = $kubernetes::schedule_on_controller,
15-
String $node_name = $kubernetes::node_name,
15+
Stdlib::Fqdn $node_name = $kubernetes::node_name,
1616
Array $path = $kubernetes::default_path,
1717
Optional[Array] $env = $kubernetes::environment,
1818
) {
@@ -90,10 +90,6 @@
9090
}
9191
}
9292

93-
if $node_name !~ /^[a-zA-Z0-9]([a-zA-Z0-9\-\.]{0,251}[a-zA-Z0-9])?$/ {
94-
fail("Invalid node name: ${node_name}")
95-
}
96-
9793
if $schedule_on_controller {
9894
$schedule_command = ['kubectl', 'taint', 'nodes', $node_name, 'node-role.kubernetes.io/master-']
9995
$schedule_onlyif = "kubectl describe nodes ${node_name} | tr -s ' ' | grep 'Taints: node-role.kubernetes.io/master:NoSchedule'"

manifests/kubeadm_init.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# == kubernetes::kubeadm_init
22
define kubernetes::kubeadm_init (
3-
String $node_name = $kubernetes::node_name,
3+
Stdlib::Fqdn $node_name = $kubernetes::node_name,
44
Optional[String] $config = $kubernetes::config_file,
55
Boolean $dry_run = false,
66
Array $path = $kubernetes::default_path,

manifests/kubeadm_join.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# == kubernetes::kubeadm_join
22
define kubernetes::kubeadm_join (
3-
String $node_name = $kubernetes::node_name,
3+
Stdlib::Fqdn $node_name = $kubernetes::node_name,
44
String $kubernetes_version = $kubernetes::kubernetes_version,
55
String $config = $kubernetes::config_file,
66
String $controller_address = $kubernetes::controller_address,

metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"dependencies": [
1111
{
1212
"name": "puppetlabs-stdlib",
13-
"version_requirement": ">= 4.20.0 < 9.0.0"
13+
"version_requirement": ">= 4.25.0 < 9.0.0"
1414
},
1515
{
1616
"name": "puppetlabs-apt",

spec/classes/init_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,15 @@
8989

9090
it { is_expected.to_not contain_notify('aws_name_override') }
9191
end
92+
93+
context 'with invalid node_label should not allow code injection' do
94+
let(:params) do {
95+
worker: true,
96+
node_label: 'hostname;rm -rf /',
97+
} end
98+
99+
it { is_expected.to raise_error(/Evaluation Error: Error while evaluating/) }
100+
end
92101
end
93102
end
94103
end

0 commit comments

Comments
 (0)