Skip to content

Commit

Permalink
feat(kubecli): add kubeadm/kubelet support
Browse files Browse the repository at this point in the history
  • Loading branch information
noelmcloughlin committed Jul 6, 2020
1 parent 936ae46 commit c0159c3
Show file tree
Hide file tree
Showing 32 changed files with 282 additions and 126 deletions.
22 changes: 22 additions & 0 deletions docs/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Formula to manage kubernetes on MacOS and GNU/Linux. Currently supports:
* `devspace`
* `k3s`
* `kubectl`
* `kubeadm`
* `kubelet`
* `minikube`
* `kudo`

Expand Down Expand Up @@ -72,6 +74,26 @@ This state installs kubernetes-cli only.

This state uninstalls kubernetes-cli only.

``kubernetes.kubeadm``
^^^^^^^^^^^^^^^^^^^^^^

This state installs kubeadm on supported GNU/Linux only.

``kubernetes.kubeadm.clean``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This state uninstalls kubeadm on supported GNU/Linux only.

``kubernetes.kubelet``
^^^^^^^^^^^^^^^^^^^^^^

This state installs kubelet on supported GNU/Linux only.

``kubernetes.kubelet.clean``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This state uninstalls kublet on supported GNU/Linux only.

``kubernetes.minikube``
^^^^^^^^^^^^^^^^^^^^^^^

Expand Down
2 changes: 2 additions & 0 deletions kubernetes/clean.sls
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@ include:
- .minikube.clean
- .devspace.clean
- .kubectl.clean
- .kubeadm.clean
- .kubelet.clean
- .k3s.clean
- .kudo.clean
49 changes: 22 additions & 27 deletions kubernetes/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,30 @@
kubernetes:
formula: kubernetes
supported:
- kubectl
- minikube
- devspace
- kubeadm
- kubectl
- kubelet
- k3s
- kudo
- minikube
identity:
rootuser: root
rootgroup: root
arch: ''
dir:
binary: /usr/local
tmp: /tmp/kubernetes-tmp
pkg:
deps:
- curl
repo:
humanname: kubernetes
name: kubernetes
comments:
- installed by salt
enabled: 1
gpgcheck: 1

kubectl:
version: 1.18.2
Expand All @@ -28,22 +40,20 @@ kubernetes:
name: kubectl
use_upstream_repo: false
use_upstream_binary: true
deps:
- curl
repo:
humanname: kubernetes
name: kubernetes
comments:
- installed by salt
enabled: 1
gpgcheck: 1
binary:
uri: https://storage.googleapis.com/kubernetes-release/release
name: kubectl
source: null # set in map.jinja
source_hash: 6ea8261b503c6c63d616878837dc70b758d4a3aeb9996ade8e83b51aedac9698
trim_output: true

kubeadm:
pkg:
name: kubeadm
use_upstream_repo: true
kubelet:
pkg:
name: kubelet
use_upstream_repo: true
minikube:
version: 1.9.2
config_file: /etc/default/minikube.ini
Expand All @@ -57,15 +67,6 @@ kubernetes:
name: minikube
use_upstream_repo: false
use_upstream_binary: true
deps:
- curl
repo:
humanname: kubernetes
name: kubernetes
comments:
- installed by salt
enabled: 1
gpgcheck: 1
binary:
name: minikube
uri: https://github.com/kubernetes/minikube/releases/download
Expand All @@ -84,8 +85,6 @@ kubernetes:
name: devspace
use_upstream_repo: false
use_upstream_binary: true
deps:
- curl
binary:
uri: https://github.com/devspace-cloud/devspace/releases/download
name: devspace
Expand All @@ -98,8 +97,6 @@ kubernetes:
pkg:
use_upstream_binary: false
use_upstream_script: true
deps:
- curl
binary:
uri: https://github.com/rancher/k3s/releases/download
name: k3s
Expand Down Expand Up @@ -146,8 +143,6 @@ kubernetes:
name: kubectl-kudo
use_upstream_binary: true
use_upstream_package: false
deps:
- curl
binary:
uri: https://github.com/kudobuilder/kudo/releases/download
name: kubectl-kudo
Expand Down
2 changes: 1 addition & 1 deletion kubernetes/devspace/binary/install.sls
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{{ formula }}-devspace-binary-install:
pkg.installed:
- names: {{ d.devspace.pkg.deps|json }}
- names: {{ d.pkg.deps|json }}
file.directory:
- name: {{ d.devspace.pkg.binary.name }}/bin
- user: {{ d.identity.rootuser }}
Expand Down
2 changes: 2 additions & 0 deletions kubernetes/init.sls
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

include:
- .kubectl
- .kubeadm
- .kubelet
- .minikube
- .devspace
- .k3s
Expand Down
2 changes: 1 addition & 1 deletion kubernetes/k3s/binary/install.sls
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{{ formula }}-k3s-binary-prerequisites:
pkg.installed:
- names: {{ d.k3s.pkg.deps|json }}
- names: {{ d.pkg.deps|json }}
file.directory:
- name: {{ d.k3s.pkg.binary.name }}/bin
- user: {{ d.identity.rootuser }}
Expand Down
4 changes: 2 additions & 2 deletions kubernetes/k3s/script/install.sls
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
{{ formula }}-k3s-script-install-prerequisites:
pkg.installed:
- names: {{ d.k3s.pkg.deps|json }}
- names: {{ d.pkg.deps|json }}
{%- if grains.os_family in ('CentOS',) and d.k3s.pkg.deps_url %}
cmd.run:
- names:
{%- for pkg in d.k3s.pkg.deps_url %}
{%- for pkg in d.pkg.deps_url %}
- yum install -y {{ pkg }}
{%- endfor %}
- require_in:
Expand Down
5 changes: 5 additions & 0 deletions kubernetes/kubeadm/clean.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

include:
- .package.clean
5 changes: 5 additions & 0 deletions kubernetes/kubeadm/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

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

{%- set tplroot = tpldir.split('/')[0] %}
{%- from tplroot ~ "/map.jinja" import data as d with context %}
{%- set formula = d.formula %}
{%- if grains.kernel|lower in ('linux',) %}
{%- if d.kubeadm.pkg.use_upstream_repo %}
{%- set sls_repo_clean = tplroot ~ '.package.repo.clean' %}
include:
- {{ sls_repo_clean }}
{%- endif %}
{{ formula }}-kubeadm-package-clean-pkg:
pkg.removed:
- name: {{ d.kubeadm.pkg.name }}
- reload_modules: true
{%- if d.kubeadm.pkg.use_upstream_repo %}
- require:
- pkgrepo: {{ formula }}-package-repo-absent
{%- endif %}
{%- else %}
{{ formula }}-kubeadm-package-clean-other:
test.show_notification:
- text: |
The kubeadm package is unavailable for {{ salt['grains.get']('finger', grains.os_family) }}
{%- endif %}
File renamed without changes.
36 changes: 36 additions & 0 deletions kubernetes/kubeadm/package/install.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

{%- set tplroot = tpldir.split('/')[0] %}
{%- from tplroot ~ "/map.jinja" import data as d with context %}
{%- set formula = d.formula %}
{%- if grains.kernel|lower in ('linux',) %}
{%- if d.kubeadm.pkg.use_upstream_repo %}
{%- set sls_repo_install = tplroot ~ '.package.repo.install' %}
include:
- {{ sls_repo_install }}
{%- endif %}
{{ formula }}-kubeadm-package-install-deps:
pkg.installed:
- names: {{ d.pkg.deps|json }}
{{ formula }}-kubeadm-package-install-pkg:
pkg.installed:
- name: {{ d.kubeadm.pkg.name }}
- runas: {{ d.identity.rootuser }}
- reload_modules: true
{%- if d.kubeadm.pkg.use_upstream_repo %}
- require:
- pkgrepo: {{ formula }}-package-repo-managed
{%- endif %}
{%- else %}
{{ formula }}-kubeadm-package-install-other:
test.show_notification:
- text: |
The kubeadm package is unavailable for {{ salt['grains.get']('finger', grains.os_family) }}
{%- endif %}
2 changes: 1 addition & 1 deletion kubernetes/kubectl/binary/install.sls
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{{ formula }}-kubectl-binary-install:
pkg.installed:
- names: {{ d.kubectl.pkg.deps|json }}
- names: {{ d.pkg.deps|json }}
file.directory:
- name: {{ d.kubectl.pkg.binary.name }}/bin
- user: {{ d.identity.rootuser }}
Expand Down
5 changes: 3 additions & 2 deletions kubernetes/kubectl/package/clean.sls
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
{%- if grains.kernel|lower in ('linux',) %}
{%- if d.kubectl.pkg.use_upstream_repo %}
{%- set sls_repo_clean = tplroot ~ '.package.repo.clean' %}
include:
- .repo.clean
- {{ sls_repo_clean }}
{%- endif %}
{{ formula }}-kubectl-package-clean-pkg:
Expand All @@ -17,7 +18,7 @@ include:
- reload_modules: true
{%- if d.kubectl.pkg.use_upstream_repo %}
- require:
- pkgrepo: {{ formula }}-kubectl-package-repo-absent
- pkgrepo: {{ formula }}-package-repo-absent
{%- endif %}
{%- elif grains.os_family == 'MacOS' %}
Expand Down
9 changes: 5 additions & 4 deletions kubernetes/kubectl/package/install.sls
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
{%- if grains.kernel|lower in ('linux',) %}
{%- if d.kubectl.pkg.use_upstream_repo %}
{%- set sls_repo_install = tplroot ~ '.package.repo.install' %}
include:
- .repo
- {{ sls_repo_install }}
{%- endif %}
{{ formula }}-kubectl-package-install-deps:
pkg.installed:
- names: {{ d.kubectl.pkg.deps|json }}
- names: {{ d.pkg.deps|json }}
{{ formula }}-kubectl-package-install-pkg:
pkg.installed:
Expand All @@ -22,7 +23,7 @@ include:
- reload_modules: true
{%- if d.kubectl.pkg.use_upstream_repo %}
- require:
- pkgrepo: {{ formula }}-kubectl-package-repo-managed
- pkgrepo: {{ formula }}-package-repo-managed
{%- endif %}
{%- elif grains.os_family == 'MacOS' %}
Expand Down Expand Up @@ -50,6 +51,6 @@ include:
- name: snap install {{ d.kubectl.pkg.name }} --classic
- onlyif: test -x /usr/bin/snap || test -x /usr/local/bin/snap
- require:
- service: d.kubectl-package-install-cmd-run-snap
- service: {{ formula }}-kubectl-package-install-snap
{%- endif %}
5 changes: 5 additions & 0 deletions kubernetes/kubelet/clean.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

include:
- .package.clean
5 changes: 5 additions & 0 deletions kubernetes/kubelet/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

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

{%- set tplroot = tpldir.split('/')[0] %}
{%- from tplroot ~ "/map.jinja" import data as d with context %}
{%- set formula = d.formula %}
{%- if grains.kernel|lower in ('linux',) %}
{%- if d.kubelet.pkg.use_upstream_repo %}
{%- set sls_repo_clean = tplroot ~ '.package.repo.clean' %}
include:
- {{ sls_repo_clean }}
{%- endif %}
{{ formula }}-kubelet-package-clean-pkg:
pkg.removed:
- name: {{ d.kubelet.pkg.name }}
- reload_modules: true
{%- if d.kubelet.pkg.use_upstream_repo %}
- require:
- pkgrepo: {{ formula }}-package-repo-absent
{%- endif %}
{%- else %}
{{ formula }}-kubelet-package-clean-other:
test.show_notification:
- text: |
The kubelet package is unavailable for {{ salt['grains.get']('finger', grains.os_family) }}
{%- endif %}
File renamed without changes.
Loading

0 comments on commit c0159c3

Please sign in to comment.