Added a basic setup with package install, config, and service management

This commit is contained in:
Gregory Ballantine 2023-03-21 12:56:17 -04:00
parent ab178945d1
commit fe72021f00
12 changed files with 139 additions and 2 deletions

View File

@ -1,4 +1,4 @@
Copyright (c) <year> <owner>
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:

View File

@ -1,3 +1,21 @@
# gitea-formula
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.

18
gitea/config/file.sls Normal file
View File

@ -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 }}

5
gitea/config/init.sls Normal file
View File

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
include:
- .file

12
gitea/defaults.yaml Normal file
View File

@ -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

4
gitea/init.sls Normal file
View File

@ -0,0 +1,4 @@
include:
- .package
- .config
- .service

32
gitea/map.jinja Normal file
View File

@ -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 %}

5
gitea/osfamilymap.yaml Normal file
View File

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
FreeBSD:
config_path: '/usr/local/etc/gitea/app.ini'

5
gitea/package/init.sls Normal file
View File

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
include:
- .install

17
gitea/package/install.sls Normal file
View File

@ -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 %}

5
gitea/service/init.sls Normal file
View File

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
include:
- .running

16
gitea/service/running.sls Normal file
View File

@ -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 }}