Compare commits

...

5 Commits
master ... dhcp

Author SHA1 Message Date
Valentin Lab 26a0ea08ed new: [cyclos] new charm 4 years ago
Valentin Lab 8208188756 fix: [odoo-tecnativa] remove default install of ``l10n_fr`` 4 years ago
Valentin Lab 785cf5e4dd fix: [postgres] proper support of ``postgis`` extension. 4 years ago
Valentin Lab 2497e68ac6 new: [dhcp] new charm 4 years ago
Valentin Lab 2adc8fdeaa fix: [host] ``dnsmasq``'s DNS waterfall didn't have proper ``logrotate`` script. 4 years ago
  1. 19
      cyclos/hooks/postgres_database-relation-joined
  2. 29
      cyclos/metadata.yml
  3. 12
      dhcp/build/Dockerfile
  4. 17
      dhcp/hooks/init
  5. 53
      dhcp/metadata.yml
  6. 2
      odoo-tecnativa/hooks/init
  7. 9
      postgres/build/Dockerfile
  8. 11
      postgres/hooks/init
  9. 4
      postgres/lib/common
  10. 4
      precise/host/hooks/install.d/80-dns-waterfall.sh

19
cyclos/hooks/postgres_database-relation-joined

@ -0,0 +1,19 @@
#!/bin/bash
set -e
PASSWORD="$(relation-get password)"
USER="$(relation-get user)"
DBNAME="$(relation-get dbname)"
config-add "\
services:
$MASTER_BASE_SERVICE_NAME:
environment:
DB_HOST: \"$MASTER_TARGET_SERVICE_NAME\"
DB_NAME: \"$DBNAME\"
DB_USER: \"$USER\"
DB_PASSWORD: \"$PASSWORD\"
"
info "Configured $SERVICE_NAME code for $TARGET_SERVICE_NAME access."

29
cyclos/metadata.yml

@ -0,0 +1,29 @@
## Based on cyclos/cyclos:4.13.2
docker-image: docker.0k.io/cyclos:4.13.2
default-options:
uses:
postgres-database:
#constraint: required | recommended | optional
#auto: pair | summon | none ## default: pair
constraint: required
auto: summon
solves:
database: "main storage"
default-options:
extensions:
- cube
- earthdistance
- postgis
- unaccent
web-proxy:
#constraint: required | recommended | optional
#auto: pair | summon | none ## default: pair
constraint: recommended
auto: pair
solves:
proxy: "Public access"
default-options:
target: !var-expand ${MASTER_BASE_SERVICE_NAME}:8080

12
dhcp/build/Dockerfile

@ -0,0 +1,12 @@
FROM alpine:latest
LABEL description="ISC DHCP Server on Alpine Linux"
RUN apk --no-cache add dhcp
ENTRYPOINT ["/usr/sbin/dhcpd", "-4", \
"-d", \
# "-cf", "/config/dhcpd.conf", \
# "-lf", "/config/dhcpd.leases", \
"-user", "dhcp", \
"-group", "dhcp"]

17
dhcp/hooks/init

@ -0,0 +1,17 @@
#!/bin/bash
## Init is run on host
## For now it is run every time the script is launched, but
## it should be launched only once after build.
## Accessible variables are:
## - SERVICE_NAME Name of current service
## - DOCKER_BASE_IMAGE Base image from which this service might be built if any
## - SERVICE_DATASTORE Location on host of the DATASTORE of this service
## - SERVICE_CONFIGSTORE Location on host of the CONFIGSTORE of this service
config=$(options-get config 2>/dev/null) || true
mkdir -p "$SERVICE_CONFIGSTORE"/etc/dhcp &&
e "$config" > "$SERVICE_CONFIGSTORE"/etc/dhcp/dhcpd.conf

53
dhcp/metadata.yml

@ -0,0 +1,53 @@
data-resources:
- /var/lib/dhcp
- /var/log/dhcp
config-resources:
- /etc/dhcp/dhcpd.conf
default-options:
# config: |
# ## Sample configuration file for ISC dhcpd
# option domain-name "example.org";
# option domain-name-servers ns1.example.org, ns2.example.org;
# default-lease-time 600;
# max-lease-time 7200;
# #ddns-update-style none;
# authoritative;
# log-facility local7;
# ## No service will be given on this subnet, but declaring it allows the dhcp
# ## server to listen on this network
# subnet 172.17.0.0 netmask 255.255.255.0 {
# }
# ## This is a very basic subnet declaration.
# subnet 10.254.239.0 netmask 255.255.255.224 {
# range 10.254.239.10 10.254.239.20;
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
# }
# ## A slightly different configuration for an internal subnet.
# subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
# }
# ## Fixed IP addresses can also be specified for hosts. These addresses
# ## should not also be listed as being available for dynamic assignment.
# ## Hosts for which fixed IP addresses have been specified can boot using
# ## BOOTP or DHCP. Hosts for which no fixed address is specified can only
# ## be booted with DHCP, unless there is an address range on the subnet
# ## to which a BOOTP client is connected which has the dynamic-bootp flag
# ## set.
# host fantasia {
# hardware ethernet 08:00:07:26:c0:a5;
# fixed-address fantasia.example.com;
# }
docker-compose:
ports:
- 67:67/udp

2
odoo-tecnativa/hooks/init

@ -31,7 +31,7 @@ workers=${workers:-1}
modules=$(options-get modules 2>/dev/null | yaml_get_values ,) || true modules=$(options-get modules 2>/dev/null | yaml_get_values ,) || true
if [ -z "$modules" ]; then if [ -z "$modules" ]; then
modules=base,l10n_fr
modules=base
else else
modules="base,${modules}" modules="base,${modules}"
fi fi

9
postgres/build/Dockerfile

@ -1,6 +1,5 @@
## is a simple copy of postgres:10-alpine
FROM docker.0k.io/postgres:10-alpine as common
## is a simple copy of postgis/postgis:10-3.0-alpine
FROM docker.0k.io/postgis:10-3.0-alpine as common
FROM common AS builder FROM common AS builder
@ -25,12 +24,12 @@ USER root
RUN apk add curl RUN apk add curl
RUN curl -L https://raw.githubusercontent.com/0k/pgm/0.0.2/bin/pgm > /bin/pgm && \
RUN curl -L https://raw.githubusercontent.com/0k/pgm/0.0.3/bin/pgm > /bin/pgm && \
chmod +x /bin/pgm chmod +x /bin/pgm
FROM common FROM common
RUN apk -U add pv python file
RUN apk -U add pv python2 file sed
COPY --from=builder /home/packager/packages/tmp/x86_64/*.apk /tmp/ COPY --from=builder /home/packager/packages/tmp/x86_64/*.apk /tmp/
COPY --from=builder /bin/pgm /bin COPY --from=builder /bin/pgm /bin

11
postgres/hooks/init

@ -21,14 +21,25 @@ set -e
if ! [ -f "$LOCAL_DB_PASSFILE" ]; then if ! [ -f "$LOCAL_DB_PASSFILE" ]; then
POSTGRES_ROOT_PASSWORD="$(gen_password)" POSTGRES_ROOT_PASSWORD="$(gen_password)"
## required by image of postgres for first run
server_docker_opts=("${server_docker_opts[@]}" -e POSTGRES_HOST_AUTH_METHOD=trust)
ddb < <(echo "ALTER USER postgres WITH ENCRYPTED password '$POSTGRES_ROOT_PASSWORD'") ddb < <(echo "ALTER USER postgres WITH ENCRYPTED password '$POSTGRES_ROOT_PASSWORD'")
cat <<EOF > "$LOCAL_DB_PASSFILE" cat <<EOF > "$LOCAL_DB_PASSFILE"
*:*:*:postgres:$POSTGRES_ROOT_PASSWORD *:*:*:postgres:$POSTGRES_ROOT_PASSWORD
EOF EOF
chmod 600 "$LOCAL_DB_PASSFILE" chmod 600 "$LOCAL_DB_PASSFILE"
info "New root password for postgres." info "New root password for postgres."
## resetting ``server_docker_opts``, and forcing stop to remove the
## POSTGRES_HOST_AUTH_METHOD arg.
docker stop "$container_id"
docker rm "$container_id"
server_docker_opts=()
_set_server_db_params
fi fi
if ! egrep "^host all all (0.0.0.0/0|all) md5\$" "$PG_HBA" >/dev/null 2>&1; then if ! egrep "^host all all (0.0.0.0/0|all) md5\$" "$PG_HBA" >/dev/null 2>&1; then
if egrep "^host all all (0.0.0.0/0|all) trust\$" "$PG_HBA" >/dev/null 2>&1; then if egrep "^host all all (0.0.0.0/0|all) trust\$" "$PG_HBA" >/dev/null 2>&1; then
sed -ri 's%^host all all (0\.0\.0\.0/0|all) trust$%host all all \1 md5%g' \ sed -ri 's%^host all all (0\.0\.0\.0/0|all) trust$%host all all \1 md5%g' \

4
postgres/lib/common

@ -74,7 +74,7 @@ db_install_extensions() {
case "$1" in case "$1" in
postgis) postgis)
ddb -d "$dbname" < <(echo "CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;") || return 1 ddb -d "$dbname" < <(echo "CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;") || return 1
dcmd /bin/bash -c "psql -d '$dbname' -f /usr/share/postgresql/*/contrib/postgis-2.1/legacy.sql" || return 1
dcmd /bin/bash -c "psql -d '$dbname' -v ON_ERROR_STOP=1 -f /usr/local/share/postgresql/contrib/postgis-*/legacy.sql" || return 1
info "Installed postgis extensions on database '$dbname'." info "Installed postgis extensions on database '$dbname'."
;; ;;
*) *)
@ -129,5 +129,5 @@ PGM() {
db_grant_rights () { db_grant_rights () {
local dbname="$1" user="$2" local dbname="$1" user="$2"
PGM chown "$user" "$dbname"
PGM chown -v "$user" "$dbname"
} }

4
precise/host/hooks/install.d/80-dns-waterfall.sh

@ -69,7 +69,7 @@ cat <<EOF > /etc/logrotate.d/dnsmasq
compress compress
postrotate postrotate
kill -s SIGUSR2 "\$(cat /var/run/dnsmasq/dnsmasq.pid)"
/bin/kill -s SIGUSR2 "\$(cat /var/run/dnsmasq/dnsmasq.pid)"
endscript endscript
} }
@ -85,7 +85,7 @@ cat <<EOF > /etc/logrotate.d/lxc-dnsmasq
compress compress
postrotate postrotate
kill -s SIGUSR2 "\$(cat /var/run/lxc/dnsmasq.pid)"
/bin/kill -s SIGUSR2 "\$(cat /var/run/lxc/dnsmasq.pid)"
endscript endscript
} }

Loading…
Cancel
Save