build docs
Change-Id: Ida67463533ae9ddf5508c290e9fe898605bd4659
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -22,3 +22,6 @@ bin
|
|||||||
*.swp
|
*.swp
|
||||||
*.swo
|
*.swo
|
||||||
*~
|
*~
|
||||||
|
|
||||||
|
doc/build
|
||||||
|
.tox
|
||||||
|
@@ -49,6 +49,8 @@
|
|||||||
minikube_dns_resolvers: ['1.1.1.1', '8.8.8.8']
|
minikube_dns_resolvers: ['1.1.1.1', '8.8.8.8']
|
||||||
|
|
||||||
- project:
|
- project:
|
||||||
|
templates:
|
||||||
|
- publish-opendev-tox-docs
|
||||||
check:
|
check:
|
||||||
jobs:
|
jobs:
|
||||||
- golangci-lint
|
- golangci-lint
|
||||||
|
2
doc/requirements.txt
Normal file
2
doc/requirements.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
doc8
|
||||||
|
sphinx
|
3
doc/source/conf.py
Normal file
3
doc/source/conf.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
project = 'OpenStack Operator'
|
||||||
|
copyright = '2020, VEXXHOST, Inc.'
|
||||||
|
author = 'VEXXHOST, Inc.'
|
8
doc/source/custom-resources.rst
Normal file
8
doc/source/custom-resources.rst
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Custom Resources
|
||||||
|
================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:glob:
|
||||||
|
|
||||||
|
custom-resources/*
|
23
doc/source/custom-resources/mcrouter.rst
Normal file
23
doc/source/custom-resources/mcrouter.rst
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
.. _mcrouter:
|
||||||
|
|
||||||
|
Mcrouter
|
||||||
|
########
|
||||||
|
|
||||||
|
Mcrouter is a memcached protocol router for scaling Memcached deployments. It
|
||||||
|
is a core component of cache infrastructure at Facebook and Instagram where
|
||||||
|
Mcrouter handles almost 5 billion requests per second at peak.
|
||||||
|
|
||||||
|
Architecture
|
||||||
|
************
|
||||||
|
|
||||||
|
This resource creates a ``Deployment`` with a hard coded replica count of two
|
||||||
|
which hosts two identical instances of ``mcrouter`` for redundancy purposes.
|
||||||
|
|
||||||
|
It also exposes a ``Service`` resource which points at the two ``mcrouter``
|
||||||
|
instances running.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
*****
|
||||||
|
|
||||||
|
.. literalinclude :: ../../../config/samples/infrastructure_v1alpha1_mcrouter.yaml
|
||||||
|
:language: yaml
|
25
doc/source/custom-resources/memcached.rst
Normal file
25
doc/source/custom-resources/memcached.rst
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
.. _memcached:
|
||||||
|
|
||||||
|
Memcached
|
||||||
|
#########
|
||||||
|
|
||||||
|
Memcached is an in-memory key-value store for small chunks of arbitrary
|
||||||
|
data (strings, objects) from results of database calls, API calls, or page
|
||||||
|
rendering.
|
||||||
|
|
||||||
|
Architecture
|
||||||
|
************
|
||||||
|
|
||||||
|
This resource creates a ``Deployment`` with a hard coded replica count of two,
|
||||||
|
the size of every replica corresponds to half the size provided inside the
|
||||||
|
custom resource.
|
||||||
|
|
||||||
|
This resource does not expose a headless service, instead, it creates a managed
|
||||||
|
resource of :ref:`Mcrouter` which is automatically updated with the IPs of the
|
||||||
|
pods that are running ``memcached``.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
*****
|
||||||
|
|
||||||
|
.. literalinclude :: ../../../config/samples/infrastructure_v1alpha1_memcached.yaml
|
||||||
|
:language: yaml
|
7
doc/source/index.rst
Normal file
7
doc/source/index.rst
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
OpenStack Operator
|
||||||
|
==================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
custom-resources
|
@@ -1,35 +0,0 @@
|
|||||||
# Mcrouter
|
|
||||||
|
|
||||||
Mcrouter is a memcached protocol router for scaling Memcached deployments. It
|
|
||||||
is a core component of cache infrastructure at Facebook and Instagram where
|
|
||||||
Mcrouter handles almost 5 billion requests per second at peak.
|
|
||||||
|
|
||||||
OpenStack usually comes down to a halt if one of the Memcached instances don't
|
|
||||||
respond anymore. Mcrouter is used to enable high availability and redundancy
|
|
||||||
so that any Memcached outages will not affect the OpenStack services.
|
|
||||||
|
|
||||||
The only two possible reasons that we can have a full system slowdown at the
|
|
||||||
moment remains:
|
|
||||||
|
|
||||||
- All backends (Memcached instances) are all down
|
|
||||||
- All Mcrouter replicas are down
|
|
||||||
|
|
||||||
The first probably means there's a bigger issue in play, the latter will
|
|
||||||
likely automatically recover by Kubernetes ensuring that replicas come back
|
|
||||||
up. Also, due to the fact that the service is exposed as a ClusterIP, it only
|
|
||||||
takes a single replica to be up for everything to come back to start working
|
|
||||||
again.
|
|
||||||
|
|
||||||
## Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
apiVersion: infrastructure.vexxhost.cloud/v1alpha1
|
|
||||||
kind: Mcrouter
|
|
||||||
metadata:
|
|
||||||
name: sample
|
|
||||||
spec:
|
|
||||||
route: PoolRoute|default
|
|
||||||
pools:
|
|
||||||
default:
|
|
||||||
servers: ['10.0.0.1:11211', '10.0.0.2:11211']
|
|
||||||
```
|
|
@@ -1,26 +0,0 @@
|
|||||||
# Memcached
|
|
||||||
|
|
||||||
Memcached is an in-memory key-value store for small chunks of arbitrary
|
|
||||||
data (strings, objects) from results of database calls, API calls, or page
|
|
||||||
rendering.
|
|
||||||
|
|
||||||
It's used in OpenStack for a lot of token caching and in other services such
|
|
||||||
as Nova to minimize load against the database cluster. This operator allows
|
|
||||||
you to deploy it and it automatically exposes a single IP address which will
|
|
||||||
point towards any of the two Mcrouter instances which are pushing data out to
|
|
||||||
the Memcached instances.
|
|
||||||
|
|
||||||
It will also automatically take the total number of megabytes and split it
|
|
||||||
across two shards (so setting `megabytes` to `128`) will result in two instances
|
|
||||||
each with 64 megabytes which are load balanced via Mcrouter.
|
|
||||||
|
|
||||||
## Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
apiVersion: infrastructure.vexxhost.cloud/v1alpha1
|
|
||||||
kind: Memcached
|
|
||||||
metadata:
|
|
||||||
name: sample
|
|
||||||
spec:
|
|
||||||
megabytes: 128
|
|
||||||
```
|
|
Reference in New Issue
Block a user