Landscape Server charm integration compatibility

The Landscape Server charm requires integration with the following charms, depending on the version:

All versions:

  • postgresql

  • rabbitmq-server

Landscape 26.04 LTS beta+:

  • haproxy (at 2.8/edge, via haproxy-route interface)

  • A TLS certificates provider integrated with HAProxy (e.g., self-signed-certificates, lego)

Before Landscape 26.04:

  • haproxy (via reverseproxy interface)

For a recommended charm bundle configuration and more information about deploying Landscape Server with Juju, see How to install Landscape Server with Juju and How to install and configure Landscape for high-availability deployments.

Compatibility with a Landscape Server charm revision is limited to specific revisions and channels of the required charms. Incompatibility can occur if the charm’s base (e.g., ubuntu@24.04), architecture (e.g., amd64), or interfaces change.

Tip

Learn more about Juju integrations.

Deployment architectures

The Landscape Server charm supports two deployment architectures:

Landscape 26.04 LTS beta+ (recommended):

  • External HAProxy charm (2.8/edge) for load balancing, using the haproxy-route interface

  • PostgreSQL 14+ with modern database interface

  • TLS certificates via a tls-certificates interface provider integrated with HAProxy

        flowchart TD
    Client([Client])
    TLS[TLS Provider]
    subgraph model[Juju model]
        HAProxy["HAProxy<br/>2.8/edge"]
        LS0[landscape-server/0]
        LS1[landscape-server/1]
        LS2[landscape-server/2]
        PG[(PostgreSQL)]
        RMQ[RabbitMQ Server]
    end
    TLS -- certificates --> HAProxy
    Client -- HTTPS --> HAProxy
    HAProxy -- haproxy-route --> LS0
    HAProxy -- haproxy-route --> LS1
    HAProxy -- haproxy-route --> LS2
    LS0 & LS1 & LS2 --- PG
    LS0 & LS1 & LS2 --- RMQ
    

Before 26.04:

  • External HAProxy charm for load balancing, using the reverseproxy interface

  • PostgreSQL ≥ 14 with legacy pgsql interface

        flowchart TD
    Client([Client])
    subgraph model[Juju model]
        HAProxy["HAProxy<br/>latest/stable"]
        LS0[landscape-server/0]
        LS1[landscape-server/1]
        LS2[landscape-server/2]
        PG[(PostgreSQL 14)]
        RMQ[RabbitMQ Server]
    end
    Client -- HTTPS --> HAProxy
    HAProxy -- reverseproxy --> LS0
    HAProxy -- reverseproxy --> LS1
    HAProxy -- reverseproxy --> LS2
    LS0 & LS1 & LS2 --- PG
    LS0 & LS1 & LS2 --- RMQ
    

For migration from older deployments to 26.04 beta+, see How to migrate to Landscape 26.04 LTS (charm).

Required integrations by version

Charm

Landscape 26.04 LTS beta+

Before 26.04

PostgreSQL

Required (PostgreSQL 14+, database interface)

Required (PostgreSQL 14, pgsql interface)

RabbitMQ Server

Required

Required

HAProxy

Required (2.8/x, haproxy-route interface)

Required (latest/x, reverseproxy interface)

TLS Certificates Provider

Required (integrated with HAProxy, e.g., self-signed-certificates)

Not used

TLS certificates charm interface

Starting with the 26.04 beta version, TLS is managed by the HAProxy charm. The HAProxy charm integrates with a provider of the tls-certificates charm interface to obtain certificates for HTTPS connections.

Available TLS certificate providers

For testing/development:

For production:

  • lego - Obtains certificates from Let’s Encrypt or other ACME providers

  • manual-tls-certificates - Use custom CA certificates

  • Any charm that provides the tls-certificates interface

Integrate TLS with HAProxy (not with landscape-server directly):

juju integrate haproxy:certificates <tls-provider>:certificates

For deployment examples and configuration, see How to install and configure Landscape for high-availability deployments and How to migrate to Landscape 26.04 LTS (charm).

K8s Operators

Landscape Server is currently only distributed as a machine (VM) charm and cannot be directly integrated with any version of K8s Charmed Operators, such as the HAProxy K8s operator or the Charmed PostgreSQL K8s operator.

HAProxy

The relationship between Landscape Server and HAProxy varies significantly between Landscape versions:

Landscape 26.04 LTS beta+:

  • Requires the HAProxy charm at 2.8/edge

  • Integrates via 8 haproxy-route relation endpoints directly from landscape-server to haproxy

  • HAProxy handles TLS termination and load balancing

  • Cannot be integrated with the latest/x channels of the HAProxy charm (different interface)

Before 26.04:

  • Requires the external HAProxy charm at latest/x

  • Integrates via the reverseproxy interface: landscape-server:websitehaproxy:reverseproxy

  • Cannot be integrated with the 2.8/x channels of the HAProxy charm

LBaaS (Load Balancer as a Service) - cross-model HAProxy:

For migrating from older deployments to the new HAProxy architecture, see How to migrate to Landscape 26.04 LTS (charm).

Charmed PostgreSQL

PostgreSQL charm compatibility varies by Landscape Server version:

Landscape 26.04 LTS beta+:

  • Compatible with PostgreSQL 14+ using the modern database interface

  • Landscape Server integrates using the database relation endpoint: landscape-server:databasepostgresql:database

  • It is recommended to use PostgreSQL 16 for new deployments

  • Supports PgBouncer as a connection pooler via the database relation endpoint; see PgBouncer integration with Landscape Server

Before 26.04:

  • Compatible with PostgreSQL 14 using the legacy pgsql interface

  • Landscape Server integrates using the db relation endpoint: landscape-server:dbpostgresql:db-admin

  • Cannot use PostgreSQL 16 due to interface incompatibility

  • Charmed PostgreSQL VM on Charmhub

RabbitMQ Server

RabbitMQ Server integration varies by Landscape Server version:

Landscape 25.10+:

  • Uses separate inbound and outbound AMQP relation endpoints

  • Relations:

    • landscape-server:inbound-amqprabbitmq-server

    • landscape-server:outbound-amqprabbitmq-server

Before 25.10: