Browse Source

new: [dhcp] new charm

Signed-off-by: Valentin Lab <valentin.lab@kalysto.org>
dhcp
Valentin Lab 4 years ago
parent
commit
2497e68ac6
  1. 12
      dhcp/build/Dockerfile
  2. 17
      dhcp/hooks/init
  3. 53
      dhcp/metadata.yml

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
Loading…
Cancel
Save