From 3848610ac81a89889066498acac256292c4e70ef Mon Sep 17 00:00:00 2001 From: noelmcloughlin Date: Thu, 8 Oct 2020 18:53:52 +0100 Subject: [PATCH] feat(windows): basic kubectl package support --- docs/README.rst | 4 ++-- kubernetes/client/package/clean.sls | 6 ++++++ kubernetes/client/package/install.sls | 7 +++++++ kubernetes/osfamilymap.yaml | 6 ++++-- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/docs/README.rst b/docs/README.rst index 6eead463..684d109f 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -3,7 +3,7 @@ kubernetes-formula ================== -Highly extensible formula to manage kubernetes on MacOS and GNU/Linux. Currently supports: +Highly extensible formula to manage kubernetes on MacOS, Windows, and GNU/Linux. Currently supports: * `server` (https://kubernetes.io) * `node` (https://kubernetes.io) @@ -65,7 +65,7 @@ The default `kubernetes.devlibs` state includes the following: :scale: 100% :target: https://github.com/semantic-release/semantic-release -A SaltStack formula for kubernetes on MacOS and GNU/Linux. +A SaltStack formula for kubernetes on MacOS and GNU/Linux. Windows is work in progress. .. contents:: **Table of Contents** :depth: 1 diff --git a/kubernetes/client/package/clean.sls b/kubernetes/client/package/clean.sls index c96bc9fb..6bfe97ad 100644 --- a/kubernetes/client/package/clean.sls +++ b/kubernetes/client/package/clean.sls @@ -31,5 +31,11 @@ include: - test -x /usr/local/bin/brew - grew list | grep ^kubectl$ + {%- elif grains.os_family == 'Windows' %} + +{{ formula }}-client-package-clean-choco: + chocolatey.uninstalled: + - name: {{ d.client.pkg.name }} + {%- endif %} {%- endif %} diff --git a/kubernetes/client/package/install.sls b/kubernetes/client/package/install.sls index a0b09e43..eab727b7 100644 --- a/kubernetes/client/package/install.sls +++ b/kubernetes/client/package/install.sls @@ -42,5 +42,12 @@ include: - runas: {{ d.identity.rootuser }} - unless: test -x /usr/local/bin/kubectl # if binary is missing + {%- elif grains.kernel|lower in ('Windows',) %} + +{{ formula }}-client-package-install-choco: + chocolatey.installed: + - name: {{ d.client.pkg.name }} + - force: True + {%- endif %} {%- endif %} diff --git a/kubernetes/osfamilymap.yaml b/kubernetes/osfamilymap.yaml index bff3775d..9e4299b9 100644 --- a/kubernetes/osfamilymap.yaml +++ b/kubernetes/osfamilymap.yaml @@ -100,11 +100,13 @@ Windows: binary: C:\\kubernetes source: C:\\temp\\kubernetes client: + version: 1.19.0 check: systeminfo pkg: - name: kubectl.exe + name: kubernetes-cli # choco + use_upstream: package binary: - source_hash: '974d351e7e0ad1e1ed0901770d65188e8d4c4cdd2494474d14a2b2c325751293' + source_hash: '6ec32a8a62b69363a524c4f8db765ff4bd16ea7e5b0eb04aa5a667f8653eda18c357a97513d9e12f0ba1612516acb150deffb6e3608633c62b97a15b6efa7cc0' node: pkg: use_upstream: archive