Skip to content

Commit

Permalink
feat(grafana-formula): based on template-formula
Browse files Browse the repository at this point in the history
  • Loading branch information
alxwr committed May 6, 2019
0 parents commit bd466a1
Show file tree
Hide file tree
Showing 38 changed files with 1,024 additions and 0 deletions.
106 changes: 106 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
# Usually these files are written by a python script from a packager
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.kitchen
.kitchen.local.yml

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# dotenv
.env

# virtualenv
.venv
venv/
ENV/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# copied `.md` files used for conversion to `.rst` using `m2r`
docs/*.md
61 changes: 61 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
stages:
- test
- commitlint
- name: release
if: branch = master AND type != pull_request

sudo: required
cache: bundler
language: ruby

services:
- docker

before_install:
- bundle install

# Make sure the instances listed below match up with
# the `platforms` defined in `kitchen.yml`
env:
matrix:
- INSTANCE: default-debian-9-2019-2-py3
- INSTANCE: default-ubuntu-1804-2019-2-py3
- INSTANCE: default-ubuntu-1604-2018-3-py2
- INSTANCE: default-ubuntu-1604-2017-7-py2

script:
- bundle exec kitchen verify ${INSTANCE}

jobs:
include:
# Define the commitlint stage
- stage: commitlint
language: node_js
node_js: lts/*
before_install: skip
script:
- npm install @commitlint/config-conventional -D
- npm install @commitlint/travis-cli -D
- commitlint-travis
# Define the release stage that runs semantic-release
- stage: release
language: node_js
node_js: lts/*
before_install: skip
script:
# Update `AUTHORS.md`
- export MAINTAINER_TOKEN=${GH_TOKEN}
- go get github.com/alxwr/maintainer
- maintainer contributor

# Install all dependencies required for `semantic-release`
- npm install @semantic-release/changelog@3 -D
- npm install @semantic-release/exec@3 -D
- npm install @semantic-release/git@7 -D
deploy:
provider: script
skip_cleanup: true
script:
# Run `semantic-release`
- npx semantic-release@15

Empty file added AUTHORS.md
Empty file.
Empty file added CHANGELOG.md
Empty file.
9 changes: 9 additions & 0 deletions FORMULA
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: grafana
os: FreeBSD
os_family: FreeBSD
version: 0.0.1
release: 1
minimum_version: 2016.11
summary: Grafana formula
description: Formula to set up Grafana
top_level_dir: grafana
6 changes: 6 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source "https://rubygems.org"

gem 'kitchen-docker', '>= 2.9'
gem 'kitchen-salt', '>= 0.5.0'
gem 'kitchen-inspec', '>= 1.1'

13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Copyright (c) 2019 Salt Stack Formulas

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
3 changes: 3 additions & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
extends: ['@commitlint/config-conventional'],
};
23 changes: 23 additions & 0 deletions docs/AUTHORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
.. role:: raw-html-m2r(raw)
:format: html


Authors
=======

This list is sorted by the number of commits per contributor in *descending* order.

.. list-table::
:header-rows: 1

* - Avatar
- Contributor
- Contributions
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars0.githubusercontent.com/u/1920805?v=4' width='36' height='36' alt='@alxwr'>`
- `@alxwr <https://github.com/alxwr>`_
- 6


----

Auto generated by a `forked version <https://github.com/myii/maintainer>`_ of `gaocegege/maintainer <https://github.com/gaocegege/maintainer>`_ on 2019-04-30.
Empty file added docs/CHANGELOG.rst
Empty file.
93 changes: 93 additions & 0 deletions docs/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
.. _readme:

grafana-formula
================

|img_travis| |img_sr|

.. |img_travis| image:: https://travis-ci.com/saltstack-formulas/grafana-formula.svg?branch=master
:alt: Travis CI Build Status
:scale: 100%
:target: https://travis-ci.com/saltstack-formulas/grafana-formula
.. |img_sr| image:: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
:alt: Semantic Release
:scale: 100%
:target: https://github.com/semantic-release/semantic-release
Manage Grafana.

.. contents:: **Table of Contents**

General notes
-------------

See the full `SaltStack Formulas installation and usage instructions
<https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>`_.

If you want to use this formula, please pay attention to the ``FORMULA`` file and/or ``git tag``,
which contains the currently released version. This formula is versioned according to `Semantic Versioning <http://semver.org/>`_.

See `Formula Versioning Section <https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#versioning>`_ for more details.

Contributing to this repo
-------------------------

Please see https://github.com/saltstack-formulas/grafana-formula/blob/master/docs/CONTRIBUTING.rst

Available states
----------------

.. contents::
:local:

``grafana``
^^^^^^^^^^^^

*Meta-state (This is a state that includes other states)*.

This installs the grafana package,
manages the grafana configuration file and then
starts the associated grafana service.

``grafana.package``
^^^^^^^^^^^^^^^^^^^^

This state will install the grafana package only.

``grafana.config``
^^^^^^^^^^^^^^^^^^^

This state will configure the grafana service and has a dependency on ``grafana.install``
via include list.

``grafana.service``
^^^^^^^^^^^^^^^^^^^^

This state will start the grafana service and has a dependency on ``grafana.config``
via include list.

``grafana.clean``
^^^^^^^^^^^^^^^^^^

*Meta-state (This is a state that includes other states)*.

this state will undo everything performed in the ``grafana`` meta-state in reverse order, i.e.
stops the service,
removes the configuration file and
then uninstalls the package.

``grafana.service.clean``
^^^^^^^^^^^^^^^^^^^^^^^^^^

This state will stop the grafana service and disable it at boot time.

``grafana.config.clean``
^^^^^^^^^^^^^^^^^^^^^^^^^

This state will remove the configuration of the grafana service and has a
dependency on ``grafana.service.clean`` via include list.

``grafana.package.clean``
^^^^^^^^^^^^^^^^^^^^^^^^^^

This state will remove the grafana package and has a depency on
``grafana.config.clean`` via include list.
7 changes: 7 additions & 0 deletions grafana/clean.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

include:
- .service.clean
- .config.clean
- .package.clean
16 changes: 16 additions & 0 deletions grafana/config/clean.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

{#- Get the `tplroot` from `tpldir` #}
{%- set tplroot = tpldir.split('/')[0] %}
{%- set sls_service_clean = tplroot ~ '.service.clean' %}
{%- from tplroot ~ "/map.jinja" import grafana with context %}
include:
- {{ sls_service_clean }}
grafana-config-clean-file-absent:
file.absent:
- name: {{ grafana.config_file }}
- require:
- sls: {{ sls_service_clean }}
27 changes: 27 additions & 0 deletions grafana/config/file.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

{#- Get the `tplroot` from `tpldir` #}
{%- set tplroot = tpldir.split('/')[0] %}
{%- set sls_package_install = tplroot ~ '.package.install' %}
{%- from tplroot ~ "/map.jinja" import grafana with context %}
{%- from tplroot ~ "/libtofs.jinja" import files_switch with context %}
include:
- {{ sls_package_install }}
grafana-config-file-file-managed:
file.managed:
- name: {{ grafana.config_file }}
- source: {{ files_switch(['grafana.ini.jinja'],
lookup='grafana-config-file-file-managed'
)
}}
- mode: 640
- user: root
- group: {{ grafana.group }}
- template: jinja
- context:
config: {{ grafana.config|json }}
- require:
- sls: {{ sls_package_install }}
5 changes: 5 additions & 0 deletions grafana/config/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

include:
- .file
13 changes: 13 additions & 0 deletions grafana/defaults.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
grafana:
pkg: grafana
pkgrepo: False
group: grafana
config_file: /etc/grafana/grafana.ini
config: {}
service:
name: grafana-server
user: grafana
group: grafana
Loading

0 comments on commit bd466a1

Please sign in to comment.