Kubectl error: error loading config file "[secure]": open [secure]: file name too long

Hi,

I am trying to build project with docker and kubernetes for aws.
I had defined the environment variables as I supposed to, some base64 strings and other data, all runs fine, but when I get in the kubernetes part in the end, I get an annoying error that I can’t find the reason, the error is:

e[0K$ kubectl config set-cluster marcelo-cluster-udagram --server=${KUBE_SERVER_URL} --certificate-authority=${HOME}/.kube/udagram-ca.pem
**error: error loading config file "[secure]": open [secure]: file name too long**
travis_time:end:01feada4:start=1588625715207341620,finish=1588625715329227373,duration=121885753,event=after_script
e[0Ktravis_fold:end:after_script.1
e[0Ktravis_fold:start:after_script.2
e[0Ktravis_time:start:09622008
e[0K$ kubectl config set-credentials kubernetes-admin --client-certificate=${HOME}/.kube/udagram-client-ca.pem --client-key=${HOME}/.kube/udagram-key.pem
**error: error loading config file "[secure]": open [secure]: file name too long**
travis_time:end:09622008:start=1588625715334679813,finish=1588625715403393607,duration=68713794,event=after_script
e[0Ktravis_fold:end:after_script.2
e[0Ktravis_fold:start:after_script.3
e[0Ktravis_time:start:01808dc9
e[0K$ kubectl config set-context kubernetes-admin@marcelo-cluster-udagram --cluster=marcelo-cluster-udagram --namespace=default --user=kubernetes-admin
error: error loading config file "[secure]": open [secure]: file name too long
travis_time:end:01808dc9:start=1588625715409750716,finish=1588625715469655144,duration=59904428,event=after_script
e[0Ktravis_fold:end:after_script.3
e[0Ktravis_fold:start:after_script.4
e[0Ktravis_time:start:03f926a9
e[0K$ kubectl config use-context kubernetes-admin@marcelo-cluster-udagram
error: error loading config file "[secure]": open [secure]: file name too long
travis_time:end:03f926a9:start=1588625715477681560,finish=1588625715541474128,duration=63792568,event=after_script
e[0Ktravis_fold:end:after_script.4

full log here: https://api.travis-ci.com/v3/job/327770088/log.txt

I shortened the paths and iles already and all I can, but I can’t find the error, why I can’t load the config file, tried to add GitHub permissions fro longpaths as well and didn’t change anything, tried some documentation and couldn’t find tips either, cans someone help me?

Thanks.

Not much I can say without knowing what that “[secure]” stands for. You can request debug mode and reproduce the problem in it – there will be no filtering there and you will see the value.

Googling for this error suggests that the $KUBECONFIG envvar, and in particular, placing a base64-encoded value into it, is somehow problematic.

Okay, I will try with debug, but otherwise, do you have any recommendation? How do I store private keys and certificates in a good way in Travis? The environment variables is the only way I see, I will answer about the results of the debug and see if we can move forward.

You do store them as encrypted variables, or in encrypted files.

But here, the value looks like a config file name. There’s no real reason why a config file name should be a secret (because that file is probably present in the repository anyway).

So either

  • if you really store it in a secret variable
    • then you should store it in a regular variable instead so that it’s not filtered; or
  • that name simply coincided with some unrelated secret value like a login name
    • then this is a case of a https://tvtropes.org/pmwiki/pmwiki.php/Main/RevealingCoverup : that secret value is being revealed by the fact that this substring is being replaced. As such, you should change the corresponsding secret so that it’s not revealed this way. Or admit that yes, your login name is the same as your repository name, and stop storing it as a secret.

The way I did was just copy and paste the values that were generated for certificates for aws access, I had follow this instructions:

After that, there is a config file generated, then I copied some contents from this config to encrypted variables as you suggested, then I still get the same error, the funny thing is the error says the file name is too long, that gives me no clue how to proceed, that’s why I will wait until the debug finishes, then I will have more info.

Okay, it seems some error in the machine, I just checked the debug mode and saw that when I tried to run the kubectl command, after a few parameters I get the same error, I tried with and without my environment variables and I also checked the content of them in the system, looks good, so probably it is an internal problem, please take a look at my report to see if you have any clue.
I added in this paste in, just modified the key data for security.

https://pastebin.com/bNb2SPUc

Best regards,
Marcelo

I don’t know about you, but it’s pretty obvious to me that

YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VONVJFTkRRV0pEWjBGM1NVSkJaMGxDUVVSQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlJFRldUVkpOZDBWUldVUldVVkZFUlhkd2NtUlhTbXdLWTIwMWJHUkhWbnBOUWpSWVJGUkpkMDFFVVhsTlJFVjRUV3ByZVUweGIxaEVWRTEzVFVSUmVFOUVSWGhOYW10NVRURnZkMFpVUlZSTlFrVkhRVEZWUlFwQmVFMUxZVE5XYVZwWVNuVmFXRkpzWTNwRFEwRlRTWGRFVVZsS1MyOWFTV2gyWTA1QlVVVkNRbEZCUkdkblJWQkJSRU5EUVZGdlEyZG5SVUpCVFdSb0NqYzNVRzFZYjFwRFdtSklPRzAwTVUxd1JDOXlXRTFRWkVGbU5uQkNXR2RIT0ROVlVXaDFVMmt2SzNaRFNIVjZhRm92UjBadlptbDJWMFJ1YUVKbGJ6SUtielZ3Tms1M2MzUlNNelZyYlc1eFpqaEphV3ByY2psVWJtODJUSEJTVjA0M2RtWkhVVzFRZUd4Q1EwZFBiazlVUVRSUFYxWTJSVE5FYVdSMVQzaGljZ3BrY1ZjMVN6Z3dSV0ZITkhRMk0zbzJSbWR0VG5oQ01VbE5lRUpoVEZoRE1ESm9NR2htZUhSdFZUUjFTQzl2UVdGS2VXVlNLMGxNWldaTlkycFlkazVSQ2tJdlRVSlVUazFLVlRScGRucE5kM0JIVldKdmRtZE9lRTlHTXpaNFVWWmhXbXg1YVhVM2EwSlFXbkV4WWtaSldqVnBLemw1WjJwdE1sTnpkWGNyU1d3S01XRXlSMjVQUld0TFlWcHNaVXhoU2twUlQyRkdZemxLTjJWQlNtMURSakF3TkU5bVoxWlllVmxFWTFCMU1rZG1NMVp1Ym5kTGIwNXlTWEl3UmpKS1V3bzNUbE12WjNobFRIRjNSVEY0VnpNd1FtRnJRMEYzUlVGQllVMXFUVU5GZDBSbldVUldVakJRUV
ZGSUwwSkJVVVJCWjB0clRVRTRSMEV4VldSRmQwVkNDaTkzVVVaTlFVMUNRV1k0ZDBSUldVcExiMXBKYUhaalRrRlJSVXhDVVVGRVoyZEZRa0ZEY0hJM1NsUnlRbGhSTVc5MFNHWnBiVkJhVlRWRmNWbGpWR01LV1hkaFdITlphR3BZVVhWdFFqaDJSQzl0VVhKNWVHTklla1pDYURabWIwVlBURXcwVUROWE1XOUljbHBQU2k5WlFWVm9jVkUzY25ScllTOUhlRFY1Y1FvNWNsWldkemQ1SzJSVFRHOUdhVkpKTlVWTFRUQk5VM2hzU1RGV01YWXJORGN5UjNRNGQzcDZRWFI2ZDJGeFdETm9ZVmRzYTBodVRYSlZValExU0VFd0NrSXlkMjlNZFU5dlIyaFBValF5U1UxS2RqbHRRVEZYU2xkQ2NGQm5RWGgxWkRWbE5VVktjbTVrVGxrMGN6ZHlabWxrUldaMlUzaFBhRkZZVUhvMlVWWUtkazk0TTJGeFVGbENXREZ5ZVdFeFV6ZzVjMGw1Y21JclJraG5OM0J1Tldnd1NHZEdkVmxEYkZKSlVVcDRaWGgwYzJ4RmJVeFZlbEV4U1Zwa1RVMUxkZ3BFZFdOaE5FdDJTV3hLTWtsTU1YTkZVbE53TkU5cGFWTXJNMjFxTjNCd1RuVnpaM0JTWkdwSlZsVm5Wa1pvWld4dk9VOUVWVEJ0WlZOU2R6MEtMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIHNlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRvY2tlci5pbnRlcm5hbDo2NDQzCiAgbmFtZTogZG9ja2VyLWRlc2t0b3AKY29udGV4dHM6Ci0gY29udGV4dDoKICAgIGNsdXN0ZXI6IGRvY2tlci1kZXNrdG9wCiAgICB1c2VyOiBkb2NrZXItZGVza3RvcAogIG5hbWU6IGRvY2tlci1kZXNrdG9wCi0gY29udGV4dDoKICAgIGNsdXN0ZXI6IGRvY2tlci1kZXNrdG9wCiAgICB1c2VyOiBkb2NrZXItZGVza3RvcAogIG5hbWU6IGRvY2tlci1mb3ItZGVza3RvcApjdXJyZW50LWNvbnRleHQ6IGRvY2tlci1kZXNrdG9wCmtpbmQ6IENvbmZpZwpwcmVmZXJlbmNlczoge30KdXNlcnM6Ci0gbmFtZTogZG9ja2VyLWRlc2t0b3AKICB1c2VyOgogICAgY2xpZW50LWNlcnRpZmljYXRlLWRhdGE6IExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVU01UkVORFFXUjVaMEYzU1VKQlowbEpWREJvYjJ0TVZsVTRhVTEzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpSUVhkR1ZFVlVUVUpGUjBFeFZVVUtRWGhOUzJFelZtbGFXRXAxV2xoU2JHTjZRV1ZHZHpCNVRVUkJNRTFxUVhoTlZFazFUV3BPWVVaM01IbE5WRUV4VFVSTmVFMUVWVE5OZWxaaFRVUlplQXBHZWtGV1FtZE9Wa0pCYjFSRWJrNDFZek5TYkdKVWNIUlpXRTR3V2xoS2VrMVNjM2RIVVZsRVZsRlJSRVY0U210aU1rNXlXbGhKZEZwdE9YbE1WMUpzQ21NeWREQmlNMEYzWjJkRmFVMUJNRWREVTNGSFUwbGlNMFJSUlVKQlVWVkJRVFJKUWtSM1FYZG5aMFZMUVc5SlFrRlJSRUpKYUdVek5XZ3hOa05aZG1zS2QwWXhXVXBaU1VScFdGWndRMGQ0TWtOWGMweHNWaXN5VDBwSlltWlJRelp1WkVaS2NVOUJWelV6VVdwSGNIZHdPVlpWU1hvMFVIcHNZbEZPTjFSSWR3cFFUR0ZPZG01cFFtdHFlVlJ1SzFodlVuTk5WMU4xWm1rNWRrMURTSHA0WlVKVVVFZGxabk52SzFGUGFUZEtTbEJGYnpoTmNrbHRNQ3RVV2t0aWNtSnRDbG8wZFhnM01qUkRaMlpuY0VKVGJrZFNia1poUTJSVFVIQklkR1U1TmxCVVVVTk1NakJXY2tGSE0yeGtXbXhYUlRJd2FIVXpZMWxwWldKelJUSllWMFlLU2xkaVpsQkJOWEpQU1hOUVppODRaMHB6ZEdoUVVUVkNZMWhpVVZaaVpGQlZaVTg0UTBaNk5DOUJhV3g2YnpNd1RYcG5aamRUWW5RNFNXVkljVkF3ZHdwb1VWUkdMMEpEYW1odFlrRjFkMnBwVDB3MFFVdFlhMWRsT1ZCV1RUUnVTMHRCTWxSUlNIUkxiRkJOVFRsUWMwRklVRVE0VGtvd1NYbGlUbTh2YlRkWUNuUTBiRTE2UVhrelFXZE5Ra0ZCUjJwS2VrRnNUVUUwUjBFeFZXUkVkMFZDTDNkUlJVRjNTVVp2UkVGVVFtZE9Wa2hUVlVWRVJFRkxRbWRuY2tKblJVWUtRbEZqUkVGcVFVNUNaMnR4YUd0cFJ6bDNNRUpCVVhOR1FVRlBRMEZSUlVGNFJrRlVaamxvY2tScGJucGxhM0o0Vm1ONWNGcFdjSEpPZW1zdlZGWlBWZ28wUlRjNE5XcElkR2hEYkVOdlJ6VmpjREJNZFV3dlJYZFNia2s0VlVOa1JYZExUM1Z2Y2pJMldTOXZNMlpZUWpkTU1tSnNNRTlrZFRWcVdqRnVWa3RSQ25GSk5tVkxaa3R1WWxBMmFWbGpiWE5OVGpkWFJXWXdjRkJKTlZCelFrVTJieXRCVmtncloyZGtVM1U1Y0dwaFNYRlhSMHhDT1hGbmRrMUVNMmhXVUdnS1MwNUVhbTlVUlV3MmFFUm5ObnBuT1dkd2VFcG1PSEE1WVZsdk1UTTBlazFxWkVzNVJ5OWpOMlpKVVM5SVpDczFkR2xIU1RaaFpuTjFSWE41ZGxkSVN3cFhhSEZHWkVrMk5rSTFTMWd3TUZGSFYxTkZXaXMzTjBaQ0swZ3lVemMxYkZoWmIxVlhXalJ4WkhkWGNYbDBRMDFhV25GQmVqZEVTM2RPVlZsaGVrMVlDamxoU1dSSU1uaFpaVGN6V1NzeWExaHJNVnBRTWpSUWVFcFNiUzlaTDA1UVNreHFVMFV2VGpCd2JqZFJSVzkwYTJoMlMySk9aejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLCiAgICBjbGllbnQta2V5LWRhdGE6IExTMHRMUzFDUlVkSlRpQlNVMEVnVUZKSlZrRlVSU0JMUlZrdExTMHRMUXBOU1VsRmNFRkpRa0ZCUzBOQlVVVkJkMU5KV0hRcldXUmxaMjFNTlUxQ1pGZERWME5CTkd3eFlWRm9jMlJuYkhKRE5WWm1kR3BwVTBjek1FRjFjRE5TQ2xOaGFtZEdkV1F3U1hoeFkwdG1WbFpEVFN0RU9EVlhNRVJsTUhnNFJIa3lhbUkxTkdkYVNUaHJOUzlzTmtWaVJFWnJjbTQwZG1KNlFXZzRPRmhuVlhvS2VHNXVOMHRRYTBSdmRYbFRWSGhMVUVSTGVVcDBVR3N5VTIwMk1qVnRaVXh6WlRsMVFXOUlORXRSVlhCNGExcDRWMmR1VldvMlVqZFlkbVZxTURCQmFRbzVkRVpoZDBKME5WaFhXbFpvVG5SSlluUXpSMGx1YlRkQ1Rtd3hhRk5XYlRONmQwOWhlbWxNUkRNdkwwbERZa3haVkRCUFVWaEdNakJHVnpOVU1VaHFDblpCYUdNclVIZEpjR00yVGpsRVRUUklLekJ0TjJaRFNHZzJhamxOU1ZWRmVHWjNVVzgwV20xM1RITkpOR3BwSzBGRGJEVkdiblpVTVZSUFNubHBaMDRLYXpCQ04xTndWSHBFVUZRM1FVSjZkeTlFVTJSRFRXMTZZVkExZFRFM1pVcFVUWGROZEhkSlJFRlJRVUpCYjBsQ1FWRkRlVEpNUW1kSmREbDJSVWxKVlFwcWFrdHBiWFpGTHpsNk0ySjVkVzkwYTBkRmNHTXJWVlJMUjFoamQweEJOVWxGV1dJd1VpOWhPV1pFZEZKUmIxTk1UbUpYT1hSMk5XRk5jelZFYTNKMENtSnFkV0pJVTFGWk1FOVFOWHBPZFhCamExaGpWV1prVldwV2VsSjJWREEwZWpsYU0xZExVa1k1TDNKMlJpdFpVa0pXTW1zelpUUlVkMkZuVGpJeVRGTUtSVVpqYW5Gc1dWVlRiV3RXUXpKMk5EWlhhVEJsVmk4eWRVNXNjVkZaY2poaWQzaG1RVTFwVVVGalNGRjNXR3gyWmtsWlRtVjVLMmxCUkc5UlprZG5kUXBaVGtaV2VHWlFSMEZYYTBSMmNHOXllR1ZrYkM5SGFVWTFibkZRT0VwTVFYTlhlQzlEWTJwemJ6bDZZbE5RVDIxeFNtNU9Ua2dyVEU4eFVIRnlSRGxuQ2tOQmJsaFdSRloyZDNSWE1qUXZaamh5ZFhack9VWklRbGhEV2s0dlFtOU1PWHA1Ym1sVlREWXpRM3BPV20xc2JHTkJWMjFqWkd4VmFGQkRVVmd5VGxFS1JITnNWUzlpTm5oQmIwZENRVTV5T0VWT2RuSlZTVmg1ZUhOUGFYSnZjSFZ2WlU1Q2NrOVFaV2N4UkUxT1RWSXdMMUZSU1VObFFuVk1RV1l2U3pSVldncFRhbk12VUdKdFJWVlFaRGd4Ylc5WVFpdGljRFZXVG5Bek5rZDNWekJYVkhwNk5FZDRkVlZvY1ZWek9XbHNZMUp1V2t3MFVqWmpNSEZrVTNWeUsyMDFDak5WZWtsbVVtNDRiRkZHS3poTmNVY3JiWFZZWkVkUFJqWnNXVU4xYTFKRFlpdHdjVWh6VTBsa00yZHZlVEZtYnpWWVpUVlRPVWR3UVc5SFFrRlBTRWdLV1ZCMFVuTkpOMmR1V1U1V1FVdHhiVWRISzFwcFVERlBlVWQ0WlcxMmNEbHVkWEJRYVc1UVEwWk9NSFJYUkZoTmN6QnNNRGxWVXpGVVZtWXlNRVpZU1FwSlZIZElZblJtWmk5UFoydE5XSGw0VkRsMU5FdGhXa2xGUVhjNVdGQlVSbmxpTm1GaWNGZFZlR2d4ZERSVWMycG1SWFZ5Tm5obWVDOURZVUZ5TlhCQ0NtTkhkbkZWVkdaS2VrdFRkbG9yU1hKRU5tOVNUV1kyZUVORWQyd3pOMHBTV0hWQmNsSkxaR1pCYjBkQlZFWjRZbU5MVTJ0NGNVTTJOazUwWjNFNGMyRUtWRzl1U0ZKUmNVSnNabTkyWVVaWk0wdEhSelZPTDJGVVEyaE1WREZUZWxaamMxZENkVFpDUmt3MVpuSnRUVVZDVFRKa1lWaFlWSE13TlVGUmN6ZHNkd3BMWm5adkwxWjBOR3RzUldGWVdGRTJSVEZpWVdaYVltbHdaRkp2WVZWTmVuaFRUMmRhUTBKemQxVklTSEUwWmxnMlVUWXJUMnB2YmxabGFreHNVMUJ3Q25KTU9XMXFWR1prUjFKNE5Hc3JXVlp3YlUxS05tdHJRMmRaUVdFMllURkNlQ3RqU0RSUVdteHdWV2hFUkhwR2VXWkNZVGhQZUhabk4zaFpRMHhrT0RNS2FIVjFNa05NYURjNVRpOURObVpsYkVabEx6SnNURmd6Wld4QmVrdFlkbk55SzFscGFsZDVWVXd4ZUVkNFRYZEZTVTUxTWtkdWFuWlFTa1pOUkVKbFZRcFNUWGhTZDBRMGRGYzVLM2hOVUZkeUx6TTBlV2xKU0V0Q1UxUndaV3QwZDFWaGIwVjNSMVpKWWtSQmVEUllaMjlwV1hkM1JTdEpjbUZWYUZVNVUxbGxDa052Y0ZGbFVVdENaMUZEWlROeFowUkNUV05yU1hJd1J5OWFRVzV5S3pGM2Rpc3pURTVCTDFoM1pHdzNObVUyVEZobk5ESmxaRnAwYUZJNVdVSnFXbVFLVWpoeWRrbEZlWE5TT1UxbGVXWnBaREZwZFc5WldHZE9VVms1WjNSc1RGUm5RV2xxTXpCMVZWZGtZMFIzZG1nek5HTkhjMHR3ZG5Ka1JYTjJTMFZrZFFvMGIyZG1SR1JCVW5NeGFsTkJOWEJIVT
FkRGEyVk1lbWMwTUZBdkt6azVZMDVNV25sekwxRm5aMEZ3ZEVJMVVsZDJWWGRoUlZFOVBRb3RMUzB0TFVWT1JDQlNVMEVnVUZKSlZrRlVSU0JMUlZrdExTMHRMUW89Cg==: 

is a bit too long for a filename, and definitely too long for a valid filename.

Since it’s one of the secret values, it should be pretty obvious for you where it comes from.

I would guess that it’s the value of the KUBECONFIG envvar, and it’s a mystery to me why you thought this would a be a valid value for it.
The guide that you’ve linked to has absolutely no mention of assigning such monstrous values to variables.

Likewise, as I mentioned, there’s absolutely no reason for KUBECONFIG to be a secret variable.

1 Like

Hi,

Thanks again for the answer!

Well, I followed your suggestion and removed this var and try to set the values as I need, I had that just to have it all in the environment and get what I need when needed. So you’re right, some commands had run now, the weird part is that I was pointing the commands to use other variables, but for some reason it tries to get the configuration from kubeconfig, it must be something in the kubectl, I got another error and I will check if it is related. So for now I will close this.

Thank you so much!

Hey @native-api thanks for pointing this out.
Only guessing in the dark, but maybe @m2marcelo (and potentially others coming here by google search) missused k3d v3 the same way I did.

Instead of k3d kubeconfig get
echo "export KUBECONFIG=\"\$(sudo k3d kubeconfig get CLUSTERNAME)\"" >> ~/.bashrc && source ~/.bashrc
you need to use k3d kubeconfig write
echo "export KUBECONFIG=\"\$(sudo k3d kubeconfig write CLUSTERNAME)\"" >> ~/.bashrc && source ~/.bashrc

which will point to the file :wink:

1 Like