Landscape Server charm integration compatibility¶
The Landscape Server charm requires integration with the following charms, depending on the version:
All versions:
postgresqlrabbitmq-server
Landscape 26.04 LTS beta+:
haproxy(at2.8/edge, viahaproxy-routeinterface)A TLS certificates provider integrated with HAProxy (e.g.,
self-signed-certificates,lego)
Before Landscape 26.04:
haproxy(viareverseproxyinterface)
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 thehaproxy-routeinterfacePostgreSQL 14+ with modern
databaseinterfaceTLS certificates via a
tls-certificatesinterface 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
reverseproxyinterfacePostgreSQL ≥ 14 with legacy
pgsqlinterface
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+, |
Required (PostgreSQL 14, |
RabbitMQ Server |
Required |
Required |
HAProxy |
Required ( |
Required ( |
TLS Certificates Provider |
Required (integrated with HAProxy, e.g., |
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:
self-signed-certificates- Generates self-signed certificates (not trusted by browsers/clients)
For production:
lego- Obtains certificates from Let’s Encrypt or other ACME providersmanual-tls-certificates- Use custom CA certificatesAny charm that provides the
tls-certificatesinterface
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/edgeIntegrates via 8
haproxy-routerelation endpoints directly from landscape-server to haproxyHAProxy handles TLS termination and load balancing
Cannot be integrated with the
latest/xchannels of the HAProxy charm (different interface)
Before 26.04:
Requires the external HAProxy charm at
latest/xIntegrates via the
reverseproxyinterface:landscape-server:website→haproxy:reverseproxyCannot be integrated with the
2.8/xchannels of the HAProxy charm
LBaaS (Load Balancer as a Service) - cross-model HAProxy:
Deploy HAProxy in a separate Juju model and use cross-model relations
Landscape Server integrates directly with the cross-model HAProxy via
haproxy-routeendpointsSee Optional: External Load Balancer with Cross-Model Integration (LBaaS) for complete setup
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
databaseinterfaceLandscape Server integrates using the
databaserelation endpoint:landscape-server:database→postgresql:databaseIt is recommended to use PostgreSQL 16 for new deployments
Supports PgBouncer as a connection pooler via the
databaserelation endpoint; see PgBouncer integration with Landscape Server
Before 26.04:
Compatible with PostgreSQL 14 using the legacy
pgsqlinterfaceLandscape Server integrates using the
dbrelation endpoint:landscape-server:db→postgresql:db-adminCannot use PostgreSQL 16 due to interface incompatibility
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-amqp↔rabbitmq-serverlandscape-server:outbound-amqp↔rabbitmq-server
Before 25.10:
Uses a single
amqprelation endpointRelation:
landscape-server:amqp↔rabbitmq-server:amqp