Как выйти из рулевого крюка, если претензия ПВХ не найдена?

У меня есть пост-апгрейдное задание helm hook, которое монтирует 2 PV Claims и копирует данные из одного PVC в другой. Однако при некоторых условиях определенный PVC может отсутствовать. Когда я запускаю этот хук, задание создается, но находится в состоянии «Ожидание», даже несмотря на то, что PVC отсутствует. Есть ли способы пометить эту работу как неудачную и двигаться дальше?

apiVersion: batch/v1
kind: Job
metadata:
  name: pvc-rsync
spec:
  template:         
    metadata:
        name: rsync
    spec:
      containers:
      - name:pvc-rsync
        image: mrsync:latest
        imagePullPolicy: Always
        volumeMounts:
        - name: source
          mountPath: /srcd
        - name: destination
          mountPath: /dest
      restartPolicy: OnFailure 
      volumes:
      - name: source
        persistentVolumeClaim:
          claimName: foo
      - name: destination
        persistentVolumeClaim:
          claimName: blah

Команда описания показывает, что

Events:
  Type     Reason            Age               From               Message
  ----     ------            ----              ----               -------
  Warning  FailedScheduling  3m (x25 over 4m)  default-scheduler  persistentvolumeclaim "foo" not found

Я хотел бы сделать одну из двух вещей: 1. Динамически определить, что PVC отсутствует 2. Выйти из задания, чтобы оно имело тот же смысл.


person Murali    schedule 05.07.2019    source источник


Ответы (1)


Прямого решения для этого нет. Мне пришлось открыть другой контейнер с правильными разрешениями роли кластера, инициализировать kubectl в этом контейнере и использовать его для обнаружения вышеуказанного.

person Murali    schedule 24.08.2019