summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@salt-master.nld3.alpin.pw>2019-06-11 19:06:03 +0000
committerroot <root@salt-master.nld3.alpin.pw>2019-06-11 19:06:03 +0000
commitaa09aed813a85af585895f67c1a90e0493d7532f (patch)
tree58d3266af24f1260ab18cf7f3649dd247d47f15c
downloadsalty-aa09aed813a85af585895f67c1a90e0493d7532f.tar.bz2
salty-aa09aed813a85af585895f67c1a90e0493d7532f.tar.xz
initial commitHEADmaster
-rw-r--r--pillar/builders.sls9
-rw-r--r--pillar/common.sls2
-rw-r--r--pillar/roles.sls3
-rw-r--r--pillar/top.sls7
-rw-r--r--salt/builder/init.sls61
-rw-r--r--salt/builder/mqtt-exec.aports-build.conf23
-rw-r--r--salt/common.sls22
-rw-r--r--salt/roles.sls10
-rw-r--r--salt/top.sls8
9 files changed, 145 insertions, 0 deletions
diff --git a/pillar/builders.sls b/pillar/builders.sls
new file mode 100644
index 0000000..93da98f
--- /dev/null
+++ b/pillar/builders.sls
@@ -0,0 +1,9 @@
+builders:
+ aports-repo: git://git.alpinelinux.org/aports.git
+
+ salt-minion.nld3.alpin.pw:
+ branch: master
+ bootstrapped: false
+ salt-test-builder.nld3.alpin.pw:
+ branch: master
+ bootstrapped: false
diff --git a/pillar/common.sls b/pillar/common.sls
new file mode 100644
index 0000000..4124f86
--- /dev/null
+++ b/pillar/common.sls
@@ -0,0 +1,2 @@
+mqtt:
+ host: msg.alpinelinux.org
diff --git a/pillar/roles.sls b/pillar/roles.sls
new file mode 100644
index 0000000..4cea05b
--- /dev/null
+++ b/pillar/roles.sls
@@ -0,0 +1,3 @@
+roles:
+ salt-test-builder.nld3.alpin.pw:
+ - builder
diff --git a/pillar/top.sls b/pillar/top.sls
new file mode 100644
index 0000000..405439f
--- /dev/null
+++ b/pillar/top.sls
@@ -0,0 +1,7 @@
+base:
+ '*':
+ - common
+ - roles
+ 'roles:builder':
+ - match: grain
+ - builders
diff --git a/salt/builder/init.sls b/salt/builder/init.sls
new file mode 100644
index 0000000..f6bc135
--- /dev/null
+++ b/salt/builder/init.sls
@@ -0,0 +1,61 @@
+{% set node_id = grains['id'] %}
+
+{% if not node_id in pillar['builders'] %}
+{{ salt.test.exception("Please add data for node '%s' in pillars/builders.sls" % node_id) }}
+{% endif %}
+
+{% set node_data = pillar['builders'][node_id] %}
+
+dependencies:
+ pkg.installed:
+ - pkgs:
+ - aports-build
+ - git
+ - lua-aports
+ - shadow
+ - abuild
+ - build-base
+ - openssl
+
+buildozer:
+ user.present:
+ - groups:
+ - buildozer
+ - wheel
+ - abuild
+
+/etc/init.d/mqtt-exec.aports-build:
+ file.symlink:
+ - target: mqtt-exec
+
+{% set repo = "/home/buildozer/aports" %}
+{% set repo_remote = pillar['builders']['aports-repo'] %}
+
+aports-repo:
+ git.cloned:
+ - name: {{ repo_remote }}
+ - target: {{ repo }}
+ - user: buildozer
+
+aports-repo-remote:
+ git.config_set:
+ - name: remote.origin.url
+ - repo: {{ repo }}
+ - value: {{ repo_remote }}
+
+/etc/conf.d/mqtt-exec.aports-build:
+ file.managed:
+ - source: salt://builder/mqtt-exec.aports-build.conf
+ - template: jinja
+
+/etc/apk/repositories:
+ file.managed:
+ - contents:
+ {% if node_data['bootstrapped'] %}
+ - /home/buildozer/packages/main
+ - /home/buildozer/packages/community
+ {% else %}
+ - http://dl-cdn.alpinelinux.org/alpine/edge/main
+ - http://dl-cdn.alpinelinux.org/alpine/edge/community
+ {% endif %}
+
diff --git a/salt/builder/mqtt-exec.aports-build.conf b/salt/builder/mqtt-exec.aports-build.conf
new file mode 100644
index 0000000..b71230f
--- /dev/null
+++ b/salt/builder/mqtt-exec.aports-build.conf
@@ -0,0 +1,23 @@
+# what git branch to build
+git_branch=master
+
+# what directory to upload to
+upload_release=edge
+
+# prefix for url where logs can be found
+logurlprefix=http://build-edge-armhf.local/buildlogs
+
+buildrepo="buildrepo -p -l /var/cache/distfiles/buildlogs/$(hostname)"
+# not all builds - keep going and skip failed
+#buildrepo="buildrepo -s -k -p -l /var/cache/distfiles/buildlogs/$(hostname)"
+
+# list of release formats. unset for no release
+# release_formats="iso"
+
+# mqtt-exec params
+exec_command=/usr/bin/aports-build
+exec_user=buildozer
+mqtt_broker="{{ salt['pillar.get']('mqtt:host') }}"
+mqtt_topics="git/aports/$git_branch git/aports/$git_branch/release"
+will_topic="build/$(hostname)"
+will_retain=yes
diff --git a/salt/common.sls b/salt/common.sls
new file mode 100644
index 0000000..4b3dacb
--- /dev/null
+++ b/salt/common.sls
@@ -0,0 +1,22 @@
+salt-minion:
+ service.running:
+ - watch:
+ - file: /etc/salt/minion.d/*.conf
+
+/etc/salt/minion.d/disable_gpu_grains.conf:
+ file.managed:
+ - contents: |
+ enable_gpu_grains: False
+
+install ssh:
+ pkg.installed:
+ - name: openssh
+
+start ssh:
+ service.running:
+ - name: sshd
+ - enable: True
+ - watch:
+ - pkg: openssh
+
+
diff --git a/salt/roles.sls b/salt/roles.sls
new file mode 100644
index 0000000..1c02661
--- /dev/null
+++ b/salt/roles.sls
@@ -0,0 +1,10 @@
+{% set node_id = grains['id'] %}
+
+/etc/salt/minion.d/roles.conf:
+ file.managed:
+ - contents: |
+ grains:
+ roles:
+ {% for role in pillar['roles'][node_id] -%}
+ - {{ role }}
+ {% endfor %}
diff --git a/salt/top.sls b/salt/top.sls
new file mode 100644
index 0000000..7b2eb8a
--- /dev/null
+++ b/salt/top.sls
@@ -0,0 +1,8 @@
+base:
+ '*':
+ - roles
+ - common
+ 'roles:builder':
+ - match: grain
+ - builder
+