Skip to content

Commit 110bce8

Browse files
authored
filter_kubernetes: add option kube_token_ttl (fluent#4352) (fluent#4487)
* filter_kubernetes: add option kube_token_ttl The option sets the re-read frequency of the token for the defauld method and for option Kube_Token_Command. Default is 600 seconds. Signed-off-by: Michael Voelker <[email protected]> * filter_kubernetes: set kube_token_ttl default to 600s Signed-off-by: Michael Voelker <[email protected]> * filter_kubernetes: use FLB_CONFIG_MAP_TIME for kube_token_ttl config Signed-off-by: Michael Voelker <[email protected]>
1 parent ec588d0 commit 110bce8

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

plugins/filter_kubernetes/kube_conf.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ struct flb_kube {
8282
int dummy_meta;
8383
int tls_debug;
8484
int tls_verify;
85+
int kube_token_ttl;
8586
flb_sds_t meta_preload_cache_dir;
8687

8788
/* Configuration proposed through Annotations (boolean) */

plugins/filter_kubernetes/kube_meta.c

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
#define FLB_KUBE_META_INIT_CONTAINER_STATUSES_KEY_LEN \
4646
(sizeof(FLB_KUBE_META_INIT_CONTAINER_STATUSES_KEY) - 1)
4747
#define FLB_KUBE_TOKEN_BUF_SIZE 8192 /* 8KB */
48-
#define FLB_KUBE_TOKEN_TTL 600 /* 10 minutes */
4948

5049
static int file_to_buffer(const char *path,
5150
char **out_buf, size_t *out_size)
@@ -161,17 +160,15 @@ static int get_http_auth_header(struct flb_kube *ctx)
161160
if (ret == -1) {
162161
flb_plg_warn(ctx->ins, "failed to run command %s", ctx->kube_token_command);
163162
}
164-
ctx->kube_token_create = time(NULL);
165-
}
163+
}
166164
else {
167165
ret = file_to_buffer(ctx->token_file, &tk, &tk_size);
168166
if (ret == -1) {
169167
flb_plg_warn(ctx->ins, "cannot open %s", FLB_KUBE_TOKEN);
170168
}
171-
/* Token from token file will not expire */
172-
/* Set the creation time to 0 to aviod refresh */
173-
ctx->kube_token_create = 0;
169+
flb_plg_info(ctx->ins, " token updated", FLB_KUBE_TOKEN);
174170
}
171+
ctx->kube_token_create = time(NULL);
175172

176173
/* Token */
177174
if (ctx->token != NULL) {
@@ -210,19 +207,17 @@ static int refresh_token_if_needed(struct flb_kube *ctx)
210207
int expired = 0;
211208
int ret;
212209

213-
if (ctx->kube_token_command != NULL) {
214-
if (ctx->kube_token_create > 0) {
215-
if (time(NULL) > ctx->kube_token_create + FLB_KUBE_TOKEN_TTL) {
216-
expired = FLB_TRUE;
217-
}
210+
if (ctx->kube_token_create > 0) {
211+
if (time(NULL) > ctx->kube_token_create + ctx->kube_token_ttl) {
212+
expired = FLB_TRUE;
218213
}
219-
220-
if (expired || ctx->kube_token_create == 0) {
221-
ret = get_http_auth_header(ctx);
222-
if (ret == -1) {
223-
flb_plg_warn(ctx->ins, "failed to set http auth header");
224-
return -1;
225-
}
214+
}
215+
216+
if (expired || ctx->kube_token_create == 0) {
217+
ret = get_http_auth_header(ctx);
218+
if (ret == -1) {
219+
flb_plg_warn(ctx->ins, "failed to set http auth header");
220+
return -1;
226221
}
227222
}
228223

plugins/filter_kubernetes/kubernetes.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -854,6 +854,11 @@ static struct flb_config_map config_map[] = {
854854
0, FLB_TRUE, offsetof(struct flb_kube, kubelet_port),
855855
"kubelet port to connect with when using kubelet"
856856
},
857+
{
858+
FLB_CONFIG_MAP_TIME, "kube_token_ttl", "10m",
859+
0, FLB_TRUE, offsetof(struct flb_kube, kube_token_ttl),
860+
"kubernetes token ttl, until it is reread from the token file. Default: 10m"
861+
},
857862
/*
858863
* Set TTL for K8s cached metadata
859864
*/

0 commit comments

Comments
 (0)