Skip to content

Commit

Permalink
Configurable compose setup
Browse files Browse the repository at this point in the history
  • Loading branch information
radekg committed Aug 7, 2021
1 parent 911f9c4 commit be03b1a
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 24 deletions.
6 changes: 3 additions & 3 deletions .compose-yb/compose-masters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ networks:
services:

master1:
image: local/yugabytedb:2.7.2.0-b216
image: "${YB_IMAGE_TAG}:${YB_IMAGE_VERSION}"
container_name: master1
restart: unless-stopped
# hostname: master1
Expand All @@ -31,7 +31,7 @@ services:
- "traefik.tcp.services.masters.loadbalancer.server.port=7000"

master2:
image: local/yugabytedb:2.7.2.0-b216
image: "${YB_IMAGE_TAG}:${YB_IMAGE_VERSION}"
container_name: master2
restart: unless-stopped
# hostname: master2
Expand All @@ -55,7 +55,7 @@ services:
- "traefik.tcp.services.masters.loadbalancer.server.port=7000"

master3:
image: local/yugabytedb:2.7.2.0-b216
image: "${YB_IMAGE_TAG}:${YB_IMAGE_VERSION}"
container_name: master3
restart: unless-stopped
# hostname: master3
Expand Down
12 changes: 6 additions & 6 deletions .compose-yb/compose-tservers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ networks:
services:

tserver-ts1a:
image: local/yugabytedb:2.7.2.0-b216
image: "${YB_IMAGE_TAG}:${YB_IMAGE_VERSION}"
container_name: tserver-ts1a
restart: unless-stopped
# hostname: tserver-ts1a
Expand All @@ -23,7 +23,7 @@ services:
"--placement_cloud=docker",
"--placement_region=compose",
"--placement_zone=a",
"--ysql_pg_conf=shared_preload_libraries='example'"]
"--ysql_pg_conf=shared_preload_libraries='${SHARED_PRELOAD_LIBRARIES}'"]
labels:
- "traefik.enable=true"
- "traefik.tcp.routers.tserver-ts1a.entrypoints=tservers-psql"
Expand All @@ -32,7 +32,7 @@ services:
- "traefik.tcp.services.tservers-psql.loadbalancer.server.port=5433"

tserver-ts1b:
image: local/yugabytedb:2.7.2.0-b216
image: "${YB_IMAGE_TAG}:${YB_IMAGE_VERSION}"
container_name: tserver-ts1b
restart: unless-stopped
# hostname: tserver-ts1b
Expand All @@ -48,7 +48,7 @@ services:
"--placement_cloud=docker",
"--placement_region=compose",
"--placement_zone=b",
"--ysql_pg_conf=shared_preload_libraries='example'"]
"--ysql_pg_conf=shared_preload_libraries='${SHARED_PRELOAD_LIBRARIES}'"]
labels:
- "traefik.enable=true"
- "traefik.tcp.routers.tserver-ts1b.entrypoints=tservers-psql"
Expand All @@ -57,7 +57,7 @@ services:
- "traefik.tcp.services.tservers-psql.loadbalancer.server.port=5433"

tserver-ts1c:
image: local/yugabytedb:2.7.2.0-b216
image: "${YB_IMAGE_TAG}:${YB_IMAGE_VERSION}"
container_name: tserver-ts1c
restart: unless-stopped
# hostname: tserver-ts1c
Expand All @@ -73,7 +73,7 @@ services:
"--placement_cloud=docker",
"--placement_region=compose",
"--placement_zone=c",
"--ysql_pg_conf=shared_preload_libraries='example'"]
"--ysql_pg_conf=shared_preload_libraries='${SHARED_PRELOAD_LIBRARIES}'"]
labels:
- "traefik.enable=true"
- "traefik.tcp.routers.tserver-ts1c.entrypoints=tservers-psql"
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.vscode/
.tmp/*
!.tmp/.gitkeep
!.tmp/.gitkeep
.compose-yb/.compose.*.env
49 changes: 39 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ YB_RELEASE_DOCKER_ARG_GROUP?=yb
YB_RELEASE_DOCKER_ARG_UID?=1000
YB_RELEASE_DOCKER_ARG_USER?=yb

empty=
YB_COMPOSE_SHARED_PRELOAD_LIBRARIES=${empty}

CURRENT_DIR=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
PLATFORM=$(shell uname -s)

Expand Down Expand Up @@ -90,19 +93,45 @@ endif
--build-arg YB_REPOSITORY=${YB_REPOSITORY} \
-t ${YB_RELEASE_DOCKER_TAG}:${YB_RELEASE_DOCKER_VERSION} .

.PHONY: yb-start-masters
yb-start-masters:
cd ${CURRENT_DIR}/.compose-yb && docker compose -f compose-masters.yaml up
.compose.masters.env:
cd ${CURRENT_DIR}/.compose-yb \
&& echo YB_IMAGE_TAG=${YB_RELEASE_DOCKER_TAG} > .compose.masters.env \
&& echo YB_IMAGE_VERSION=${YB_RELEASE_DOCKER_VERSION} >> .compose.masters.env

.PHONY: yb-start-tservers
yb-start-tservers:
cd ${CURRENT_DIR}/.compose-yb && docker compose -f compose-tservers.yaml up
.compose.tservers.env:
cd ${CURRENT_DIR}/.compose-yb \
&& echo YB_IMAGE_TAG=${YB_RELEASE_DOCKER_TAG} > .compose.tservers.env \
&& echo YB_IMAGE_VERSION=${YB_RELEASE_DOCKER_VERSION} >> .compose.tservers.env \
&& echo SHARED_PRELOAD_LIBRARIES="${YB_COMPOSE_SHARED_PRELOAD_LIBRARIES}" >> .compose.tservers.env

.PHONY: yb-compose-start-all
yb-compose-start-all:
cd ${CURRENT_DIR}/.compose-yb \
&& docker compose \
-f compose-masters.yaml --env-file .compose.masters.env \
-f compose-tservers.yaml --env-file .compose.tservers.env \
-f compose-traefik.yaml up

.PHONY: yb-compose-start-masters
yb-compose-start-masters: .compose.masters.env
cd ${CURRENT_DIR}/.compose-yb \
&& docker compose \
-f compose-masters.yaml --env-file .compose.masters.env up

.PHONY: yb-compose-start-tservers
yb-compose-start-tservers: .compose.tservers.env
cd ${CURRENT_DIR}/.compose-yb \
&& docker compose \
-f compose-tservers.yaml --env-file .compose.tservers.env up

.PHONY: yb-start-traefik
yb-start-traefik:
.PHONY: yb-compose-start-traefik
yb-compose-start-traefik:
cd ${CURRENT_DIR}/.compose-yb && docker compose -f compose-traefik.yaml up

.PHONY: yb-compose-clean
yb-compose-clean:
yb-compose-clean: .compose.masters.env .compose.tservers.env
cd ${CURRENT_DIR}/.compose-yb \
&& docker compose -f compose-traefik.yaml -f compose-tservers.yaml -f compose-traefik.yaml rm
&& docker compose \
-f compose-traefik.yaml \
-f compose-masters.yaml --env-file .compose.masters.env \
-f compose-tservers.yaml --env-file .compose.tservers.env rm
36 changes: 32 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,29 +124,57 @@ make ybdb-base
In three separate terminals:

```sh
make yb-start-masters
make yb-compose-start-masters
```

This may take some time to settle. Wait until you see the `Successfully built ybclient` message.

In the second terminal:

```sh
make yb-start-tservers
make yb-compose-start-tservers
```

Finally, in the third terminal, start the reverse proxy:

```sh
make yb-start-traefik
make yb-compose-start-traefik
```

Connect to the database:
#### Optionally: start everything in one go

```sh
make yb-compose-start-all
```

#### Starting with custom _shared\_preload\_library_ list

For TServers only:

```sh
make YB_COMPOSE_SHARED_PRELOAD_LIBRARIES=lib1,lib2 yb-compose-start-tservers
```

For all:

```sh
make YB_COMPOSE_SHARED_PRELOAD_LIBRARIES=lib1,lib2 yb-compose-start-all
```

#### Connect to the database

```sh
psql "host=localhost port=5433 user=yugabyte dbname=yugabyte"
```

```
Password for user yugabyte:
psql (13.3, server 11.2-YB-2.7.2.0-b0)
Type "help" for help.
yugabyte=#
```

Create the extension:

```sql
Expand Down

0 comments on commit be03b1a

Please sign in to comment.