Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-8685

Failed to create broker deployment when using an httpGet livenessProbe

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done-Errata
    • Icon: Undefined Undefined
    • None
    • AMQ 7.11.4.OPR.1.GA
    • operator
    • Important

      When deploying a minimal broker using the default example in the web console and adding an httpGet liveness probe, the StatefulSet is created but the Pods are not deployed.  In the Namespace Events I see the following:

      LAST SEEN   TYPE      REASON         OBJECT                  MESSAGE
      0s          Warning   FailedCreate   statefulset/ex-aao-ss   create Pod ex-aao-ss-0 in StatefulSet ex-aao-ss failed error: Pod "ex-aao-ss-0" is invalid: spec.containers[0].livenessProbe: Required value: must specify a handler type 

      When looking at the yaml of the created StatefulSet, the livenessProbe is missing the httpGet parameter (the readiness and startup probes are created fine):

              livenessProbe:
                failureThreshold: 3
                periodSeconds: 10
                successThreshold: 1
                timeoutSeconds: 5 

      If I manually edit to StatefulSet to add the missing httpGet.port: 8161 parameters, the Pod deployment finishes successfully.

       

      The ActiveMQArtemis yaml used for the test was the following:

      kind: ActiveMQArtemis
      apiVersion: broker.amq.io/v1beta1
      metadata:
        application: ex-aao-app
        name: ex-aao
        namespace: a-test
      spec:
        deploymentPlan:
          image: placeholder
          jolokiaAgentEnabled: false
          journalType: nio
          managementRBACEnabled: true
          messageMigration: false
          persistenceEnabled: false
          requireLogin: false
          size: 2
          livenessProbe:
            failureThreshold: 3
            httpGet:
              port: 8161
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 5
          readinessProbe:
            failureThreshold: 3
            httpGet:
              port: 8161
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 5
          startupProbe:
            failureThreshold: 600
            httpGet:
              port: 8161
            periodSeconds: 1
            successThreshold: 1
            timeoutSeconds: 1 

      Using tcpSocket instead for the livenessProbe works fine, only httpGet seems to be affected.

      Tested on OpenShift 4.12 and 4.13 with AMQ Broker Operator 7.11.4-opr-1.

            dbruscin Domenico Francesco Bruscino
            rhn-support-wlovaton William Lovaton
            Mikhail Krutov Mikhail Krutov
            Votes:
            2 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: