microsoft / azure-container-apps

Roadmap and issues for Azure Container Apps
MIT License
356 stars 27 forks source link

Why is the default value for failureThreshold 240 (startup probe) when the maximum allowed value is 30? #1100

Open christiannagel opened 4 months ago

christiannagel commented 4 months ago

When publishing a .NET Aspire Azure Container App with azd deploy, I get the error that the probe failure threshold is out of range:

ERROR: failed deploying service 'gameapis': failing invoking action 'deploy', updating container app service: applying manifest: PUT https://management.azure.com/subscriptions/...
--------------------------------------------------------------------------------
RESPONSE 400: 400 Bad Request
ERROR CODE: ContainerAppProbeFailureThresholdOutOfRange
--------------------------------------------------------------------------------
{
  "error": {
    "code": "ContainerAppProbeFailureThresholdOutOfRange",
    "message": "Container 'gameapis' 'Type' probe's FailureThreshold must be in the range of ['1', '30']."
  }
}

This is the part of the template file:

 template:
    containers:
    - image: {{ .Image }}
      name: gameapis
      probes:
        - type: liveness
          httpGet:
            path: /alive
            port: 8080
          initialDelaySeconds: 3
          periodSeconds: 3
        - type: readiness
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 3
          periodSeconds: 3
          successThreshold: 1
          failureThreshold: 48
        - type: startup
          tcpSocket:
            port: 8080
          initialDelaySeconds: 1
          periodSeconds: 1
          timeoutSeconds: 3
          successThreshold: 1
          failureThreshold: 240

The documentation https://learn.microsoft.com/en-us/azure/container-apps/health-probes?tabs=arm-template#default-configuration lists default values for startup 240, and for readiness 48. A sample on the same page just below uses the value 48 for readiness.

The error mentions a maximum value of 30. With the value 30, deployment succeeds.

I would expect setting a default value to succeed.

Is the documentation wrong, is the checking of the values wrong, are there some other issues?

The error happens with azd deploy using a customized containerApp.tmpl.yaml file generated with azd package.

The issue might be with azd, but I think this just uses the ACA validation?

Thanks!