Skip to content

Commit

Permalink
Merge pull request #1601 from zimnx/mz/lb-examples-docs
Browse files Browse the repository at this point in the history
Add examples for popular platforms regarding LoadBalancer service exposing
  • Loading branch information
scylla-operator-bot[bot] authored Nov 29, 2023
2 parents 03554fd + c2ff479 commit b6561d6
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 2 deletions.
25 changes: 24 additions & 1 deletion docs/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ sphinx-markdown-tables = "~0.0.17"
redirects_cli ="~0.1.3"
myst-parser = "^2.0.0"
recommonmark = "^0.7.1"
sphinx-design = "^0.5.0"

[build-system]
requires = ["poetry>=0.12"]
Expand Down
3 changes: 2 additions & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
'sphinx_scylladb_theme',
'sphinx_multiversion',
"sphinx_sitemap",
"scylladb_markdown"
"scylladb_markdown",
"sphinx_design"
]

# The suffix(es) of source filenames.
Expand Down
34 changes: 34 additions & 0 deletions docs/source/exposing.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,40 @@ For the `LoadBalancer` type, Scylla Operator generates a LoadBalancer Service th
On platforms with support for external load balancers, this Service provisions one.
The accessibility of this load balancer's address depends on the platform and any customizations made; in some cases it may be reachable from the internal network or public Internet.

Customizations are usually managed via Service annotations, key-value pairs provided in `annotations` field are merged into each Service object.
LoadBalancer Services should be configured to pass through entire traffic.
For example, to expose LoadBalancer only to internal network use the following annotations:

::::{tab-set}
:::{tab-item} EKS
```yaml
apiVersion: scylla.scylladb.com/v1
kind: ScyllaCluster
spec:
exposeOptions:
nodeService:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-scheme: internal
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
```
:::
:::{tab-item} GKE
```yaml
apiVersion: scylla.scylladb.com/v1
kind: ScyllaCluster
spec:
exposeOptions:
nodeService:
type: LoadBalancer
annotations:
networking.gke.io/load-balancer-type: Internal
```
:::
::::

Check platform-specific documentation regarding LoadBalancer configuration to learn more about available options.

LoadBalancer Service is a superset of ClusterIP Service, implying that each LoadBalancer Service also contains an allocated ClusterIP.
They can be configured using the following fields, which propagate to every node Service:
* externalTrafficPolicy
Expand Down

0 comments on commit b6561d6

Please sign in to comment.