Class HTTPRouteRetry

  • All Implemented Interfaces:
    io.fabric8.kubernetes.api.builder.Editable<HTTPRouteRetryBuilder>, io.fabric8.kubernetes.api.model.KubernetesResource, Serializable

    @Generated("io.fabric8.kubernetes.schema.generator.model.ModelGenerator")
    public class HTTPRouteRetry
    extends Object
    implements io.fabric8.kubernetes.api.builder.Editable<HTTPRouteRetryBuilder>, io.fabric8.kubernetes.api.model.KubernetesResource
    HTTPRouteRetry defines retry configuration for an HTTPRoute.


    Implementations SHOULD retry on connection errors (disconnect, reset, timeout, TCP failure) if a retry stanza is configured.

    See Also:
    Serialized Form
    • Constructor Detail

      • HTTPRouteRetry

        public HTTPRouteRetry()
        No args constructor for use in serialization
    • Method Detail

      • getAttempts

        public Integer getAttempts()
        Attempts specifies the maxmimum number of times an individual request from the gateway to a backend should be retried.


        If the maximum number of retries has been attempted without a successful response from the backend, the Gateway MUST return an error.


        When this field is unspecified, the number of times to attempt to retry a backend request is implementation-specific.


        Support: Extended

      • setAttempts

        public void setAttempts​(Integer attempts)
        Attempts specifies the maxmimum number of times an individual request from the gateway to a backend should be retried.


        If the maximum number of retries has been attempted without a successful response from the backend, the Gateway MUST return an error.


        When this field is unspecified, the number of times to attempt to retry a backend request is implementation-specific.


        Support: Extended

      • getBackoff

        public String getBackoff()
        Backoff specifies the minimum duration a Gateway should wait between retry attempts and is represented in Gateway API Duration formatting.


        For example, setting the `rules[].retry.backoff` field to the value `100ms` will cause a backend request to first be retried approximately 100 milliseconds after timing out or receiving a response code configured to be retryable.


        An implementation MAY use an exponential or alternative backoff strategy for subsequent retry attempts, MAY cap the maximum backoff duration to some amount greater than the specified minimum, and MAY add arbitrary jitter to stagger requests, as long as unsuccessful backend requests are not retried before the configured minimum duration.


        If a Request timeout (`rules[].timeouts.request`) is configured on the route, the entire duration of the initial request and any retry attempts MUST not exceed the Request timeout duration. If any retry attempts are still in progress when the Request timeout duration has been reached, these SHOULD be canceled if possible and the Gateway MUST immediately return a timeout error.


        If a BackendRequest timeout (`rules[].timeouts.backendRequest`) is configured on the route, any retry attempts which reach the configured BackendRequest timeout duration without a response SHOULD be canceled if possible and the Gateway should wait for at least the specified backoff duration before attempting to retry the backend request again.


        If a BackendRequest timeout is _not_ configured on the route, retry attempts MAY time out after an implementation default duration, or MAY remain pending until a configured Request timeout or implementation default duration for total request time is reached.


        When this field is unspecified, the time to wait between retry attempts is implementation-specific.


        Support: Extended

      • setBackoff

        public void setBackoff​(String backoff)
        Backoff specifies the minimum duration a Gateway should wait between retry attempts and is represented in Gateway API Duration formatting.


        For example, setting the `rules[].retry.backoff` field to the value `100ms` will cause a backend request to first be retried approximately 100 milliseconds after timing out or receiving a response code configured to be retryable.


        An implementation MAY use an exponential or alternative backoff strategy for subsequent retry attempts, MAY cap the maximum backoff duration to some amount greater than the specified minimum, and MAY add arbitrary jitter to stagger requests, as long as unsuccessful backend requests are not retried before the configured minimum duration.


        If a Request timeout (`rules[].timeouts.request`) is configured on the route, the entire duration of the initial request and any retry attempts MUST not exceed the Request timeout duration. If any retry attempts are still in progress when the Request timeout duration has been reached, these SHOULD be canceled if possible and the Gateway MUST immediately return a timeout error.


        If a BackendRequest timeout (`rules[].timeouts.backendRequest`) is configured on the route, any retry attempts which reach the configured BackendRequest timeout duration without a response SHOULD be canceled if possible and the Gateway should wait for at least the specified backoff duration before attempting to retry the backend request again.


        If a BackendRequest timeout is _not_ configured on the route, retry attempts MAY time out after an implementation default duration, or MAY remain pending until a configured Request timeout or implementation default duration for total request time is reached.


        When this field is unspecified, the time to wait between retry attempts is implementation-specific.


        Support: Extended

      • getCodes

        public List<Integer> getCodes()
        Codes defines the HTTP response status codes for which a backend request should be retried.


        Support: Extended

      • setCodes

        public void setCodes​(List<Integer> codes)
        Codes defines the HTTP response status codes for which a backend request should be retried.


        Support: Extended

      • getAdditionalProperties

        public Map<String,​Object> getAdditionalProperties()
      • setAdditionalProperty

        public void setAdditionalProperty​(String name,
                                          Object value)
      • setAdditionalProperties

        public void setAdditionalProperties​(Map<String,​Object> additionalProperties)