diff options
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/Makefile | 1 | ||||
-rw-r--r-- | sysutils/py-overlord/Makefile | 63 | ||||
-rw-r--r-- | sysutils/py-overlord/distinfo | 3 | ||||
-rw-r--r-- | sysutils/py-overlord/files/pkg-message.in | 49 | ||||
-rw-r--r-- | sysutils/py-overlord/pkg-descr | 3 | ||||
-rw-r--r-- | sysutils/py-overlord/pkg-plist | 133 |
6 files changed, 252 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile index b17a08fac079..42d18277ff67 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1042,6 +1042,7 @@ SUBDIR += py-mitogen SUBDIR += py-mqttwarn SUBDIR += py-nagiosplugin + SUBDIR += py-overlord SUBDIR += py-packet-python SUBDIR += py-pkginfo SUBDIR += py-ploy diff --git a/sysutils/py-overlord/Makefile b/sysutils/py-overlord/Makefile new file mode 100644 index 000000000000..165ec6590bc8 --- /dev/null +++ b/sysutils/py-overlord/Makefile @@ -0,0 +1,63 @@ +PORTNAME= overlord +DISTVERSIONPREFIX= v +DISTVERSION= 0.7.0 +CATEGORIES= sysutils python +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= DtxdF@disroot.org +COMMENT= Deploy FreeBSD jails as fast as you code +WWW= https://github.com/DtxdF/${PORTNAME} + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiofiles>=0:devel/py-aiofiles@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}aiostalk>=0:net/py-aiostalk@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}asciitree>=0:graphics/py-asciitree@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}click>=0:devel/py-click@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dnspython>=0:dns/py-dnspython@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}etcd3gw>=0:devel/py-etcd3gw@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}httpx-retries>=0:www/py-httpx-retries@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}humanfriendly>=0:textproc/py-humanfriendly@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ifaddr>=0:net/py-ifaddr@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mako>=0:textproc/py-mako@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}psutil>=0:sysutils/py-psutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyaml-env>=0:devel/py-pyaml-env@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyjwt>=0:www/py-pyjwt@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pymemcache>=0:databases/py-pymemcache@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-dotenv>=0:www/py-python-dotenv@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}supervisor>=0:sysutils/py-supervisor@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tornado>=0:www/py-tornado@${PY_FLAVOR} \ + beanstalkd>=0:net/beanstalkd \ + memcached>=0:databases/memcached + +USES= python +USE_GITHUB= yes +GH_ACCOUNT= DtxdF +USE_PYTHON= distutils + +NO_ARCH= yes + +SUB_FILES= pkg-message +SUB_LIST= PYTHON_PKGNAMEPREFIX=${PYTHON_PKGNAMEPREFIX} + +PORTDOCS= README.md + +OPTIONS_DEFINE= DOCS + +post-install: + ${INSTALL_DATA} ${WRKSRC}/.overlord.yml ${STAGEDIR}${PREFIX}/etc/overlord.yml.sample + @${MKDIR} ${STAGEDIR}${DATADIR} + ${INSTALL_DATA} ${WRKSRC}/supervisord/supervisord.d/overlord.ini ${STAGEDIR}${DATADIR}/overlord.ini + @cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-libexec + @cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-manpages + @${MKDIR} ${STAGEDIR}/var/log/overlord + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}/${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}/${DOCSDIR} + +.include <bsd.port.mk> diff --git a/sysutils/py-overlord/distinfo b/sysutils/py-overlord/distinfo new file mode 100644 index 000000000000..6ad62c0dcf30 --- /dev/null +++ b/sysutils/py-overlord/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1746251670 +SHA256 (DtxdF-overlord-v0.7.0_GH0.tar.gz) = 42ad4181c3085e83622b19a90f928765b2c0e79be56a9c2aca016abc35d1a338 +SIZE (DtxdF-overlord-v0.7.0_GH0.tar.gz) = 85747 diff --git a/sysutils/py-overlord/files/pkg-message.in b/sysutils/py-overlord/files/pkg-message.in new file mode 100644 index 000000000000..edfa19208e46 --- /dev/null +++ b/sysutils/py-overlord/files/pkg-message.in @@ -0,0 +1,49 @@ +[ +{ type: install + message: <<EOM +The configuration file can be found at the following path: + %%PREFIX%%/etc/overlord.yml +Edit it to suit your needs before starting the Overlord services. + +1. If you have configured Overlord to use Beanstalkd and Memcache locally (by default), + you need to start those services. + + - enable required services: + # sysrc beanstalkd_enable=YES + # sysrc memcached_enable=YES + + - start required services: + # service beanstalkd start + # service memcached start + +2. If you have not installed Director or AppJail from the development repository and + prefer to install them from precompiled binaries: + + - install Director: + # pkg install %%PYTHON_PKGNAMEPREFIX%%director + + - install AppJail: + # pkg install -y appjail # or appjail-devel + +3. Set up supervisord in order to execute Overlord services: + - Some processes may rely on the assumption that rctl(4) is enabled, if it is not + already enabled, please enable it by adding to /boot/loader.conf: +kern.racct.enable=1 + + Remember to reboot for the above change take effect. + + - let supervisord.conf load files contained in this directory by adding to + %%PREFIX%%/etc/supervisord.conf: +[include] +files = %%DATADIR%%/overlord.ini + + - enable supervisord: + # sysrc supervisord_enable=YES + + - start supervisord: + # service supervisord start + +4. Enjoy. +EOM +} +] diff --git a/sysutils/py-overlord/pkg-descr b/sysutils/py-overlord/pkg-descr new file mode 100644 index 000000000000..87bb391f289c --- /dev/null +++ b/sysutils/py-overlord/pkg-descr @@ -0,0 +1,3 @@ +Overlord is a fast, distributed orchestrator for FreeBSD jails +oriented to GitOps. You define a file with the service intended to +run on your cluster and deployment takes seconds to minutes. diff --git a/sysutils/py-overlord/pkg-plist b/sysutils/py-overlord/pkg-plist new file mode 100644 index 000000000000..cfb747a09d36 --- /dev/null +++ b/sysutils/py-overlord/pkg-plist @@ -0,0 +1,133 @@ +@sample(root,wheel,064) etc/overlord.yml.sample +@dir /var/log/overlord +libexec/overlord/safe-exc.sh +libexec/overlord/vm-install-from-appjail-image.sh +libexec/overlord/vm-install-from-components.sh +libexec/overlord/vm-start.sh +share/man/man1/overlord.1.gz +share/man/man5/overlord-spec.5.gz +%%DATADIR%%/overlord.ini +bin/overlord +%%PYTHON_SITELIBDIR%%/overlord/__init__.py +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/cache%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/cache%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/chains%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/chains%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/client%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/config%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/config%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/dataplaneapi%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/dataplaneapi%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/default%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/default%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/director%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/director%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/environment%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/environment%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/etcd%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/etcd%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jail%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jail%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jwt%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/jwt%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/process%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/process%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/queue%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/queue%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/signals%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/signals%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/skydns%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/skydns%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/sysexits%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/sysexits%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/tornado%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/tornado%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/trap%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/trap%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/version%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/version%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/vm%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/__pycache__/vm%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/cache.py +%%PYTHON_SITELIBDIR%%/overlord/chains.py +%%PYTHON_SITELIBDIR%%/overlord/client.py +%%PYTHON_SITELIBDIR%%/overlord/commands/__init__.py +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/apply%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/apply%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/cancel%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/cancel%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/config%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/config%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/destroy%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/destroy%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/info%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/logs%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/logs%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/poll%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/poll%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/serve%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/serve%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/spec%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/spec%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/token%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/token%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/watch%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/__pycache__/watch%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/commands/apply.py +%%PYTHON_SITELIBDIR%%/overlord/commands/cancel.py +%%PYTHON_SITELIBDIR%%/overlord/commands/config.py +%%PYTHON_SITELIBDIR%%/overlord/commands/destroy.py +%%PYTHON_SITELIBDIR%%/overlord/commands/info.py +%%PYTHON_SITELIBDIR%%/overlord/commands/logs.py +%%PYTHON_SITELIBDIR%%/overlord/commands/poll.py +%%PYTHON_SITELIBDIR%%/overlord/commands/serve.py +%%PYTHON_SITELIBDIR%%/overlord/commands/spec.py +%%PYTHON_SITELIBDIR%%/overlord/commands/token.py +%%PYTHON_SITELIBDIR%%/overlord/commands/watch.py +%%PYTHON_SITELIBDIR%%/overlord/config.py +%%PYTHON_SITELIBDIR%%/overlord/dataplaneapi.py +%%PYTHON_SITELIBDIR%%/overlord/default.py +%%PYTHON_SITELIBDIR%%/overlord/director.py +%%PYTHON_SITELIBDIR%%/overlord/environment.py +%%PYTHON_SITELIBDIR%%/overlord/etcd.py +%%PYTHON_SITELIBDIR%%/overlord/exceptions.py +%%PYTHON_SITELIBDIR%%/overlord/jail.py +%%PYTHON_SITELIBDIR%%/overlord/jwt.py +%%PYTHON_SITELIBDIR%%/overlord/metadata.py +%%PYTHON_SITELIBDIR%%/overlord/process.py +%%PYTHON_SITELIBDIR%%/overlord/queue.py +%%PYTHON_SITELIBDIR%%/overlord/signals.py +%%PYTHON_SITELIBDIR%%/overlord/skydns.py +%%PYTHON_SITELIBDIR%%/overlord/spec/__init__.py +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/app_config%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/app_config%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/director_project%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/director_project%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/metadata%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/vm_jail%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/__pycache__/vm_jail%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/overlord/spec/app_config.py +%%PYTHON_SITELIBDIR%%/overlord/spec/director_project.py +%%PYTHON_SITELIBDIR%%/overlord/spec/metadata.py +%%PYTHON_SITELIBDIR%%/overlord/spec/vm_jail.py +%%PYTHON_SITELIBDIR%%/overlord/sysexits.py +%%PYTHON_SITELIBDIR%%/overlord/tornado.py +%%PYTHON_SITELIBDIR%%/overlord/trap.py +%%PYTHON_SITELIBDIR%%/overlord/util.py +%%PYTHON_SITELIBDIR%%/overlord/version.py +%%PYTHON_SITELIBDIR%%/overlord/vm.py |