Ошибка InSpec Kubernetes Resource Pack Ruby

пытаясь начать тестирование kubernetes с помощью inspec, используя: https://github.com/bgeesaman/inspec-k8s< /а>

Я запускаю его из образа make и docker, найденного здесь: 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, но это сломало файл докеров, так как в нем больше нет apk.


person Staggerlee011    schedule 26.02.2021    source источник


Ответы (1)


Хорошо, я не понимаю, но я могу запустить его:

Похоже, что он связан с im с помощью kubectx. Если я устанавливаю kubectx в docker-desktop, а затем запускаю образ докера, он работает. Если я настроен на что-то еще, это не так.

person Staggerlee011    schedule 26.02.2021