Проблема с рабочей областью Tekton — путь монтирования — Ошибка пути

#tekton #tekton-pipelines

Вопрос:

В настоящее время я пытаюсь развернуть tutum-hello-world. Я написал сценарий для того же самого, но он работает не так, как должен. Я уверен, что эта проблема связана с рабочим пространством.

ОБНОВЛЕНИЕ Вот мой код для task-tutum-deploy.yaml

 apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: tutum-deploy
spec:
  steps:
    - name: tutum-deploy
      image: bitnami/kubectl
      script: |
        kubectl apply -f /root/tekton-scripts/tutum-deploy.yaml
  workspaces:
    - name: messages
      optional: true
      mountPath: /root/tekton-scripts/
 

Ошибка —

 root@master1:~/tekton-scripts# tkn taskrun logs tutum-deploy-run-8sq8s -f -n default
[tutum-deploy]   kubectl apply -f /root/tekton-scripts/tutum-deploy.yaml
[tutum-deploy] error: the path "/root/tekton-scripts/tutum-deploy.yaml" cannot be accessed: stat /root/tekton-scripts/tutum-deploy.yaml: permission denied

container step-tutum-deploy has failed  : [{"key":"StartedAt","value":"2021-06-14T12:54:01.096Z","type":"InternalTektonResult"}]
 

PS — Я разместил свой скрипт на главном узле по адресу — /root/tekton-scripts/tutum-deploy.yaml

 root@master1:~/tekton-scripts# ls -l tutum-deploy.yaml 
-rwxrwxrwx 1 root root 626 Jun 11 11:31 tutum-deploy.yaml
 

СТАРЫЙ СЦЕНАРИЙ

Вот мой код для task-tutum-deploy.yaml

 apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: tutum-deploy
spec:
  workspaces:
    - name: messages
      optional: true
      mountPath: /root/tekton-scripts/tutum-deploy.yaml
  steps:
    - name: tutum-deploy
      image: bitnami/kubectl
      command: ["kubectl"]
      args:
        - "apply"
        - "-f"
        - "./tutum-deploy.yaml"
 

Вот мой код tutum-deploy.yaml , который присутствует на компьютере (главном узле) кластера Kubernetes с разрешениями на чтение, запись и выполнение —

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world-tutum
  labels:
    service: hello-world-tutum
spec:
  replicas: 1
  selector:
    matchLabels:
      service: hello-world-tutum
  template:
    metadata:
      labels:
        service: hello-world-tutum
    spec:
      containers:
      - name: tutum-hello-world
        image: tutum/hello-world:latest
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: hello-world-tutum
spec:
  type: NodePort
  selector:
    service: hello-world-tutum
  ports:
  - name: "80"
    port: 80
    targetPort: 80
    nodePort: 30050

 

Я выполнил следующие команды со своего главного узла кластера Kubernetes —

 1. kubectl apply -f task-tutum-deploy.yaml

2. tkn task start tutum-deploy
 

Ошибка —

Использование команды tekton — $ tkn taskrun logs tutum-deploy-run-tvlll -f -n default

 task tutum-deploy has failed: "step-tutum-deploy" exited with code 1 (image: "docker-pullable://bitnami/kubectl@sha256:b83299ee1d8657ab30fb7b7925b42a12c613e37609d2b4493b4b27b057c21d0f"); for logs run: kubectl -n default logs tutum-deploy-run-tvlll-pod-vbl5g -c step-tutum-deploy

[tutum-deploy] error: the path "./tutum-deploy.yaml" does not exist

container step-tutum-deploy has failed  : [{"key":"StartedAt","value":"2021-06-11T14:01:49.786Z","type":"InternalTektonResult"}]
 

Комментарии:

1. Перед kubectl командой в задаче, можете ли вы попытаться ls увидеть, какие файлы существуют в пути? Вы разместили там манифест развертывания?

2. ls выдает мне следующий вывод — # tkn taskrun logs tutum-deploy-run-nz6qt -f -n default [tutum-deploy] ls [tutum-deploy] bin [tutum-deploy] boot [tutum-deploy] dev [tutum-deploy] etc [tutum-deploy] home [tutum-deploy] lib [tutum-deploy] lib64 [tutum-deploy] media [tutum-deploy] mnt [tutum-deploy] opt [tutum-deploy] proc [tutum-deploy] root [tutum-deploy] run [tutum-deploy] sbin [tutum-deploy] srv [tutum-deploy] sys [tutum-deploy] tekton [tutum-deploy] tmp [tutum-deploy] usr [tutum-deploy] var » рабочее пространство[tutum-deploy]»

Ответ №1:

Ошибка связана с этой частью вашего YAML:

 spec:
  workspaces:
    - name: messages
      optional: true
      mountPath: /root/tekton-scripts/tutum-deploy.yaml
 

spec.workspaces.mountPath ожидает каталог, а не файл, как вы указали здесь. Возможно, вы имеете в виду /root/tekton-scripts/ вместо этого, но я с этим незнаком tutum-hello-world .

Если вы посмотрите документацию, вы увидите, что все ссылки на mountPath нее являются каталогами, а не файлами.

Комментарии:

1. Даже после использования mounPath. У него есть некоторые проблемы с разрешениями. Есть идеи, как это решить?

2. Опубликуйте проблемы с разрешениями и с удовольствием попытаемся помочь 😀

3. Я отредактировал свой пост с последней ошибкой. Пожалуйста, посмотрите мой пост. fyr, вот проблемы с разрешениями — [tutum-deploy] error: the path "/root/tekton-scripts/tutum-deploy.yaml" cannot be accessed: stat /root/tekton-scripts/tutum-deploy.yaml: permission denied и это уровень разрешений файла — -rwxrwxrwx 1 root root 626 Jun 11 11:31 tutum-deploy.yaml

4. Ошибка разрешений здесь может быть в любом месте пути. Несмотря на то, что файл принадлежит вам, у вас могут быть неправильные разрешения в /root/tekton-scripts/ или /root .