Skip to content

k8s nginx ingress 2.4.0 2.4.1 422 Errors #1344

Open
@LargoUsagi

Description

@LargoUsagi

When deploying a restlet application inside of a docker container to a k8s cluster behind the nginx l7 ingress controller HTTP POST actions return a 422 error.

If you expose a port on the host in the cluster and connect without using the nginx ingress controller POST actions work.

This issue is not present in 2.3.12 and rolling back is how I am mitigating the issue.

Here are the restlet dependencies used in my pom

        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet</artifactId>
            <version>${restlet-version}</version>
        </dependency>
        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet.ext.jackson</artifactId>
            <version>${restlet-version}</version>
        </dependency>
        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet.ext.jetty</artifactId>
            <version>${restlet-version}</version>
        </dependency>
        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet.ext.slf4j</artifactId>
            <version>${restlet-version}</version>
        </dependency>

Here is an example of a failing resource.

ApiResource is a public abstract class ApiResource extends ServerResource class that has protected helper functions.

public class RegisterResource extends ApiResource {


    private final ApplicationUserRegistrationService userRegistrationService;

    @Inject
    public RegisterResource(ApplicationUserRegistrationService userRegistrationService) {
        this.userRegistrationService = userRegistrationService;
    }

    @Post("json")
    public boolean register(RegistrationCredentialsDto creds) {
        var user = userRegistrationService.attemptRegisterNewUser(creds);
        if(user != null) {
            this.setStatus(Status.SUCCESS_CREATED);
            return true;
        }
        this.setStatus(Status.CLIENT_ERROR_CONFLICT);
        return false;
    }

}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions