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:
haproxy(at2.8/stable, viahaproxy-routeinterface)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(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 (recommended):
External HAProxy charm (
2.8/stable) for load balancing, using thehaproxy-routeinterfacePostgreSQL 14+ with modern
postgresql_clientinterfaceTLS certificates via a
tls-certificatesinterface provider integrated with HAProxylandscape-debarchivecharm for Debarchive repository managementlandscape-task-handlercharm 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
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, 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+, |
Required (PostgreSQL 14, |
RabbitMQ Server |
Required |
Required |
HAProxy |
Required ( |
Required ( |
TLS Certificates Provider |
Required (integrated with HAProxy, e.g., |
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:
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.
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/stablefor new deploymentsIntegrates via 8
haproxy-routerelation endpoints directly from landscape-server to haproxyHAProxy handles TLS termination and load balancing
Can still integrate with the
latest/xHAProxy charm via the deprecatedwebsite/reverseproxyrelation for backwards compatibility (see note below)
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
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:
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:
Compatible with PostgreSQL 14+ using the modern
postgresql_clientinterfaceLandscape 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
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-amqp↔rabbitmq-serverlandscape-server:outbound-amqp↔rabbitmq-server
Before 25.10:
Uses a single
amqprelation endpointRelation:
landscape-server:amqp↔rabbitmq-server:amqp