-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updates configuration page #1532
base: main
Are you sure you want to change the base?
Changes from 7 commits
e9c281a
ecb37ef
ab2c3c6
858b3cc
1316379
8bba5e7
9945d62
61c45f1
3ba9a2a
fc8136a
ff27ba5
b9790e1
35ccd63
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
--- | ||
title: Configuration | ||
description: This page discusses configuration settings for Pomerium Core. | ||
keywords: [core configuration] | ||
sidebar_label: Configuration | ||
--- | ||
|
||
# Configuration | ||
|
||
You can configure Pomerium using either a configuration file or [environmental variables](https://en.wikipedia.org/wiki/Environment_variable). If using a configuration file, the following languages are supported: | ||
ZPain8464 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
- [YAML](https://yaml.org/) | ||
- [JSON](https://www.json.org/json-en.html) | ||
- [TOML](https://toml.io/en/) | ||
ZPain8464 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Using both environmental variables and configuration file keys is allowed and encouraged (for example, secret keys are probably best set as environmental variables). However, if duplicate configuration keys are found, environment variables take precedence. | ||
ZPain8464 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
:::tip | ||
|
||
Pomerium can hot-reload route configuration details, authorization policy, certificates, and other proxy settings. | ||
|
||
::: | ||
|
||
### Configuration syntax | ||
|
||
Both configuration file keys and environment variables are case sensitive. | ||
|
||
Configuration file keys are always lowercase and use dashes (`-`). Environmental variables are identical to configuration file keys, except they are always uppercase and use underscores (`_`). | ||
ZPain8464 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
See the [Reference](/docs/reference) page for a comprehensive list of Pomerium's configuration settings. | ||
|
||
## All In One and Split Service modes | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we hyphenate "all-in-one" most other places in the docs. Should we stick with that here too? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So this is a style question, and a product one. We're very inconsistent in our docs with either of these modes. It's frequently used as a compound adjective, in which case "all-in-one mode" or "split-service mode" makes sense. Take this page for example:
This is fine in this context. When we refer to these modes as a deployment type, it's actually a noun, if not a proper noun. For example, this page shows the inconsistency and how it's used as both a compound adjective and a noun: We have the liberty to decide how it should be used in our docs. In my opinion, these modes should be referred to as proper nouns, so "All In One mode" or "Split Service mode". I don't mind changing it to "All-in-One" mode and "Split-Service" mode, or "All in One" mode (we don't have to capitalize "in" either) and "Split Service" mode, but we should define it and stick to it. I can be lazy about it as well. This is where a style guide would help enforce the decision. Thoughts? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually, should we have a separate page to talk about all-in-one and split service mode? This almost feels like a different topic to me. @desimone would love to hear your thoughts on this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, if we moved this topic to a separate page, we could offload some of the content in High Availability as well. It begs the question of where we'd put a All In One vs Split Services mode page, though. Capabilities doesn't seem like the best place. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Yes, I think that makes a lot of sense. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've created a separate issue for work on a new All in One vs Split Services Mode page: There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll move the Settings Modes section in a separate PR addressing the aforementioned ticket. |
||
|
||
You can configure Pomerium using either All In One mode or Split Service mode. | ||
|
||
### All In One mode | ||
|
||
All In One mode means all of Pomerium's configuration settings are set in a single configuration file. You can use All In One mode when running Pomerium: | ||
|
||
- As a single system service or container, or | ||
- In a distributed environment where there are multiple processes that each handle separate [Pomerium services](/docs/internals/architecture#component-level). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't understand what this is saying. In all-in-one mode the services are combined, not separate. |
||
|
||
All In One mode is the default configuration mode, and the easiest way to configure Pomerium. | ||
|
||
### Split Service mode | ||
|
||
Alternately, you can create individual configuration files (or sets of environment variables) for each Pomerium service. In Split Service mode, each configuration file (or set of environment variables) defines which service a process will run by using the [service mode](/docs/reference/service-mode) key. | ||
|
||
:::tip Our recommendation | ||
|
||
We recommend All In One mode to configure Pomerium for the following reasons: | ||
|
||
- **Reduce complexity**: All In One mode reduces the complexity of managing configuration. A single configuration file means there is one source of truth. | ||
- **Secure communication**: Pomerium services communicate internally. Splitting up services requires securing these endpoints and configuring DNS records for each service. | ||
- **Scaling**: All In One deployments scale for better performance. All URLs point at the same Pomerium service instance. | ||
|
||
::: |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this link target exist? Should it be
#all-in-one-and-split-service-modes
instead?(ditto throughout this PR)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated.