【问题标题】:InSpec Kubernetes Resource Pack Ruby errorInSpec Kubernetes 资源包 Ruby 错误
【发布时间】:2021-02-26 22:35:28
【问题描述】:

尝试使用 inspec 开始测试 kubernetes:https://github.com/bgeesaman/inspec-k8s

我从makedocker 图像运行它:https://github.com/bgeesaman/inspec-k8s-sample

我有多个 eks 集群和一个本地 docker-desktop 集群。当我尝试通过以下方式连接到它们中的任何一个时:inspec exec . -t k8s://docker-desktop(将 kubeconfig -name: xxx 与 k8s:// 之后的值匹配)我总是得到同样的错误:

# inspec exec -t k8s://docker-desktop
Traceback (most recent call last):
        20: from /usr/local/bundle/bin/inspec:23:in `<main>'
        19: from /usr/local/bundle/bin/inspec:23:in `load'
        18: from /usr/local/bundle/gems/inspec-bin-4.18.51/bin/inspec:11:in `<top (required)>'
        17: from /usr/local/bundle/gems/inspec-4.18.51/lib/inspec/base_cli.rb:35:in `start'
        16: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
        15: from /usr/local/bundle/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
        14: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
        13: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
        12: from /usr/local/bundle/gems/inspec-4.18.51/lib/inspec/cli.rb:284:in `exec'
        11: from /usr/local/bundle/gems/inspec-4.18.51/lib/inspec/cli.rb:284:in `new'
        10: from /usr/local/bundle/gems/inspec-4.18.51/lib/inspec/runner.rb:78:in `initialize'
         9: from /usr/local/bundle/gems/inspec-4.18.51/lib/inspec/runner.rb:86:in `configure_transport'
         8: from /usr/local/bundle/gems/inspec-4.18.51/lib/inspec/backend.rb:53:in `create'
         7: from /usr/local/bundle/gems/train-kubernetes-0.1.6/lib/train-kubernetes/transport.rb:9:in `connection'
         6: from /usr/local/bundle/gems/train-kubernetes-0.1.6/lib/train-kubernetes/transport.rb:9:in `new'
         5: from /usr/local/bundle/gems/train-kubernetes-0.1.6/lib/train-kubernetes/connection.rb:13:in `initialize'
         4: from /usr/local/bundle/gems/train-kubernetes-0.1.6/lib/train-kubernetes/connection.rb:36:in `parse_kubeconfig'
         3: from /usr/local/bundle/gems/k8s-ruby-0.10.5/lib/k8s/client.rb:40:in `config'
         2: from /usr/local/bundle/gems/k8s-ruby-0.10.5/lib/k8s/transport.rb:81:in `config'
         1: from /usr/local/bundle/gems/k8s-ruby-0.10.5/lib/k8s/transport.rb:117:in `token_from_exec'
/usr/local/bundle/gems/k8s-ruby-0.10.5/lib/k8s/transport.rb:117:in ``': No such file or directory - aws (Errno::ENOENT)

我认为这是因为 eks kubeconfigs 链接到了 aws 配置文件。但是对于 docker-desktop 我也遇到了同样的错误。

我尝试将Makefile COMMAND 更新为:COMMAND=docker run --rm -it -v pwd:$(WORKDIR) -v $(HOME)/.kube:/root/.kube:ro -v $(HOME)/.aws:/root/.aws:ro

错误以No such file or directory - aws 结束后但没有任何乐趣。

任何想法如何解决或进展?

谢谢

小更新,它确实在确保名称正确后开始运行。但后来又停了..

我已连接到 docker-desktop(我最初运行它时它没有运行) 我已连接到 eks 集群

我做了一个vi controls/basic.rb 开始寻找我的测试,但它又开始出错了。

我认为它可能由于我的更改的语法问题而出错,所以新的make build 也出现了错误,但现在仍然没有乐趣:(

我也尝试将 chef/inspec 映像更新到最新的 4.26,但这会破坏 dockerfile,因为它不再具有 apk

【问题讨论】:

    标签: ruby amazon-web-services kubernetes chef-infra inspec


    【解决方案1】:

    好的,我不明白,但我可以让它运行:

    它似乎使用kubectx 链接到我。如果我将kubectx 设置为docker-desktop,然后运行 ​​docker 映像,它就可以工作。如果我设置为其他任何东西,它不会。

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 2021-06-28
      • 2020-01-02
      • 1970-01-01
      • 2018-01-27
      • 2016-12-15
      相关资源
      最近更新 更多