Commit bb396fd
Fix K8s 401 after token expiry (#6918)
Three caching layers caused the K8s client to hold an expired
service-account token after the kubelet rotated it on disk, leading
to 401 Unauthorized after ~60 minutes on clusters with short-lived
projected tokens (e.g. AKS default 3607s).
This change closes the remaining failure modes left open after the
fixes in #6742 and #6925:
- K8sTaskHandler no longer caches the K8sClient at construction;
every access now delegates to the executor's Guava-cached client,
so handlers pick up refreshes automatically.
- ClientConfig retains the token file path (in-cluster discovery
and kubeconfig/Nextflow-config tokenFile entries) so the token
can be re-read from disk later.
- K8sClient.apply() retries on HTTP 401 when tokenPath is set:
the onRetry hook re-reads the token file (kubelet writes the
rotated token to the same mount path) and updates the in-memory
config before retrying. 401s with no tokenPath still propagate
immediately as before.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>1 parent d30e48d commit bb396fd
8 files changed
Lines changed: 214 additions & 27 deletions
File tree
- plugins/nf-k8s/src
- main/nextflow/k8s
- client
- test/nextflow/k8s
- client
Lines changed: 2 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
73 | | - | |
74 | | - | |
75 | 73 | | |
76 | 74 | | |
77 | 75 | | |
| |||
93 | 91 | | |
94 | 92 | | |
95 | 93 | | |
96 | | - | |
97 | 94 | | |
98 | 95 | | |
99 | 96 | | |
| |||
116 | 113 | | |
117 | 114 | | |
118 | 115 | | |
| 116 | + | |
| 117 | + | |
119 | 118 | | |
120 | 119 | | |
121 | 120 | | |
| |||
Lines changed: 13 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
52 | 59 | | |
53 | 60 | | |
54 | 61 | | |
| |||
108 | 115 | | |
109 | 116 | | |
110 | 117 | | |
111 | | - | |
112 | | - | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
113 | 122 | | |
114 | 123 | | |
115 | 124 | | |
| |||
143 | 152 | | |
144 | 153 | | |
145 | 154 | | |
146 | | - | |
| 155 | + | |
| 156 | + | |
147 | 157 | | |
148 | 158 | | |
149 | 159 | | |
| |||
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
92 | | - | |
| 92 | + | |
| 93 | + | |
93 | 94 | | |
94 | 95 | | |
95 | 96 | | |
| |||
Lines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
741 | 741 | | |
742 | 742 | | |
743 | 743 | | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
744 | 747 | | |
745 | 748 | | |
746 | 749 | | |
| |||
752 | 755 | | |
753 | 756 | | |
754 | 757 | | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
755 | 777 | | |
756 | 778 | | |
757 | 779 | | |
| |||
767 | 789 | | |
768 | 790 | | |
769 | 791 | | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
770 | 795 | | |
771 | 796 | | |
772 | 797 | | |
| |||
Lines changed: 38 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
| 66 | + | |
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
| |||
162 | 163 | | |
163 | 164 | | |
164 | 165 | | |
165 | | - | |
| 166 | + | |
| 167 | + | |
166 | 168 | | |
167 | 169 | | |
168 | 170 | | |
| |||
198 | 200 | | |
199 | 201 | | |
200 | 202 | | |
201 | | - | |
| 203 | + | |
| 204 | + | |
202 | 205 | | |
203 | 206 | | |
204 | 207 | | |
| |||
233 | 236 | | |
234 | 237 | | |
235 | 238 | | |
236 | | - | |
| 239 | + | |
| 240 | + | |
237 | 241 | | |
238 | 242 | | |
239 | 243 | | |
| |||
281 | 285 | | |
282 | 286 | | |
283 | 287 | | |
284 | | - | |
| 288 | + | |
| 289 | + | |
285 | 290 | | |
286 | 291 | | |
287 | 292 | | |
| |||
354 | 359 | | |
355 | 360 | | |
356 | 361 | | |
357 | | - | |
| 362 | + | |
| 363 | + | |
358 | 364 | | |
359 | 365 | | |
360 | 366 | | |
| |||
391 | 397 | | |
392 | 398 | | |
393 | 399 | | |
394 | | - | |
| 400 | + | |
| 401 | + | |
395 | 402 | | |
396 | 403 | | |
397 | 404 | | |
| |||
440 | 447 | | |
441 | 448 | | |
442 | 449 | | |
443 | | - | |
| 450 | + | |
| 451 | + | |
444 | 452 | | |
445 | 453 | | |
446 | 454 | | |
| |||
479 | 487 | | |
480 | 488 | | |
481 | 489 | | |
482 | | - | |
| 490 | + | |
| 491 | + | |
483 | 492 | | |
484 | 493 | | |
485 | 494 | | |
| |||
539 | 548 | | |
540 | 549 | | |
541 | 550 | | |
542 | | - | |
| 551 | + | |
| 552 | + | |
543 | 553 | | |
544 | 554 | | |
545 | 555 | | |
| |||
558 | 568 | | |
559 | 569 | | |
560 | 570 | | |
561 | | - | |
| 571 | + | |
| 572 | + | |
562 | 573 | | |
563 | 574 | | |
564 | 575 | | |
| |||
577 | 588 | | |
578 | 589 | | |
579 | 590 | | |
580 | | - | |
| 591 | + | |
| 592 | + | |
581 | 593 | | |
582 | 594 | | |
583 | 595 | | |
| |||
646 | 658 | | |
647 | 659 | | |
648 | 660 | | |
649 | | - | |
| 661 | + | |
| 662 | + | |
650 | 663 | | |
651 | 664 | | |
652 | 665 | | |
| |||
664 | 677 | | |
665 | 678 | | |
666 | 679 | | |
667 | | - | |
| 680 | + | |
| 681 | + | |
668 | 682 | | |
669 | 683 | | |
670 | 684 | | |
| |||
782 | 796 | | |
783 | 797 | | |
784 | 798 | | |
785 | | - | |
| 799 | + | |
| 800 | + | |
786 | 801 | | |
787 | 802 | | |
788 | 803 | | |
| |||
814 | 829 | | |
815 | 830 | | |
816 | 831 | | |
817 | | - | |
| 832 | + | |
| 833 | + | |
818 | 834 | | |
819 | 835 | | |
820 | 836 | | |
| |||
846 | 862 | | |
847 | 863 | | |
848 | 864 | | |
849 | | - | |
| 865 | + | |
| 866 | + | |
850 | 867 | | |
851 | 868 | | |
852 | 869 | | |
| |||
976 | 993 | | |
977 | 994 | | |
978 | 995 | | |
979 | | - | |
| 996 | + | |
| 997 | + | |
980 | 998 | | |
981 | 999 | | |
982 | 1000 | | |
| |||
1022 | 1040 | | |
1023 | 1041 | | |
1024 | 1042 | | |
1025 | | - | |
| 1043 | + | |
| 1044 | + | |
1026 | 1045 | | |
1027 | 1046 | | |
1028 | 1047 | | |
| |||
Lines changed: 56 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
120 | 176 | | |
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
387 | 387 | | |
388 | 388 | | |
389 | 389 | | |
| 390 | + | |
390 | 391 | | |
391 | 392 | | |
392 | 393 | | |
| |||
0 commit comments