Skip to content

docs: add explanation page for modes of operation#155

Draft
Thanhphan1147 wants to merge 2 commits into
mainfrom
docs/explanation-modes
Draft

docs: add explanation page for modes of operation#155
Thanhphan1147 wants to merge 2 commits into
mainfrom
docs/explanation-modes

Conversation

@Thanhphan1147

Copy link
Copy Markdown
Collaborator

Applicable spec:

Overview

Rationale

Juju Events Changes

Module Changes

Library Changes

Checklist

@Thanhphan1147 Thanhphan1147 requested a review from erinecon June 22, 2026 17:32
@Thanhphan1147 Thanhphan1147 added documentation Improvements or additions to documentation no-release-note This PR does not require a change artifact labels Jun 22, 2026

@erinecon erinecon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much for adding this explanation document about the different modes of operation! I think this page will provide a lot of clarity for our users :D

whether it propagates a proxied endpoint back to the backend — depends on the
**mode of operation**.

There are three modes, organised by the underlying route-provider interface and

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
There are three modes, organised by the underlying route-provider interface and
There are three modes, organized by the underlying route-provider interface and

nit, US English

Comment on lines +33 to +36
```
haproxy <-- haproxy-route -- ingress-configurator
(config: backend-addresses, backend-ports)
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering whether this should be a Mermaid diagram -- I think the connections might be clearer (for example, it's not immediately obvious to me what is the difference between <-- and --).

Did you have any motivating factors for not using a Mermaid diagram here?

Comment on lines +54 to +56
```
haproxy <-- haproxy-route -- ingress-configurator <-- ingress -- backend-app
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question about whether a Mermaid diagram should be used here

Comment on lines +75 to +77
```
gateway-api-integrator <-- gateway-route -- ingress-configurator <-- ingress -- backend-app
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question about whether a Mermaid diagram should be used here


In integrator mode, `ingress-configurator` is deployed without a direct
relation to the backend application. Instead, the operator provides the backend
address and port through charm configuration:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
address and port through charm configuration:
address and port through charm configurations:

Unless a single configuration sets the backend address and port, I think this should be plural


This mode is suited to backends that are not managed by a Juju charm, or to
cases where the backend charm does not implement the `ingress` interface.
See {ref}`how_to_haproxy_integrate_non_charm_workload` for a worked example.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I think it might be a little misleading to say that the how-to guide shows a worked example since the guide has placeholders for e.g. the backend IP.

So I think we should rephrase this sentence, maybe something like:

Suggested change
See {ref}`how_to_haproxy_integrate_non_charm_workload` for a worked example.
See {ref}`how_to_haproxy_integrate_non_charm_workload` for instructions on
using `ingress-configurator` in HAProxy integrator mode.

I appreciate any other suggestions or thoughts here!

Comment on lines +65 to +66
`ingress` interface alone. See {ref}`how_to_add_haproxy_features_to_ingress_requirer`
for a worked example.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same nit about being a bit misleading with "worked example". Maybe we can update to:

Suggested change
`ingress` interface alone. See {ref}`how_to_add_haproxy_features_to_ingress_requirer`
for a worked example.
`ingress` interface alone. See {ref}`how_to_add_haproxy_features_to_ingress_requirer`
for instructions on using `ingress-configurator` in HAProxy adapter mode.


See {ref}`how_to_gateway_api_integrate_non_charm_workload` for a worked example
using a non-charmed backend, and
{ref}`how_to_gateway_api_add_features_to_ingress_requirer` for a charmed backend.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{ref}`how_to_gateway_api_add_features_to_ingress_requirer` for a charmed backend.
{ref}`how_to_add_gateway_api_features_to_ingress_requirer` for a charmed backend.

Okay this is the issue with the RTD build (not the other label, that one is fine)

match the backend's pods.
```

See {ref}`how_to_gateway_api_integrate_non_charm_workload` for a worked example

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
See {ref}`how_to_gateway_api_integrate_non_charm_workload` for a worked example
See {ref}`how_to_gateway_api_integrate_non_charm_workload` for instructions

Nit, to remove "worked example" which I feel is a bit misleading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation Libraries: OK no-release-note This PR does not require a change artifact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants