Welcome to the Linux Foundation Forum!

Lab 6.1 Step 2: No Resources Found

Posts: 6
edited October 2022 in LFS258 Class Forum

After typing the command under step 2: kubectl get secrets --all-namespaces, I have "No resources found" returned. Is there some underlying detail I missed along the way?

FYI, /var/run/secrets does not exist

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Best Answer

  • Posts: 2,436
    Answer ✓

    Hi @mabricker,

    In latest releases, Kubernetes no longer creates token secrets automatically. It becomes the user's responsibility to create them as desired. The following commands should work instead:

    export token=$(kubectl create token default)

    curl https://k8scp:6443/apis --header "Authorization: Bearer $token" -k

    Regards,
    -Chris

Answers

  • Posts: 10

    Had the same question as @mabricker . Thanks @chrispokorni for explaining why the default tokens are not created (anymore). :) The Course material should be updated accordingly.

  • I also ran into the same issue. Glad to see it answered here. Thanks @chrispokorni

  • Should the above commands create resources that should be viewable using the kubectl get secrets command? Because it does not create any secrets according to my installation.

  • Hi @dont827273,

    The kubectl create token ... command above creates a token, not a secret.

    You can read more at https://kubernetes.io/docs/concepts/configuration/secret/

    Regards,
    -Chris

  • Posts: 4
    edited February 2023

    its 2/28/2023 and I've ran into this exact issue with this lab material. SO basically your suggestion is to create it and disregard steps 1-3.

  • Same issue here. @chrispokorni Do we create secrets or just skip these steps?

  • Hello @kmai007

    In the updated lab (2/28/2023) we have added the step 6.2 which generates the token

    export token=$(kubectl create token default)

    Please verify.

    thanks,
    Fazlur

  • Summary of issue and proposed answer and correction to lab document:
    The Problem:
    For Lab 6.1 - Step 1 -3
    With k8s Version 1.25.1 you will get the following
    $ kubectl get secrets --all-namespaces
    No resources found
    $ kubectl get secrets
    No resources found in default namespace.

    Solution: Skip steps 1-4 and instead run
    $ export token=$(kubectl create token default)
    Then as in step 5 run:
    $ curl https://k8scp:6443/apis --header "Authorization: Bearer $token" -k

  • @dicalleson

    We have fixed this in the V1.26.1 version of Lab. Thank you.

    regards,
    Fazlur

  • Is that version active? at the moment I do not see step 6.2

  • Posts: 2,436

    Hi @nicocerquera,

    Yes it is. It has been active since its release 3/1/2023.

    Please clear your browser cache, log back into the course, and navigate to Lab 6.1 under the Lessons menu, or simply download the entire lab guide PDF from the Resources menu.

    Regards,
    -Chris

  • Posts: 45

    How are you @chrispokorni? I did precisely the instructions you gave ( export token=$(kubectl create token default)
    and curl https://k8scp:6443/apis --header "Authorization: Bearer $token" -k),
    although the answer is not a resource found when I try to get secrets.

  • Posts: 2,436

    I am good @maybel, thank you for asking. How are things with you?
    The token creation command does not generate a secret. That is the reason why no secret is found, which is the expected behavior.
    However, was the curl successful once the token was supplied?

    Regards,
    -Chris

  • Posts: 45

    Hi @chrispokorni , As the British like to say: not too bad. Thanks for the curl question because it clarified the exact sentence creating the secret. Unfortunately, it didn't work.

    1. student@cp:~$ kubectl get namespaces
    2. NAME STATUS AGE
    3. accounting Active 113d
    4. default Active 125d
    5. kube-node-lease Active 125d
    6. kube-public Active 125d
    7. kube-system Active 125d
    8. linkerd Active 82d
    9. linkerd-viz Active 82d
    10. low-usage-limit Active 119d
    11. small Active 117d
    12. student@cp:~$ kubectl -n default get secrets
    13. NAME TYPE DATA AGE
    14. dashboard-kubernetes-dashboard-certs Opaque 0 41d
    15. dashboard-kubernetes-dashboard-token kubernetes.io/service-account-token 3 5d17h
    16. kubernetes-dashboard-csrf Opaque 1 41d
    17. kubernetes-dashboard-key-holder Opaque 2 41d
    18. myingress-ingress-nginx-admission Opaque 3 105d
    19. sh.helm.release.v1.dashboard.v1 helm.sh/release.v1 1 41d
    20. sh.helm.release.v1.myingress.v1 helm.sh/release.v1 1 103d
    21. student@cp:~$ kubectl -n default get serviceaccounts
    22. NAME SECRETS AGE
    23. dashboard-kubernetes-dashboard 0 41d
    24. default 0 125d
    25. myingress-ingress-nginx 0 103d
    26. student@cp:~$ export token=$(kubectl create token default)
    27. student@cp:~$ export token=$(kubectl create token default -n default)
    28. student@cp:~$ curl https://k8scp:6443/apis --header "Authorization: Bearer $token" -k
    29. {
    30. "kind": "APIGroupList",
    31. "apiVersion": "v1",
    32. "groups": [
    33. {
    34. "name": "apiregistration.k8s.io",
    35. "versions": [
    36. {
    37. "groupV
    38. ...
    39. ...
    40. ],
    41. "preferredVersion": {
    42. "groupVersion": "metrics.k8s.io/v1beta1",
    43. "version": "v1beta1"
    44. }
    45. }
    46. ]
    47. }student@cp:~$kubectl -n default get secrets
    48. NAME TYPE DATA AGE
    49. dashboard-kubernetes-dashboard-certs Opaque 0 41d
    50. dashboard-kubernetes-dashboard-token kubernetes.io/service-account-token 3 5d17h
    51. kubernetes-dashboard-csrf Opaque 1 41d
    52. kubernetes-dashboard-key-holder Opaque 2 41d
    53. myingress-ingress-nginx-admission Opaque 3 105d
    54. sh.helm.release.v1.dashboard.v1 helm.sh/release.v1 1 41d
    55. sh.helm.release.v1.myingress.v1 helm.sh/release.v1 1 103d
    56. student@cp:~$ kubectl -n default get serviceaccounts
    57. NAME SECRETS AGE
    58. dashboard-kubernetes-dashboard 0 41d
    59. default 0 125d
    60. myingress-ingress-nginx 0 103d

    As you can see, I have a namespace called default. The namespace called default has a service account called default as well.
    From help I got this:

    ```

    Request a token for a service account in a custom namespace

    kubectl create token myapp --namespace myns
    ```

    Because of the command help, I created a token called default in the namespace default, and there is no secret with that name in my namespace default.
    By the way, I'm doing lab 15, and I don't catch how to create secrets :| .

    I appreciate any help you can provide. You always find the patience to help me.

  • Posts: 45

    sorry for the giant letters B)

  • Posts: 2,436

    Hi @maybel,

    Based on the output shown at step 3 of lab exercise 6.1, your curl command seems to be successful, as it produced the expected output. Meaning that the token was also created successfully.

    If needed, a secret object can be created by the user to store the token:
    https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets

    Regards,
    -Chris

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training