Skip to content
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

Clean up service-types documentation #3222

Merged
merged 1 commit into from
Jul 22, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
249 changes: 216 additions & 33 deletions docs/using-lagoon-advanced/service-types.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,219 @@
# Service Types

This table lists all service types that can be defined via `lagoon.type` within a [`docker-compose.yml` file](../using-lagoon-the-basics/docker-compose-yml.md).

💡 _Tip: Scroll right to see the whole table!_

| Type | Description | Healthcheck | Exposed Ports | Auto generated routes | Storage | Additional customization parameters |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| `cli` | Use for any kind of CLI container \(like PHP, Node.js, etc.\). Automatically gets the customer SSH private key that is mounted in `/var/run/secrets/lagoon/sshkey/ssh-privatekey`. | - | No | No | No | - |
| `cli-persistent` | Like `cli`, expects `lagoon.persistent.name` to be given the name of a service that has persistent storage, which will be mounted under defined `lagoon.persistent` label. Does NOT generate its own persistent storage, only used to mount another service's persistent storage. | - | No | No | Yes | `lagoon.persistent.name`, `lagoon.persistent` |
| `elasticsearch` | Elasticsearch container, will auto-generate persistent storage under `/usr/share/elasticsearch/data`. | HTTP on `localhost:9200/_cluster/health?local=true` | `9200` | No | Yes | `lagoon.persistent.size` |
| `kibana` | Kibana container. | TCP connection on `5601` | `5601` | Yes | No | - |
| `logstash` | Logstash container. | TCP connection on `9600` | `9600` | No | No | - |
| `mariadb` | A meta-service which will tell Lagoon to automatically decide between `mariadb-single` and `mariadb-dbaas`. | - | - | - | - | - |
| `mariadb-single` | MariaDB container. Creates cron job for backups running every 24h executing `/lagoon/mysql-backup.sh 127.0.0.1`. | TCP connection on `3306` | `3306` | No | Yes | `lagoon.persistent.size` |
| `mariadb-dbaas` | Uses a shared MariaDB server via the DBaaS Operator. | Not Needed | `3306` | No | - | - |
| `mongo` | A meta-service which will tell Lagoon to automatically decide between `mongo-single` and `mongo-dbaas`. | - | - | - | - | - |
| `mongo-single` | MongoDB container, will generate persistent storage of min 1GB mounted at `/data/db`. | TCP connection on `27017` | `27017` | No | Yes | `lagoon.persistent.size` |
| `mongo-dbaas` | Uses a shared MongoDB server via the DBaaS Operator. | Not Needed | `27017` | No | - | - |
| `nginx` | Nginx container. No persistent storage. | `localhost:50000/nginx_status` | `8080` | Yes | No | - |
| `nginx-php` | Like `nginx`, but additionally a `php` container. | Nginx: `localhost:50000/nginx_status`, PHP: `/usr/sbin/check_fcgi` | `8080` | Yes | No | - |
| `nginx-php-persistent` | Like `nginx-php.` Will generate persistent storage, defines mount location via `lagoon.persistent`. | Nginx: `localhost:50000/nginx_status`, PHP: `/usr/sbin/check_fcgi` | http on `8080` | Yes | Yes | `lagoon.persistent`, `lagoon.persistent.name`, `lagoon.persistent.size`, `lagoon.persistent.class` |
| `node` | Node.js container. No persistent storage. | TCP connection on `3000` | `3000` | Yes | No | - |
| `node-persistent` | Like `node`. Will generate persistent storage, defines mount location via `lagoon.persistent`. | TCP connection on `3000` | `3000` | Yes | Yes | `lagoon.persistent`, `lagoon.persistent.name`, `lagoon.persistent.size`, `lagoon.persistent.class` |
| `none` | Instructs Lagoon to completely ignore this service. | - | - | - | - | - |
| `postgres` | A meta-service which will tell Lagoon to automatically decide between `postgres-single` and `postgres-dbaas`. | - | - | - | - | - |
| `postgres-single` | Postgres container. Creates cron job for backups running every 24h executing `/lagoon/postgres-backup.sh localhost`. | TCP connection on `5432` | `5432` | No | Yes | `lagoon.persistent.size` |
| `postgres-dbaas` | Uses a shared PostgreSQL server via the DBaaS Operator. | Not Needed | `5432` | No | - | - |
| `python` | Python container. No persistent storage. | HTTP connection on `8800` | `8800` | Yes | No | - |
| `python-persistent` | Python container. With persistent storage. | HTTP connection on `8800` | `8800` | Yes | Yes | - |
| `redis` | Redis container. | TCP connection on `6379` | `6379` | No | No | - |
| `redis-persistent` | Redis container with auto-generated persistent storage mounted under `/data`. | TCP connection on `6379` | `6379` | No | Yes | `lagoon.persistent.size` |
| `solr` | Solr container with auto-generated persistent storage mounted under `/var/solr`. | TCP connection on `8983` | `8983` | No | Yes | `lagoon.persistent.size` |
| `varnish` | Varnish container. | HTTP request `localhost:8080/varnish_status` | `8080` | Yes | No | - |
| `varnish-persistent` | Varnish container with auto-generated persistent storage mounted under `/var/cache/varnish`. | HTTP request `localhost:8080/varnish_status` | `8080` | Yes | Yes | `lagoon.persistent.size` |
The below lists all service types that can be defined via `lagoon.type` within a [`docker-compose.yml` file](../using-lagoon-the-basics/docker-compose-yml.md).

## **`cli`**
Use for any kind of CLI container \(like PHP, Node.js, etc.\). Automatically gets the customer SSH private key that is mounted in `/var/run/secrets/lagoon/sshkey/ssh-privatekey`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| - | No | No | No | - |

## **`cli-persistent`**

Like `cli`, expects `lagoon.persistent.name` to be given the name of a service that has persistent storage, which will be mounted under defined `lagoon.persistent` label. Does NOT generate its own persistent storage, only used to mount another service's persistent storage.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| - | No | No | Yes | `lagoon.persistent.name`, `lagoon.persistent` |

## **`elasticsearch`**

Elasticsearch container, will auto-generate persistent storage under `/usr/share/elasticsearch/data`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| HTTP on `localhost:9200/_cluster/health?local=true` | 9200 | No | Yes | `lagoon.persistent.size` |

## **`kibana`**

Kibana container.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `5601` | `5601` | Yes | No | - |

## **`logstash`**

Logstash container.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `9600` | `9600` | No | No | - |

## **`mariadb`**

A meta-service which will tell Lagoon to automatically decide between `mariadb-single` and `mariadb-dbaas`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| - | - | - | - | - |

## **`mariadb-single`**

MariaDB container. Creates cron job for backups running every 24h executing `/lagoon/mysql-backup.sh 127.0.0.1`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `3306` | `3306` | No | Yes | `lagoon.persistent.size` |

## **`mariadb-dbaas`**

Uses a shared MariaDB server via the DBaaS Operator.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| Not Needed | `3306` | No | - | - |

## **`mongo`**

A meta-service which will tell Lagoon to automatically decide between `mongo-single` and `mongo-dbaas`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| - | - | - | - | - |

## **`mongo-single`**

MongoDB container, will generate persistent storage of min 1GB mounted at `/data/db`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `27017` | `27017` | No | Yes | `lagoon.persistent.size` |

## **`mongo-dbaas`**

Uses a shared MongoDB server via the DBaaS Operator.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| Not Needed | `27017` | No | - | - |


## **`nginx`**

Nginx container. No persistent storage.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| `localhost:50000/nginx_status` | `8080` | Yes | No | - |

## **`nginx-php`**

Like `nginx`, but additionally a `php` container.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| Nginx: `localhost:50000/nginx_status`, PHP: `/usr/sbin/check_fcgi` | `8080` | Yes | No | - |

## **`nginx-php-persistent`**

Like `nginx-php.` Will generate persistent storage, defines mount location via `lagoon.persistent`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| Nginx: `localhost:50000/nginx_status`, PHP: `/usr/sbin/check_fcgi` | http on `8080` | Yes | Yes | `lagoon.persistent`, `lagoon.persistent.name`, `lagoon.persistent.size`, `lagoon.persistent.class` |

## **`node`**

Node.js container. No persistent storage.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `3000` | `3000` | Yes | No | - |

## **`node-persistent`**

Like `node`. Will generate persistent storage, defines mount location via `lagoon.persistent`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `3000` | `3000` | Yes | Yes | `lagoon.persistent`, `lagoon.persistent.name`, `lagoon.persistent.size`, `lagoon.persistent.class` |

## **`none`**

Instructs Lagoon to completely ignore this service.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| - | - | - | - | - |

## **`postgres`**

A meta-service which will tell Lagoon to automatically decide between `postgres-single` and `postgres-dbaas`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| - | - | - | - | - |

## **`postgres-single`**

Postgres container. Creates cron job for backups running every 24h executing `/lagoon/postgres-backup.sh localhost`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `5432` | `5432` | No | Yes | `lagoon.persistent.size` |

## **`postgres-dbaas`**

Uses a shared PostgreSQL server via the DBaaS Operator.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| Not Needed | `5432` | No | - | - |

## **`python`**

Python container. No persistent storage.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| HTTP connection on `8800` | `8800` | Yes | No | - |

## **`python-persistent`**

Python container. With persistent storage.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| HTTP connection on `8800` | `8800` | Yes | Yes | - |

## **`redis`**

Redis container.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `6379` | `6379` | No | No | - |

## **`redis-persistent`**

Redis container with auto-generated persistent storage mounted under `/data`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `6379` | `6379` | No | Yes | `lagoon.persistent.size` |

## **`solr`**

Solr container with auto-generated persistent storage mounted under `/var/solr`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| TCP connection on `8983` | `8983` | No | Yes | `lagoon.persistent.size` |

## **`varnish`**

Varnish container.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| HTTP request `localhost:8080/varnish_status` | `8080` | Yes | No | - |

## **`varnish-persistent`**

Varnish container with auto-generated persistent storage mounted under `/var/cache/varnish`.

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter |
| :--- | :--- | :--- | :--- | :--- |
| HTTP request `localhost:8080/varnish_status` | `8080` | Yes | Yes | `lagoon.persistent.size` |