Jenkins Kubernetes: монтировать подпуть тома - PullRequest
0 голосов
/ 28 мая 2020

Насколько я понял, api kubernetes позволяет монтировать подпуть pv c в контейнер в volumeMounts spe c.

В моем примере я хочу смонтировать pv c my-pvc, но в подкаталоге от /my-subpath до /my-mount.

Таким образом, каталог /my-subpath на my-pvc будет смонтирован в контейнере под /my-mount.

При обычном использовании Kubernetes это выглядело бы следующим образом, если бы я понял документацию:

volumeMounts:
- mountPath: /my-mount
      name: my-pvc
      subPath: "my-subpath"

Моя проблема теперь в том, что в плагине jenkins kubernetes это кажется невозможным.

Если я правильно понял документы , кажется, что можно смонтировать только каталог root, т.е. /, из pv c my-pvc в /my-mount в контейнере, поскольку нет опции subPath: Jenkins documentation screenshot

Что-то мне не хватает, или это просто невозможно?

1 Ответ

0 голосов
/ 28 мая 2020

Это невозможно при доступных опциях плагина Jenkins Kubernetes ATM. Но все же вы можете добиться этого, применив необработанный шаблон модуля в конфигурации облачного модуля Kubernetes.

Пример вывода

Started by user admin
Replayed #11
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] podTemplate
[Pipeline] {
[Pipeline] node
Still waiting to schedule task
‘hello-docker-j0rk6’ is offline
Agent hello-docker-j0rk6 is provisioned from template hello-docker
---
apiVersion: "v1"
kind: "Pod"
metadata:
  annotations: {}
  labels:
    run: "hello-docker"
    jenkins: "slave"
    jenkins/label: "hello-docker"
  name: "hello-docker-j0rk6"
spec:
  containers:
  - command:
    - "cat"
    image: "jenkins/jnlp-slave:3.27-1-alpine"
    name: "hello-docker"
    resources: {}
    tty: true
    volumeMounts:
    - mountPath: "/app/logs"
      name: "tmp"
      subPath: "logs"
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
      readOnly: false
...