Skip to content

Commit

Permalink
Fix #545: Add salt states to install kubelet
Browse files Browse the repository at this point in the history
  • Loading branch information
TeddyAndrieux committed Feb 6, 2019
1 parent 12d64c4 commit c43db5a
Show file tree
Hide file tree
Showing 17 changed files with 159 additions and 0 deletions.
4 changes: 4 additions & 0 deletions pillar/repositories.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Repositories informations
repo:
# Configure online repositories
online_mode: True
3 changes: 3 additions & 0 deletions pillar/top.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
base:
'*':
- repositories
9 changes: 9 additions & 0 deletions salt/containerd/configured.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
include:
- .installed

Start and enable containerd:
service.running:
- name: containerd
- enable: True
- require:
- pkg: Install containerd
2 changes: 2 additions & 0 deletions salt/containerd/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include:
- .configured
24 changes: 24 additions & 0 deletions salt/containerd/installed.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{%- from "containerd/map.jinja" import containerd with context %}
{%- from "repo/map.jinja" import repo with context %}
include:
- repo
- runc
Install containerd:
pkg.installed:
- name: containerd
- version: {{ containerd.version }}
- fromrepo: {{ repo.containerd.name }}
- require:
- pkgrepo: Configure Kubernetes repository
- pkg: Install runc
Update container-selinux:
pkg.installed:
- name: container-selinux
- sources:
# TODO: Maybe something to specify link/version
- container-selinux: https://buildlogs.centos.org/centos/7/virt/x86_64/container/container-selinux-2.77-1.el7.noarch.rpm
- require:
- pkg: Install containerd
5 changes: 5 additions & 0 deletions salt/containerd/map.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{%- set containerd = salt['grains.filter_by']({
'Linux': {
'version': 'latest'
}
}, grain='kernel', merge=salt['pillar.get']('containerd')) %}
2 changes: 2 additions & 0 deletions salt/kubelet/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include:
- .installed
21 changes: 21 additions & 0 deletions salt/kubelet/installed.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{%- from "kubelet/map.jinja" import kubelet with context %}
{%- from "repo/map.jinja" import repo with context %}
include:
- repo
# TODO: Maybe not needed in offline because embedded in the kubernetes repository
Install kubelet dependencies:
pkg.installed:
- pkgs:
- ebtables
- socat
- conntrack-tools
Install kubelet:
pkg.installed:
- name: kubelet
- version: {{ kubelet.version }}
- fromrepo: {{ repo.kubernetes.name }}
- require:
- pkgrepo: Configure Kubernetes repository
5 changes: 5 additions & 0 deletions salt/kubelet/map.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{%- set kubelet = salt['grains.filter_by']({
'Linux': {
'version': 'latest'
}
}, grain='kernel', merge=salt['pillar.get']('kubelet')) %}
8 changes: 8 additions & 0 deletions salt/repo/configured.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{%- from "repo/map.jinja" import repo with context %}
include:
{%- if repo.online_mode %}
- .online
{%- else %}
- .offline
{%- endif %}
2 changes: 2 additions & 0 deletions salt/repo/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include:
- .configured
18 changes: 18 additions & 0 deletions salt/repo/map.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{%- set defaults = salt['grains.filter_by']({
'Linux': {
'online_mode': True
}
}, grain='kernel', merge=salt['pillar.get']('repo')) %}

{%- set repo = salt['grains.filter_by']({
'RedHat': {
'containerd': {
'name': 'epel'
},
'kubernetes': {
'name': 'kubernetes'
}
},
'Debian': {
}
}, merge=defaults) %}
3 changes: 3 additions & 0 deletions salt/repo/offline.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
offline mode not yet implemented:
test.fail_without_changes:
- failhard: True
36 changes: 36 additions & 0 deletions salt/repo/online.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{%- from "repo/map.jinja" import repo with context %}
{%- if grains["os_family"] == "RedHat" %}
Configure EPEL repository:
pkg.installed:
{%- if grains["os"] == "CentOs" %}
- name: epel-release
{%- else %}
- sources:
- epel-release: https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ grains['osmajorrelease'] }}.noarch.rpm
{%- endif %}
{%- if grains["os"] == "RedHat" %}
check that the system is registered:
cmd.run:
- name: subscription-manager status
{%- endif %}
Configure Kubernetes repository:
pkgrepo.managed:
- name: {{ repo.kubernetes.name }}
- humanname: Kubernetes
- baseurl: "https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64"
- gpgcheck: 1
- repo_gpg_check: 1
- gpgkey: "https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg"
- enabled: 0
{%- else %}
{{ grains["os_family"] }} not supported, only RedHat based supported:
test.fail_without_changes:
- failhard: True
{%- endif %}
2 changes: 2 additions & 0 deletions salt/runc/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include:
- .installed
10 changes: 10 additions & 0 deletions salt/runc/installed.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{% from "runc/map.jinja" import runc with context %}
include:
- repo
# TODO: Add a fromrepo for offline
Install runc:
pkg.installed:
- name: runc
- version: {{ runc.version }}
5 changes: 5 additions & 0 deletions salt/runc/map.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{%- set runc = salt['grains.filter_by']({
'Linux': {
'version': 'latest'
}
}, grain='kernel', merge=salt['pillar.get']('runc')) %}

0 comments on commit c43db5a

Please sign in to comment.