#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
.