FAQs

This page answers some of the most frequently asked questions (FAQs) about Magnolia PaaS.

What is the minimum Java version needed for PaaS?

Expand for answer

Currently, the minimum supported Java version for Magnolia PaaS is Java 11 (LTS).

For more details, see Set up Magnolia PaaS.

What is the base image used for Magnolia as part of PaaS?

Expand for answer

The recommended base image is:

Key Type Default Description

image.tomcat.tag

string

"9.0-jre11-temurin"

Tomcat repo tag.

This is defined in the image.tomcat.tag helm value. For more, see Helm Values reference.

How do I handle redirects?

Expand for answer

Typically, you’ll want to use the redirects server to handle redirects. However, if you have fewer than 20 redirects, you can create a redirect ingress to handle them.

redirect flow choices

For more details, see Redirects.

What is the latest Maven archetype version?

Expand for answer

The latest maven archetype version for the cloud bundle is 1.5.

How do I find the latest Helm chart version?

Expand for answer

The latest helm chart version is 1.6.2.

Check out the Magnolia helm repo for more details.

I’m upgrading my helm chart, what do I do now?

Expand for answer

When you upgrade your Helm chart because of a major release, like moving from 1.4.x to 1.5.x, you need to delete the workloads before your next deployment. You also need to recreate the indexes folder from your Author environment.

Can I deploy a frontend with Magnolia PaaS?

Expand for answer

Yes, you can. You can deploy as many frontend applications as you need. In fact, we have a few frontend templates to get you started.

Check them out here.

How do you prevent DDoS attacks?

Expand for answer

To prevent and mitigate DDoS attacks, Magnolia PaaS grants all customers (using Fastly as their CDN):

  • Access to origin shielding

  • Automatic resistance to availability attacks

  • Access to Fastly cache IP space

  • Custom DDoS filter creation abilities

What if I’m not using Fastly?

  1. Go to https://ipinfo.io/www.xxx.yyy.zzz (where www.xxx.yyy.zzz is the suspicious IP).

    ipinfo report abuse

  2. Update your values.yml file with the following snippet:

    kind: Ingress (1)
    metadata:
      annotations:
        nginx.ingress.kubernetes.io/server-snippet: deny www.xxx.yyy.zzz; (2)
    1 Specifies the kind Ingress.
    2 Denies the specific IP address.
    For more information on server-snippet, see NGINX Ingress Controller reference.
For more details, see Preventing DDoS attacks.

What is a sticky session?

Expand for answer

Sticky sessions, or session persistence, is when you instruct the load balancer to remain linked to a specific node (server) to avoid losing the session data if the request goes to the other server. Essentially, you send the request from a given IP to the delivery server, but continue to send follow-up requests to the same server until the session expires. Session persistence is needed when the project has transactions or required data in the session.

Sticky sessions are typically used in situations where you have some data in the session and the sessions are not replicated between servers, but you also need to ensure that the data doesn’t get lost.

sticky sessions majorTom

How do I configure sticky sessions?

Expand for answer

To enable sticky sessions:

  1. Go to your values.yml file in your Magnolia PaaS project.

  2. Set the following ingress annotations:

    ingress:
      enabled: true
      annotations:
        kubernetes.io/ingress.class: "nginx"
        nginx.ingress.kubernetes.io/proxy-body-size: 512m
        cert-manager.io/cluster-issuer: "letsencrypt-prod"
        nginx.ingress.kubernetes.io/affinity: "cookie" (1)
        nginx.ingress.kubernetes.io/affinity-mode: "persistent" (2)
        nginx.ingress.kubernetes.io/session-cookie-name: "COOKIE_NAME" (3)
        nginx.ingress.kubernetes.io/session-cookie-max-age: 10 (4)
        nginx.ingress.kubernetes.io/configuration-snippet: |
          more_set_headers "X-Robots-Tag: noindex, nofollow";
        nginx.ingress.kubernetes.io/default-backend: {{ .Env.DEPLOYMENT }}-magnolia-error-page-svc
        nginx.ingress.kubernetes.io/custom-http-errors: "503"
      hosts:
        - host: {{ .Env.DEPLOYMENT }}.eu-playground.magnolia-platform.com
          paths:
              - path: /
                instance: public
              - path: /author
                instance: author
    .....
    1 Set nginx.ingress.kubernetes.io/affinity to cookie.
    2 Set nginx.ingress.kubernetes.io/affinity-mode to persistent.
    3 Put the COOKIE_NAME at nginx.ingress.kubernetes.io/session-cookie-name.
    4 Set nginx.ingress.kubernetes.io/session-cookie-max-age to the time (in seconds) you want the cookie to persist. After this configured time, the cookie is deleted.
Find out more here.

How do I define custom environment variables?

Expand for answer

You can define custom environment variables in the Helm Values file in your project.

To define a varible for the OS

Define the name and value of the variable like so:

...
magnoliaAuthor:
    - name: VARIABLE
      value: "VALUE"
...
To define a varible for the Java Virtual Machine (JVM)

Set the value for the specified object like so:

...
magnoliaAuthor:
  catalinaExtraEnv:
    variable: "VALUE"
...

Can I delete environment indexes?

Expand for answer

Yes you can.

  • Cockpit

  • k8s

To delete the index folders:

  1. Go to Environments.

  2. Click the Manage tab.

  3. Click Delete indexes for the desired environment.

    delete index

To delete the index folders:

  1. In Rancher, click on the Execute shell navigation item on the desired Author environment.

    rancher execute shell screenshot

  2. Run the following commands:

    cd /mgnl-home/repositories/magnolia/workspaces/ (1)
    find . -name index -exec rm -rf {} \; (2)
    1 Changes to your workspaces directory.
    2 Finds and removes the index folders.
Feedback