Гицын c в кубернетах не разворачивается должным образом - PullRequest
0 голосов
/ 11 июля 2020

Я запускаю контейнер gitsyn c в kubernetes и пытаюсь синхронизировать c репозиторий с github. Я уже создал секрет с помощью known_hosts и s sh. Однако я сталкиваюсь со следующей ошибкой.

"msg" = "не удалось синхронизировать c репо, прерывание" "error" = "ошибка выполнения команды: статус выхода 128:" Клонирование в '/ tmp / git '... \ nfatal: не удалось прочитать из удаленного репозитория. \ N \ nУбедитесь, что у вас есть правильные права доступа \ nи репозиторий существует. \ N ""

Вот мой файл развертывания.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitsync-deployment
  labels:
    app: gitsync
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gitsync
  template:
    metadata:
      labels:
        app: gitsync
    spec:
      containers:
      - name: git-sync
        image: k8s.gcr.io/git-sync:v3.1.5
#        command: ["cat"]
#        args: ["/etc/git-secret/ssh"]
        imagePullPolicy: Always
        volumeMounts:
        - name: git-secret
          mountPath: /etc/git-secret
        env:
        - name: GIT_SYNC_REPO
          value: "git@github.com:username/test.git"
        - name: GIT_SYNC_SSH
          value: "true"
        - name: GIT_SYNC_BRANCH
          value: master
        - name: GIT_SYNC_DEST
          value: git
        - name: GIT_SYNC_DEPTH
          value: "1"
      volumes:
      - name: html
        emptyDir: {}
      - name: git-secret
        secret:
          secretName: git-creds
          defaultMode: 256

1 Ответ

1 голос
/ 11 июля 2020

Похоже, вы следовали официальной документации .

Но оказывается, что в этой документации вообще не упоминается, где разместить publi c ключ .

Фактически, аутентификация git через S SH требует следующих шагов:

1. Генерация пары ключей S SH:

ssh-keygen -t rsa -N "" -f mykey

Этот cmd генерирует 2 файла:

  • закрытый ключ: ./mykey
  • publi c ключ: ./mykey.pub

2. Поместите ключ publi c в свою учетную запись Github в разделе Настройки> S SH Ключи

Скопируйте содержимое ./mykey.pub и добавьте его в свою учетную запись github.

3. Поместите закрытый ключ в секрет k8s

Официальная документация началась отсюда, и он рассматривает $HOME/.ssh/id_rsa как закрытый ключ.

kubectl create secret generic git-creds \
    --from-file=ssh=./mykey \ 
  ....

остальные должны быть такими же как указано в официальной документации.

...