Kubectl: команда не найдена на travis ci - PullRequest
1 голос
/ 10 марта 2019

Я пытаюсь развернуть кластер kubernetes с помощью Travis CI, и я получаю следующую ошибку

EDIT:

неверный аргумент "myAcc / imgName:" для t: неверный формат ссылки

См. Сборку докера --help

. / Deploy.sh: строка 1: kubectl: команда не найдена

Это мой конфигурационный файл travis

travis.yml

sudo: required
services: 
  - docker
env:
  global:
    - SHA-$(git rev-parse HEAD)
    - CLOUDSDK_CORE_DISABLE_PROMPTS=1
before-install:
  - openssl aes-256-cbc -K $encrypted_0c35eebf403c_key -iv $encrypted_0c35eebf403c_iv -in service-account.json.enc -out service-account.json -d
  - curl https://sdk.cloud.google.com | bash > /dev/null
  - source $HOME/google-cloud-sdk/path.bash.inc
  - gcloud components update kubectl
  - gcloud auth activate-service-account --key-file service-account.json
  - gcloud config set project robust-chess-234104
  - gcloud config set compute/zone asia-south1-a
  - gcloud container clusters get-credentials standard-cluster-1
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin

deploy:
  provider: script
  script: bash ./deploy.sh
  on: 
    branch: master

Это мой сценарий развертывания

deploy.sh

doccker build -t myAcc/imgName:$SHA
docker push myAcc/imgName:$SHA
kubectl apply -k8s

Я думаю, команда gcloud components update kubectl не работает. Есть идеи?

Спасибо!

1 Ответ

2 голосов
/ 10 марта 2019

Первая проблема invalid argument "myAcc/imgName:" for t: invalid reference format, поскольку переменная $SHA не определена должным образом. Существует синтаксическая проблема с определением переменной, которую вы должны использовать = вместо - после SHA, поэтому должно быть так:

- SHA=$(git rev-parse HEAD)

Вторая проблема, связанная с kubectl, вам нужно установить, используя следующую команду в соответствии с docs :

gcloud components install kubectl

Обновление

После тестирования этого файла на Travis-CI мне удалось выяснить проблему. Вы должны использовать before_install вместо before-install, так что в вашем случае шаги до установки никогда не будут выполнены.

# travis.yml
---
env:
  global:
    - CLOUDSDK_CORE_DISABLE_PROMPTS=1
before_install:
 - curl https://sdk.cloud.google.com | bash > /dev/null
 - source $HOME/google-cloud-sdk/path.bash.inc
 - gcloud components install kubectl

script: kubectl version

И финальная часть результата сборки:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.7", GitCommit:"65ecaf0671341311ce6aea0edab46ee69f65d59e", GitTreeState:"clean", BuildDate:"2019-01-24T19:32:00Z", GoVersion:"go1.10.7", Compiler:"gc", Platform:"linux/amd64"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...