diff options
author | Kurt Jaeger <pi@FreeBSD.org> | 2020-03-21 12:54:54 +0000 |
---|---|---|
committer | Kurt Jaeger <pi@FreeBSD.org> | 2020-03-21 12:54:54 +0000 |
commit | 5aaf1f97cfcb9d33e4b67e6c0f64033fed50281d (patch) | |
tree | 0d1a177a225281d42f49a90e3fa13f27e003a606 | |
parent | converters/pdf2djvu: update to 0.9.17 (diff) |
New port: net/traefik2 High availability reverse proxy and load balancer 2.x
Traefik (pronounced like traffic) is a modern HTTP reverse proxy and load
balancer made to deploy microservices with ease. It supports several backends
(Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS,
and a lot more) to manage its configuration automatically and dynamically.
WWW: https://traefik.io/
PR: 244913
Submitted by: Christopher Beppler <freebsd@funzi.org>
-rw-r--r-- | net/Makefile | 1 | ||||
-rw-r--r-- | net/traefik2/Makefile | 45 | ||||
-rw-r--r-- | net/traefik2/distinfo | 3 | ||||
-rw-r--r-- | net/traefik2/files/traefik.in | 53 | ||||
-rw-r--r-- | net/traefik2/pkg-descr | 6 | ||||
-rw-r--r-- | net/traefik2/pkg-message | 21 |
6 files changed, 129 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile index a764c45785cb..495ac330eef9 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1469,6 +1469,7 @@ SUBDIR += toonel SUBDIR += torsocks SUBDIR += traefik + SUBDIR += traefik2 SUBDIR += traff SUBDIR += trafshow SUBDIR += trafshow3 diff --git a/net/traefik2/Makefile b/net/traefik2/Makefile new file mode 100644 index 000000000000..bbf4f11ade22 --- /dev/null +++ b/net/traefik2/Makefile @@ -0,0 +1,45 @@ +# $FreeBSD$ + +PORTNAME= traefik2 +DISTVERSIONPREFIX= v +DISTVERSION= 2.1.8 +DISTVERSIONSUFFIX= -vendor +CATEGORIES= net + +MAINTAINER= freebsd@funzi.org +COMMENT= High availability reverse proxy and load balancer + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE.md + +USES= go:modules + +USE_GITHUB= yes +GH_ACCOUNT= Funzinator +GH_PROJECT= traefik +GH_SUBDIR= src/github.com/containous/traefik + +USE_RC_SUBR= traefik + +GO_BUILDFLAGS= -ldflags "-s -w \ + -X github.com/containous/traefik/version.Version=${DISTVERSION} \ + -X github.com/containous/traefik/version.BuildDate=`date -u '+%Y-%m-%d_%I:%M:%S%p'`" +GO_TARGET= ./cmd/traefik +CGO_ENABLED= 0 + +USERS= traefik +GROUPS= traefik + +PLIST_FILES= bin/traefik \ + "@sample etc/traefik.toml.sample" + +post-patch: + # Install a sample configuration file which works by default + # without manual tweaking + ${REINPLACE_CMD} -e 's|:80|:8088|' -e 's|:443|:8443|' \ + -e 's|\[docker|# \[docker|' ${WRKSRC}/traefik.sample.toml + +post-install: + ${INSTALL_DATA} ${WRKSRC}/traefik.sample.toml ${STAGEDIR}${PREFIX}/etc/traefik.toml.sample + +.include <bsd.port.mk> diff --git a/net/traefik2/distinfo b/net/traefik2/distinfo new file mode 100644 index 000000000000..363a21a583e0 --- /dev/null +++ b/net/traefik2/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1584705603 +SHA256 (Funzinator-traefik-v2.1.8-vendor_GH0.tar.gz) = b18397fbec5fd1948a3ecf3b111b25ca2712683298792ed2aebd4cfbfe5c21ab +SIZE (Funzinator-traefik-v2.1.8-vendor_GH0.tar.gz) = 19161792 diff --git a/net/traefik2/files/traefik.in b/net/traefik2/files/traefik.in new file mode 100644 index 000000000000..c27eb6a04d4d --- /dev/null +++ b/net/traefik2/files/traefik.in @@ -0,0 +1,53 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: traefik +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# traefik_enable (bool): Set to NO by default. +# Set it to YES to enable traefik. +# traefik_user (user): Set user to run traefik. +# Default is "traefik". +# traefik_group (group): Set group to run traefik. +# Default is "traefik". +# traefik_conf (path): Path to traefik configuration file. +# Default is %%PREFIX%%/etc/traefik.toml +# traefik_env (vars): Set environment variables used with traefik +# Default is "". +# These are necessary for ACME (Let's Encrypt) +# configuration, see +# https://docs.traefik.io/configuration/acme/ + +. /etc/rc.subr + +name=traefik +rcvar=traefik_enable + +load_rc_config $name + +: ${traefik_enable:="NO"} +: ${traefik_user:="traefik"} +: ${traefik_group:="traefik"} +: ${traefik_conf:="%%PREFIX%%/etc/traefik.toml"} +: ${traefik_env:=""} + +pidfile=/var/run/traefik.pid +procname="%%PREFIX%%/bin/traefik" +command="/usr/sbin/daemon" +command_args="-f -p ${pidfile} /usr/bin/env ${traefik_env} ${procname} --configFile=${traefik_conf} ${traefik_args}" + +start_precmd=traefik_startprecmd + +traefik_startprecmd() +{ + if [ ! -e ${pidfile} ]; then + install -o ${traefik_user} -g ${traefik_group} /dev/null ${pidfile}; + fi +} + +run_rc_command "$1" diff --git a/net/traefik2/pkg-descr b/net/traefik2/pkg-descr new file mode 100644 index 000000000000..5987f7269bfa --- /dev/null +++ b/net/traefik2/pkg-descr @@ -0,0 +1,6 @@ +Traefik (pronounced like traffic) is a modern HTTP reverse proxy and load +balancer made to deploy microservices with ease. It supports several backends +(Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS, +and a lot more) to manage its configuration automatically and dynamically. + +WWW: https://traefik.io/ diff --git a/net/traefik2/pkg-message b/net/traefik2/pkg-message new file mode 100644 index 000000000000..5fb39fbf0f4a --- /dev/null +++ b/net/traefik2/pkg-message @@ -0,0 +1,21 @@ +[ +{ type: install + message: <<EOM +Note that traefik starts as unprivileged user. Thus, it cannot +bind to privileged ports (by default, ports below 1024) and +will exit when configured to do so. + +If traefik should serve ports in the privileged range, there +are options to achieve this: +- Have traffic bind to an unprivileged port and use the + packet filter configuration to redirect requests to the + desired privileged port to the unprivileged port in + traefik's configuration file e.g. the rdr rules in pf(4). +- The mac_portacl kernel module allows unprivileged processes + to bind to privileged ports. + +Note: If you are upgrading from traefik 1.x keep in mind that +the configuration is not compatible. +EOM +} +] |