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:

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

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

  • landscape-debarchive (for Debarchive repository management)

  • landscape-task-handler (for task processing)

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 (recommended):

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

  • PostgreSQL 14+ with modern postgresql_client interface

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

  • landscape-debarchive charm for Debarchive repository management

  • landscape-task-handler charm for task processing

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

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, see How to migrate to Landscape 26.04 LTS (charm).

Required integrations by version

Charm

Landscape 26.04 LTS

Before 26.04

PostgreSQL

Required (PostgreSQL 14+, postgresql_client interface)

Required (PostgreSQL 14, pgsql interface, deprecated)

RabbitMQ Server

Required

Required

HAProxy

Required (2.8/x, haproxy-route interface recommended; latest/x, reverseproxy interface (available for backwards compatibility but deprecated))

Required (latest/x, reverseproxy interface)

TLS Certificates Provider

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

Not used

landscape-debarchive

Required (Debarchive repository management)

Not available

landscape-task-handler

Required (task processing)

Not available

Note

The legacy pgsql PostgreSQL interface and the legacy reverseproxy HAProxy interface are both still available for backwards compatibility, but are deprecated. Support for both will be removed in Landscape 26.10. Migrate to the modern postgresql_client and haproxy-route interfaces; see How to migrate to Landscape 26.04 LTS (charm).

TLS certificates charm interface

Starting with the 26.04 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.

Note

Landscape Server can still consume a cross-model offer from a K8s charm since cross-model relations don’t require both applications to be in the same model.

HAProxy

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

Landscape 26.04 LTS:

  • Uses the HAProxy charm at 2.8/stable for new deployments

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

  • HAProxy handles TLS termination and load balancing

  • Can still integrate with the latest/x HAProxy charm via the deprecated website/reverseproxy relation for backwards compatibility (see note below)

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

Note

The legacy reverseproxy interface (website relation) is still available for backwards compatibility, but is deprecated. Support will be removed in Landscape 26.10. See How to migrate to Landscape 26.04 LTS (charm) to migrate to the haproxy-route interface.

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:

  • Compatible with PostgreSQL 14+ using the modern postgresql_client 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

Note

The legacy pgsql interface (db relation endpoint) is still available for backwards compatibility, but is deprecated. Support will be removed in Landscape 26.10. See How to migrate to Landscape 26.04 LTS (charm) to migrate to the postgresql_client interface.

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: