This repository was archived by the owner on Sep 26, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -46,7 +46,8 @@ RUN yum update -y \
4646RUN groupadd -r $FLUENT_USER && \
4747 useradd -r -g $FLUENT_USER $FLUENT_USER && \
4848 mkdir -p /fluentd/log /fluentd/etc /fluentd/plugins && \
49- chown -R $FLUENT_USER /fluentd && chgrp -R $FLUENT_USER /fluentd
49+ chown -R $FLUENT_USER /fluentd && chgrp -R $FLUENT_USER /fluentd && \
50+ chmod +t /tmp
5051
5152USER $FLUENT_USER
5253CMD bundle exec fluentd -c /fluentd/etc/fluent.conf
Original file line number Diff line number Diff line change 1717require 'fluent/plugin/input'
1818require 'kubeclient'
1919require 'multi_json'
20+ require 'resolv'
2021
2122module Fluent
2223 module Plugin
@@ -76,6 +77,8 @@ class KubernetesMetricsInput < Fluent::Plugin::Input
7677 def configure ( conf )
7778 super
7879
80+ @kubelet_address = "[#{ @kubelet_address } ]" if @kubelet_address =~ Resolv ::IPv6 ::Regex
81+
7982 if @use_rest_client
8083 raise Fluentd ::ConfigError , 'node_name is required' if @node_name . nil? || @node_name . empty?
8184 else
@@ -136,6 +139,7 @@ def init_without_kubeconfig(_options = {})
136139 if @kubernetes_url . nil?
137140 # Use Kubernetes default service account if we're in a pod.
138141 env_host = ENV [ 'KUBERNETES_SERVICE_HOST' ]
142+ env_host = "[#{ env_host } ]" if env_host =~ Resolv ::IPv6 ::Regex
139143 env_port = ENV [ 'KUBERNETES_SERVICE_PORT' ]
140144 if env_host && env_port
141145 @kubernetes_url = "https://#{ env_host } :#{ env_port } /api/"
Original file line number Diff line number Diff line change @@ -109,6 +109,30 @@ def create_driver(conf = CONFIG)
109109 assert_equal true , d . instance . use_rest_client
110110 end
111111
112+ test 'IPv6 node configuration' do
113+ IPv6_CONFIG = %(
114+ type kubernetes_metrics
115+ node_name generics-aws-node-name
116+ tag kube.*
117+ insecure_ssl true
118+ interval 10s
119+ use_rest_client true
120+ use_rest_client_ssl false
121+ kubelet_port 10_255
122+ kubelet_address fd55:4d62:e00f::1
123+ )
124+ assert_nothing_raised ( Fluent ::ConfigError ) do
125+ create_driver ( IPv6_CONFIG )
126+ end
127+
128+ d = create_driver ( IPv6_CONFIG )
129+ assert_equal '[fd55:4d62:e00f::1]' , d . instance . kubelet_address
130+ assert_equal 'http://[fd55:4d62:e00f::1]:10255/stats/summary' , d . instance . instance_variable_get ( '@kubelet_url' )
131+ assert_equal 'http://[fd55:4d62:e00f::1]:10255/stats' , d . instance . instance_variable_get ( '@kubelet_url_stats' )
132+ assert_equal 'http://[fd55:4d62:e00f::1]:10255/metrics/cadvisor' , d . instance . instance_variable_get ( '@cadvisor_url' )
133+
134+ end
135+
112136 sub_test_case 'node_unit_tests' do
113137 test 'test_emit_cpu_metrics' do
114138 assert_not_nil @@hash_map_test . key? ( 'kube.node.cpu.usage' )
You can’t perform that action at this time.
0 commit comments