Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.14.0 backports 1 #28909

Merged
merged 36 commits into from
Oct 31, 2022
Merged

2.14.0 backports 1 #28909

merged 36 commits into from
Oct 31, 2022

Conversation

gsmet
Copy link
Member

@gsmet gsmet commented Oct 28, 2022

Please don't merge, I will merge it myself.

geoand and others added 20 commits October 28, 2022 19:13
These changes also ensures that not duplicated ingress rules are generated.

#### Adding Ingress rules

To customize the default `host` and `path` properties of the generated Ingress resources, you need to apply the following configuration:

```
quarkus.kubernetes.ingress.expose=true
# To change the Ingress host. By default, it's empty.
quarkus.kubernetes.ingress.host=prod.svc.url
# To change the Ingress path of the generated Ingress rule. By default, it's "/".
quarkus.kubernetes.ports.http.path=/prod
```

This would generate the following Ingress resource:

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  labels:
    app.kubernetes.io/name: kubernetes-with-ingress
    app.kubernetes.io/version: 0.1-SNAPSHOT
  name: kubernetes-with-ingress
spec:
  rules:
    - host: prod.svc.url
      http:
        paths:
          - backend:
              service:
                name: kubernetes-with-ingress
                port:
                  name: http
            path: /prod
            pathType: Prefix
```

Additionally, you can also add new Ingress rules by adding the following configuration:

```
# Example to add a new rule
quarkus.kubernetes.ingress.rules.1.host=dev.svc.url
quarkus.kubernetes.ingress.rules.1.path=/dev
quarkus.kubernetes.ingress.rules.1.path-type=ImplementationSpecific
# by default, path type is Prefix

# Exmple to add a new rule that use another service binding
quarkus.kubernetes.ingress.rules.2.host=alt.svc.url
quarkus.kubernetes.ingress.rules.2.path=/ea
quarkus.kubernetes.ingress.rules.2.service-name=updated-service
quarkus.kubernetes.ingress.rules.2.service-port-name=tcpurl
```

This would generate the following Ingress resource:

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  labels:
    app.kubernetes.io/name: kubernetes-with-ingress
    app.kubernetes.io/version: 0.1-SNAPSHOT
  name: kubernetes-with-ingress
spec:
  rules:
    - host: prod.svc.url
      http:
        paths:
          - backend:
              service:
                name: kubernetes-with-ingress
                port:
                  name: http
            path: /prod
            pathType: Prefix
    - host: dev.svc.url
      http:
        paths:
          - backend:
              service:
                name: kubernetes-with-ingress
                port:
                  name: http
            path: /dev
            pathType: ImplementationSpecific
    - host: alt.svc.url
      http:
        paths:
          - backend:
              service:
                name: updated-service
                port:
                  name: tcpurl
            path: /ea
            pathType: Prefix
```

Fix quarkusio#28812
Fix quarkusio#26747

(cherry picked from commit 8cce3d5)
Users should always be encouraged to use the latest release of a feature
release, i.e., prefer 22.3.1 over 22.3.0.

Micro releases (called CPU releases in GraalVM) should not break
compatibility, instead they should only bring bug fixes. As a result
they should be considered safe to use.

This change also enables referecing the version specific graalvm docs as
discussed in
https://github.com/quarkusio/quarkus/pull/28628/files#r996786908

(cherry picked from commit 8353a19)
Java 8 in JVM mode is no longer supported and the default native builder
images are now Java 17 based.

Furthermore, the minimum supported GraalVM version is now 22.2 so any
reference to earlier versions is obsolete.

(cherry picked from commit 4f2c4f2)
* Use major.minor version of GraalVM to pin links to the corresponding
documentation
* Replace links to the github repository's master branch with links to
the published documentation for the corresponding GraalVM version

(cherry picked from commit 4f852f2)
… pom

The properties defining the GraalVM version are already located in
different files. Moving these properties to docs/pom.xml avoids running
all the CI jobs when altering them (which is the right thing to do as
they only affect the documentation).

(cherry picked from commit 080dc77)
We essentially make the first letter of every part
an uppercase letter for consistence

Part of quarkusio#13665

(cherry picked from commit 684f553)
- remove `@CheckedFragment`
- introduce `@CheckedTemplate#ignoreFragments()`
- change the syntax used to include a fragment; `{#include foo[bar] /}`
-> `{#include foo$bar /}`
- resolves quarkusio#28753

(cherry picked from commit 9668146)
The output format of a few commands has changed between Redis 5 and 6.
This PR allows us to verify the compatibility with Redis 5, 6, and 7.

Note that it's the best effort, and we do not intend full compatibility with Redis 5, only the main use cases. Typically, Redis Stack is only supported with Redis 7.

(cherry picked from commit 112a397)
…and @PreDestroy), and validate their signature.

In this case, a DefinitionException is thrown, indicating that the method signature is invalid.

Fix quarkusio#27591 according to the discussion.

(cherry picked from commit cb2c0d5)
* Relocate GC logging FAQ info to native memory management .

(cherry picked from commit 28da40c)
(cherry picked from commit 6b53eca)
@gsmet gsmet added the area/infra internal and infrastructure related issues label Oct 28, 2022
@gsmet gsmet self-assigned this Oct 28, 2022
@quarkus-bot quarkus-bot bot added area/arc Issue related to ARC (dependency injection) area/cache area/cli Related to quarkus cli (not maven/gradle/etc.) area/core area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/documentation area/flyway labels Oct 28, 2022
@quarkus-bot quarkus-bot bot added area/jakarta area/kubernetes area/maven area/platform Issues related to definition and interaction with Quarkus Platform area/qute The template engine area/redis area/rest area/testing labels Oct 28, 2022
@quarkus-bot

This comment has been minimized.

Sgitario and others added 16 commits October 31, 2022 10:31
… client

- Also use hyphenate on `@RestHeader` on client fields on bean params quarkusio#13665
- Added test for client bean param on fields, getters and regular
  parameters for good measure

Fixes quarkusio#28782

(cherry picked from commit 368b496)
…e code

This should have been done as part of ac1a11e

(cherry picked from commit ca71dc9)
Bumps [smallrye-common-bom](https://github.com/smallrye/smallrye-common) from 1.13.1 to 1.13.2.
- [Release notes](https://github.com/smallrye/smallrye-common/releases)
- [Commits](smallrye/smallrye-common@1.13.1...1.13.2)

---
updated-dependencies:
- dependency-name: io.smallrye.common:smallrye-common-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
(cherry picked from commit 81fc1db)
…t failed to provide a resource

(cherry picked from commit c6d299a)
With these changes, users can also manually append the parts of the form using the class `MultipartFormDataOutput` as:

```java
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.jboss.resteasy.reactive.server.core.multipart.MultipartFormDataOutput;

@path("multipart")
public class Endpoint {

    @get
    @produces(MediaType.MULTIPART_FORM_DATA)
    @path("file")
    public MultipartFormDataOutput getFile() {
        MultipartFormDataOutput form = new MultipartFormDataOutput();
        form.addFormData("person", new Person("John"), MediaType.APPLICATION_JSON_TYPE);
        form.addFormData("status", "a status", MediaType.TEXT_PLAIN_TYPE)
                .getHeaders().putSingle("extra-header", "extra-value");
        return form;
    }
}
```

Fix quarkusio#28631

This last approach allows you adding extra headers to the output part.

(cherry picked from commit 6967fbc)
Before, we were using a ByteArrayOutputStream because some message writers are closing the original output stream when writing the entity (like JSON).
The problem is that this approach needs the double of space (keeping the data in the bytearray output stream and then copy the data to the original output stream).
With these changes, we are proxying the original output stream and preventing the message writers to not close the output stream (this was already being used in the JsonbMessageBodyWriter).
Fix quarkusio#28920

(cherry picked from commit 25722b7)
I didn't add any test to cover this change because it's easier to fix than to replicate the conditions to reproduce it in either the extension or an integration test than expected taking into account we have a reproducer.
Still let me know if you want it to cover it and maybe I can add wiremock in the integration-tests/rest-client-reactive.
Fix quarkusio#28922

(cherry picked from commit 1d074d6)
@gsmet gsmet force-pushed the 2.14.0-backports-1 branch from f51c5ba to b78106d Compare October 31, 2022 11:48
@gsmet gsmet merged commit 49bb66c into quarkusio:2.14 Oct 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/arc Issue related to ARC (dependency injection) area/cache area/cli Related to quarkus cli (not maven/gradle/etc.) area/core area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/documentation area/flyway area/infra internal and infrastructure related issues area/jakarta area/kubernetes area/maven area/panache area/platform Issues related to definition and interaction with Quarkus Platform area/qute The template engine area/redis area/rest area/testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.