Fabric8-maven-plugin генерирует livenessProbe и readinessProbe для initcontainers, и развертывание завершается с ошибкой

Я использую initContainers в файле deployment.yml и использую Fabric8-maven-plugin для развертывания приложения в openshift.

Фрагмент initContainers из deployment.yml

spec:
  template:
    spec:
      volumes:
      - emptyDir: {}
        name: work-dir
      containers:
      - name: hello-world       
        resources:
          requests:
            cpu: "0.2"
#           memory: 256Mi
          limits:
            cpu: "1.0"
#           memory: 256Mi
        volumeMounts:
        - mountPath: /var/work-dir
          name: work-dir
      initContainers:
      - args:
        - -c        
        command:
        - /bin/bash    
        image: docker-registry.default.svc:5000/openshift/rhel-openssl-keytool
        imagePullPolicy: Always
        name: init-hello-world
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /var/work-dir
          name: work-dir

Openshift.yml, сгенерированный f-m-p, добавляет livenessProbe и readinessProbe в initContainers, что недопустимо. сгенерированный DC:

initContainers:
        - args:
          - -c
          command:
          - /bin/bash
          image: docker-registry.default.svc:5000/openshift/rhel-openssl-keytool
          imagePullPolicy: Always
          livenessProbe:
            httpGet:
              path: /health
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 180
          name: init-hello-world
          readinessProbe:
            httpGet:
              path: /health
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 10
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
          - mountPath: /var/work-dir
            name: work-dir

Развертывание (mvn fabric8:deploy) завершается с ошибкой "io.fabric8.kubernetes.client.KubernetesClientException spec.template.spec.initContainers[0].livenessProbe: Invalid value:"

    [INFO] Updating DeploymentConfig from openshift.yml
[ERROR] Failed to update DeploymentConfig from openshift.yml. io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: PUT at: https
://openshifthost.com/deploymentconfigs/sample-project. Message: Deployment
Config "sample-project" is invalid: [spec.template.spec.initContainers[0].livenessProbe: Invalid value: api.Probe{Handler:api.Handler{Ex
ec:(*api.ExecAction)(nil), HTTPGet:(*api.HTTPGetAction)(0xc4459a7340), TCPSocket:(*api.TCPSocketAction)(nil)}, InitialDelaySeconds:180, TimeoutSeconds
:1, PeriodSeconds:10, SuccessThreshold:1, FailureThreshold:3}: must not be set for init containers, spec.template.spec.initContainers[0].readinessProb
e: Invalid value: api.Probe{Handler:api.Handler{Exec:(*api.ExecAction)(nil), HTTPGet:(*api.HTTPGetAction)(0xc4459a7b90), TCPSocket:(*api.TCPSocketActi
on)(nil)}, InitialDelaySeconds:10, TimeoutSeconds:1, PeriodSeconds:10, SuccessThreshold:1, FailureThreshold:3}: must not be set for init containers].
Received status: Status(apiVersion=v1, code=422, details=StatusDetails(causes=[StatusCause(field=spec.template.spec.initContainers[0].livenessProbe, m
essage=Invalid value: api.Probe{Handler:api.Handler{Exec:(*api.ExecAction)(nil), HTTPGet:(*api.HTTPGetAction)(0xc4459a7340), TCPSocket:(*api.TCPSocket
Action)(nil)}, InitialDelaySeconds:180, TimeoutSeconds:1, PeriodSeconds:10, SuccessThreshold:1, FailureThreshold:3}: must not be set for init containe
rs, reason=FieldValueInvalid, additionalProperties={}), StatusCause(field=spec.template.spec.initContainers[0].readinessProbe, message=Invalid value:
api.Probe{Handler:api.Handler{Exec:(*api.ExecAction)(nil), HTTPGet:(*api.HTTPGetAction)(0xc4459a7b90), TCPSocket:(*api.TCPSocketAction)(nil)}, Initial
DelaySeconds:10, TimeoutSeconds:1, PeriodSeconds:10, SuccessThreshold:1, FailureThreshold:3}: must not be set for init containers, reason=FieldValueIn
valid, additionalProperties={})], group=null, kind=DeploymentConfig, name=sample-project, retryAfterSeconds=null, uid=null, additionalPr
operties={}), kind=Status, message=DeploymentConfig "sample-project" is invalid: [spec.template.spec.initContainers[0].livenessProbe: In
valid value: api.Probe{Handler:api.Handler{Exec:(*api.ExecAction)(nil),

Я считаю, что initContainer не должен содержать livenessProbe и readinessProbe, поскольку он завершится до контейнеров приложений, не уверен, почему f-m-p генерирует это. Мне не хватает какой-то конфигурации или это ошибка с плагином Fabric8-maven?

Используемая версия fabric8.maven.plugin.version3.5.33.fuse-000067-redhat-1.

Примечание. Удаление livnessProbe и readinessProbe initcontainers из openshift.yml и применение ресурса (mvn fabric8:apply) прошло успешно.


person jack    schedule 09.07.2018    source источник


Ответы (1)