Skip to content

Commit

Permalink
update distro dependencies and README (verified on Ubuntu)
Browse files Browse the repository at this point in the history
  • Loading branch information
noelmcloughlin authored and Noel McLoughlin committed Jun 11, 2018
1 parent f78dfc2 commit d4fd4f4
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 50 deletions.
88 changes: 64 additions & 24 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,12 @@ Available states
``deepsea``
------------

Meta-state runs all other states (except remove).

Afterwards, consult official DeepSea documentation at <https://github.com/SUSE/DeepSea.git> and <https://www.suse.com/documentation/suse-enterprise-storage-5/singlehtml/book_storage_deployment/book_storage_deployment.html#ses.deployment>
Meta-state runs all other states (except packages & remove). Afterwards, consult official DeepSea documentation at <https://github.com/SUSE/DeepSea.git> and <https://www.suse.com/documentation/suse-enterprise-storage-5/singlehtml/book_storage_deployment/book_storage_deployment.html#ses.deployment>

``deepsea.install``
-------------------

Install DeepSea software on GNU Linux. Support git repo (default) or package repo (suse only). Includes the `config` and `service` states.
Install DeepSea software on GNU Linux. Support git repo (default) or package repo (suse only). Includes `config` and `service` states.

``deepsea.config``
-----------------
Expand All @@ -42,73 +40,115 @@ Enable services needed by DeepSea, and disable services incompatible with DeepSe

Basic remove state (suse only)

``deepsea.packages``
-----------------

DeepSea should handle its own package dependencies so this state is disabled by default. Set `deepsea:packages:managed: True` enables package mangement in this formula.



Testing
================

DeepSea deployment verification on GNU Linux: Ubuntu, Centos, and Fedora with python2.

TODO: DeepSea runtime verification (ensure deepsea commands work).
DeepSea deployment verification on GNU Linux: Ubuntu, Centos, and Fedora on python2/3.


Integration with other formulae
===============================

The following formulae pillars support DeepSea-
The following formulae pillars could be useful-

`firewalld-formula <https://github.com/saltstack-formulas/firewalld-formula>`_
`firewalld-formula
<https://github.com/saltstack-formulas/firewalld-formula>`_

.. code-block:: yaml
- firewalld
extends:
firewalld:
enabled: True
services:
deepsea-formula:
short: deepsea
description: DeepSea firewall rules
saltstack:
short: salt
description: SaltStack rules
ports:
tcp:
- 4505
- 4506
udp:
- 4505
- 4506
ceph:
short: ceph
description: Ceph firewall rules
ports:
tcp:
- 6789
- 6800:6810
zones:
public:
short: Public
services:
- deepsea
- http
- https
- ssh
- ntp
- saltstack
- ceph
{%- if grains.os == 'Fedora' %}
FedoraWorkstation:
short: FedoraWorkstation
services:
- http
- https
- ssh
- ntp
- saltstack
- ceph
{%- endif %}
`packages-formula
<https://github.com/saltstack-formulas/packages-formula>`_

.. code-block:: bash
- packages
extends:
packages:
# Should this formula manage package dependencies? True means yes. False no.
# Ideally we let `DeepSea` (or `packages-formula`) manage packages.
managed: False
pips:
wanted:
- tox
- click
pkgs:
unwanted:
- unattended-upgrades {# recommendation #}
- unattended-upgrades
wanted:
- python-setuptools
- salt-api
- salt-api
- git
- make
{% if grains.os_family == 'Debian' %}
{% if grains.os_family in ('Debian', 'Suse',) %}
- python-pip
{% elif grains.os_family == 'RedHat' %}
{% elif grains.os_family == 'RedHat' %}
- python2-pip
- python-click
- python-tox
{% elif grains.os_family == 'Suse' %}
- python-pip
{% elif grains.os_family == 'Arch' %}
{% elif grains.os_family == 'Arch' %}
- python2-pip
{% endif %}
{% endif %}
`ceph-formula
<https://github.com/saltstack-formulas/ceph-formula>`_
.. code-block:: bash
- ceph.repo
extends:
ceph:
use_upstream_repo: true
11 changes: 8 additions & 3 deletions deepsea/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,16 @@ deepsea:
dev_env: True

packages:
# Set True if https://github.com/saltstack-formulas/packages-formula is used/preferred
formula: False
# Should this formula manage package dependencies? True means yes; False NO.
# Ideally `DeepSea` (or `packages-formula`) should handle package dependencies.
managed: False
required:
- python-setuptools
- python3-boto
- python3-rados
- lsscsi
- jq
- pciutils
- salt-api
- git
- make

19 changes: 6 additions & 13 deletions deepsea/install.sls
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,11 @@
include:
- deepsea.config
- deepsea.service

deepsea-requirements:
{% if not deepsea.packages.formula %}
pkg.installed:
- pkgs:
- make
{% for pkg in deepsea.packages.required %}
- {{ pkg }}
{% endfor %}
- require_in:
- file: deepsea-requirements
{% if deepsea.packages.managed %}
- deepsea.packages
{% endif %}

deepsea-directories:
file.directory:
- names:
- /etc/salt/master.d
Expand All @@ -42,7 +35,7 @@ deepsea-software:
- gpgcheck: 1
- gpgautoimport: True
- require:
- file: deepsea-requirements
- file: deepsea-directories
pkg.installed:
- pkgs: {{ deepsea.packages.required }}
- require:
Expand Down Expand Up @@ -72,7 +65,7 @@ deepsea-software:
- cwd: {{ deepsea.tmpdir }}/DeepSea
{% endif %}
- require:
- file: deepsea-requirements
- file: deepsea-directories
- pkgrepo: deepsea-software
- require_in:
- file: deepsea-config-global
23 changes: 13 additions & 10 deletions deepsea/osfamilymap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,30 @@ Suse:
dead:
- apparmor
- SuSEfirewall2
packages:
required:
- gptfdisk
- iperf
- lsof

Debian:
packages:
# Set True if https://github.com/saltstack-formulas/packages-formula is used/preferred
formula: False
required:
- python-setuptools
- python-click
- python-tox
- salt-api
- gdisk
- iperf

RedHat:
services:
running:
- ntpd
- salt-minion
packages:
# Set True if https://github.com/saltstack-formulas/packages-formula is used/preferred
formula: False
required:
- python-setuptools
- python-click
- python-tox
- salt-api
- python-netaddr
- iperf3
- gdisk
- lshw
- hwinfo

16 changes: 16 additions & 0 deletions deepsea/packages.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml

{% from "deepsea/map.jinja" import deepsea with context -%}

{% if deepsea.packages.managed %}

deepsea-packages-common-dependencies:
pkg.installed:
- pkgs:
- make
{% for pkg in deepsea.packages.required %}
- {{ pkg }}
{% endfor %}

{% endif %}

0 comments on commit d4fd4f4

Please sign in to comment.