From fe72021f00a6512b9debd0f629811a29b9b3c725 Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Tue, 21 Mar 2023 12:56:17 -0400 Subject: [PATCH] Added a basic setup with package install, config, and service management --- LICENSE | 2 +- README.md | 20 +++++++++++++++++++- gitea/config/file.sls | 18 ++++++++++++++++++ gitea/config/init.sls | 5 +++++ gitea/defaults.yaml | 12 ++++++++++++ gitea/init.sls | 4 ++++ gitea/map.jinja | 32 ++++++++++++++++++++++++++++++++ gitea/osfamilymap.yaml | 5 +++++ gitea/package/init.sls | 5 +++++ gitea/package/install.sls | 17 +++++++++++++++++ gitea/service/init.sls | 5 +++++ gitea/service/running.sls | 16 ++++++++++++++++ 12 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 gitea/config/file.sls create mode 100644 gitea/config/init.sls create mode 100644 gitea/defaults.yaml create mode 100644 gitea/init.sls create mode 100644 gitea/map.jinja create mode 100644 gitea/osfamilymap.yaml create mode 100644 gitea/package/init.sls create mode 100644 gitea/package/install.sls create mode 100644 gitea/service/init.sls create mode 100644 gitea/service/running.sls diff --git a/LICENSE b/LICENSE index 5f662b3..080ae67 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) +Copyright (c) 2023 Metaunix.net Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/README.md b/README.md index 26dee40..dff4e82 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,21 @@ # gitea-formula -Formula to manage Gitea installations \ No newline at end of file +Formula to manage Gitea installations + +## Available States + +### gitea + +Includes all of the states required to install, configure, and start the Gitea service. + +### gitea.package + +Installs the gitea package. + +### gitea.config + +Configures the gitea application. + +### gitea.service + +Ensures the gitea service is running. diff --git a/gitea/config/file.sls b/gitea/config/file.sls new file mode 100644 index 0000000..ce1704d --- /dev/null +++ b/gitea/config/file.sls @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +{%- set tplroot = tpldir.split('/')[0] %} +{%- set sls_package_install = tplroot ~ '.package.install' %} +{%- from tplroot ~ "/map.jinja" import gitea with context %} + +include: + - {{ sls_package_install }} + +gitea_config_file: + file.managed: + - name: {{ gitea.config_path }} + - user: {{ gitea.config_owner }} + - group: {{ gitea.config_group }} + - mode: {{ gitea.config_mode }} + - require: + - sls: {{ sls_package_install }} diff --git a/gitea/config/init.sls b/gitea/config/init.sls new file mode 100644 index 0000000..465ddfe --- /dev/null +++ b/gitea/config/init.sls @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +include: + - .file diff --git a/gitea/defaults.yaml b/gitea/defaults.yaml new file mode 100644 index 0000000..c4afbae --- /dev/null +++ b/gitea/defaults.yaml @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml + +gitea: + pkg_manage_repo: False + pkg_name: 'gitea' + config_path: '/etc/gitea/app.ini' + config_owner: 'gitea' + config_group: 'gitea' + config_mode: 0644 + service_name: 'gitea' + service_enabled: True diff --git a/gitea/init.sls b/gitea/init.sls new file mode 100644 index 0000000..c3b3489 --- /dev/null +++ b/gitea/init.sls @@ -0,0 +1,4 @@ +include: + - .package + - .config + - .service diff --git a/gitea/map.jinja b/gitea/map.jinja new file mode 100644 index 0000000..2dcb924 --- /dev/null +++ b/gitea/map.jinja @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# vim: ft=jinja + +{%- set tplroot = tpldir.split('/')[0] %} +{%- import_yaml tplroot ~ "/defaults.yaml" as default_settings %} +{%- import_yaml tplroot ~ "/osfamilymap.yaml" as osfamilymap %} + +{#- Retrieve the config dict only once #} +{%- set _config = salt['config.get'](tplroot, default={}) %} + +{%- set defaults = salt['grains.filter_by']( + default_settings, + default=tplroot, + merge=salt['grains.filter_by']( + osfamilymap, + grain='os_family', + merge=salt['grains.filter_by']( + _config, + default='lookup' + ) + ) + ) +%} + +{%- set config = salt['grains.filter_by']( + {'defaults': defaults}, + default='defaults', + merge=_config + ) +%} + +{%- set gitea = config %} diff --git a/gitea/osfamilymap.yaml b/gitea/osfamilymap.yaml new file mode 100644 index 0000000..6ee5c02 --- /dev/null +++ b/gitea/osfamilymap.yaml @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml + +FreeBSD: + config_path: '/usr/local/etc/gitea/app.ini' diff --git a/gitea/package/init.sls b/gitea/package/init.sls new file mode 100644 index 0000000..d3e5518 --- /dev/null +++ b/gitea/package/init.sls @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +include: + - .install diff --git a/gitea/package/install.sls b/gitea/package/install.sls new file mode 100644 index 0000000..76b8f33 --- /dev/null +++ b/gitea/package/install.sls @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +{%- set tplroot = tpldir.split('/')[0] %} +{%- from tplroot ~ "/map.jinja" import gitea with context %} +gitea_pkg_install: + pkg.installed: + - name: {{ gitea.pkg_name }} + group.present: + - name: {{ gitea.config_group }} + - system: True + user.present: + - name: {{ gitea.config_owner }} + - gid: {{ gitea.config_group }} + - system: True + + {%- endif %} diff --git a/gitea/service/init.sls b/gitea/service/init.sls new file mode 100644 index 0000000..6fe4d1a --- /dev/null +++ b/gitea/service/init.sls @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +include: + - .running diff --git a/gitea/service/running.sls b/gitea/service/running.sls new file mode 100644 index 0000000..06ce870 --- /dev/null +++ b/gitea/service/running.sls @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +{%- set tplroot = tpldir.split('/')[0] %} +{%- set sls_config_file = tplroot ~ '.config.file' %} +{%- from tplroot ~ "/map.jinja" import gitea with context %} + +include: + - {{ sls_config_file }} + +gitea_service: + service.running: + - name: {{ gitea.service_name }} + - enable: {{ gitea.service_enabled }} + - watch: + - sls: {{ sls_config_file }}