Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revisionBoth sides next revision
devops:skaffold [2021/02/18 19:52] – [Настройка деплоя во внешний кластер] admindevops:skaffold [2021/02/18 21:19] – [Настройка деплоя во внешний кластер] admin
Line 175: Line 175:
   namespace: vrm   namespace: vrm
 rules: rules:
-- apiGroups: ["", "extensions", "apps"]+- apiGroups: ["*"]
   resources: ["*"]   resources: ["*"]
   verbs: ["*"]   verbs: ["*"]
Line 236: Line 236:
   KUBECONFIG=./vrm-admin-kubeconfig kubectl get po -n vrm   KUBECONFIG=./vrm-admin-kubeconfig kubectl get po -n vrm
 Теперь - добавляем содержимое этого файла в свойтсвах проекта в переменную типа **File**. В итоге -содержимое файла будет доставлено в контейнер **skaffold**  в виде временного файла, а её значение будет указать на расположение этого файла. Теперь - добавляем содержимое этого файла в свойтсвах проекта в переменную типа **File**. В итоге -содержимое файла будет доставлено в контейнер **skaffold**  в виде временного файла, а её значение будет указать на расположение этого файла.
 +А gitlab-ci.yml станет такой:
 +<code>services:
 +#  - name: docker.rdleas.ru/docker:dind
 +# Последнюю версию dind (20+) не удается использовать из-за ошибки: https://github.com/containerd/containerd/issues/4837
 +# Нужно обновлять container.d на хостах
 +# В остальном - всё уже готово. 
 +  - name: docker.rdleas.ru/docker:19-dind
 +    command: 
 +      - /bin/sh
 +      - -c
 +      - |
 +        openssl s_client -showcerts -connect docker.rdleas.ru:443 </dev/null 2>/dev/null | awk '/BEGIN/ { i++; } /BEGIN/, /END/ { print }' > /usr/local/share/ca-certificates/ca.crt
 +        update-ca-certificates
 +        unset DOCKER_TLS_CERTDIR
 +        dockerd-entrypoint.sh
 +
 +stages:
 +  - build
 +
 +variables:
 +  DOCKER_DRIVER: overlay2
 +  DOCKER_TLS_CERTDIR: ""
 +  DOCKER_HOST: tcp://0.0.0.0:2375
 +
 +build:
 +  image:
 +    name: docker.rdleas.ru/k8s-skaffold/skaffold:v1.19.0
 +  stage: build
 +  before_script:
 +    - docker login -u `echo $DOCKER_REGISTRY_LOGIN` -p `echo $DOCKER_REGISTRY_PASS` `echo $DOCKER_REGISTRY_URL`
 +#https://skaffold.dev/docs/references/cli/
 +  script:
 +    - | 
 +      openssl s_client -showcerts -connect ${DOCKER_REGISTRY_URL}:443 </dev/null 2>/dev/null | awk '/BEGIN/ { i++; } /BEGIN/, /END/ { print }' > /usr/local/share/ca-certificates/ca.crt
 +      update-ca-certificates
 +      env
 +      echo "waiting for the DinD..."
 +      timeout 60 bash -c 'until printf "" 2>>/dev/null >>/dev/tcp/$0/$1; do sleep 1; done' 0.0.0.0 2375
 +      case $CI_COMMIT_BRANCH in
 +        DEV)      
 +          VALUES="chart/values_dev.yaml" skaffold run -f skaffold-run.yaml --default-repo ${DOCKER_REGISTRY_URL}/vrm
 +        ;;
 +        TEST)
 +          VALUES="chart/values_test.yaml" \
 +          KUBECONFIG=$KUBECONFIG_TEST \
 +          skaffold run -f skaffold-run.yaml \
 +          --default-repo ${DOCKER_REGISTRY_URL}/vrm
 +        ;;
 +        PROD)
 +          KUBECONFIG=$KUBECONFIG_PROD \
 +          VALUES="chart/values_prod.yaml" \
 +          skaffold run -f skaffold-run.yaml \
 +          --default-repo ${DOCKER_REGISTRY_URL}/vrm
 +        ;;
 +        *)
 +          skaffold build -f skaffold-build.yaml
 +        ;;
 +      esac</code>
  • devops/skaffold.txt
  • Last modified: 2021/04/22 09:44
  • by admin