From 82c28bffdcba5e8f31940cf3bf8611527a19ce16 Mon Sep 17 00:00:00 2001 From: Harald Fielker Date: Fri, 27 Oct 2023 17:10:09 +0200 Subject: [PATCH 1/8] initial galaxy.yml --- galaxy.yml | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 galaxy.yml diff --git a/galaxy.yml b/galaxy.yml new file mode 100644 index 0000000..0c0946f --- /dev/null +++ b/galaxy.yml @@ -0,0 +1,69 @@ +### REQUIRED +# The namespace of the collection. This can be a company/brand/organization or product namespace under which all +# content lives. May only contain alphanumeric lowercase characters and underscores. Namespaces cannot start with +# underscores or numbers and cannot contain consecutive underscores +namespace: techno_tim + +# The name of the collection. Has the same character restrictions as 'namespace' +name: k3s_ansible + +# The version of the collection. Must be compatible with semantic versioning +version: 1.0.0 + +# The path to the Markdown (.md) readme file. This path is relative to the root of the collection +readme: README.md + +# A list of the collection's content authors. Can be just the name or in the format 'Full Name (url) +# @nicks:irc/im.site#channel' +authors: +- your name + + +### OPTIONAL but strongly recommended +# A short summary description of the collection +description: your collection description + +# Either a single license or a list of licenses for content inside of a collection. Ansible Galaxy currently only +# accepts L(SPDX,https://spdx.org/licenses/) licenses. This key is mutually exclusive with 'license_file' +license: +- Apache-2.0 + +# The path to the license file for the collection. This path is relative to the root of the collection. This key is +# mutually exclusive with 'license' +license_file: '' + +# A list of tags you want to associate with the collection for indexing/searching. A tag name has the same character +# requirements as 'namespace' and 'name' +tags: [] + +# Collections that this collection requires to be installed for it to be usable. The key of the dict is the +# collection label 'namespace.name'. The value is a version range +# L(specifiers,https://python-semanticversion.readthedocs.io/en/latest/#requirement-specification). Multiple version +# range specifiers can be set and are separated by ',' +dependencies: {} + +# The URL of the originating SCM repository +repository: https://github.com/techno-tim/k3s-ansible + +# The URL to any online docs +documentation: https://github.com/techno-tim/k3s-ansible + +# The URL to the homepage of the collection/project +homepage: https://www.youtube.com/watch?v=CbkEWcUZ7zM + +# The URL to the collection issue tracker +issues: https://github.com/techno-tim/k3s-ansible/issues + +# A list of file glob-like patterns used to filter any files or directories that should not be included in the build +# artifact. A pattern is matched from the relative path of the file or directory of the collection directory. This +# uses 'fnmatch' to match the files or directories. Some directories and files like 'galaxy.yml', '*.pyc', '*.retry', +# and '.git' are always filtered. Mutually exclusive with 'manifest' +build_ignore: [] + +# A dict controlling use of manifest directives used in building the collection artifact. The key 'directives' is a +# list of MANIFEST.in style +# L(directives,https://packaging.python.org/en/latest/guides/using-manifest-in/#manifest-in-commands). The key +# 'omit_default_directives' is a boolean that controls whether the default directives are used. Mutually exclusive +# with 'build_ignore' +# manifest: null + From d5b99d53dd83d943f3e438f36a608adb53faeecd Mon Sep 17 00:00:00 2001 From: Harald Fielker Date: Tue, 31 Oct 2023 15:10:21 +0100 Subject: [PATCH 2/8] added readme --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index cdb24fd..8775d79 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,28 @@ You can find more information about it [here](molecule/README.md). This repo uses `pre-commit` and `pre-commit-hooks` to lint and fix common style and syntax errors. Be sure to install python packages and then run `pre-commit install`. For more information, see [pre-commit](https://pre-commit.com/) +## 🌌 Ansible Galaxy + +This collection can now be used in larger ansible projects. + +Instructions: + +- create or modify a file `collections/requirements.yml` in your project + +```yml +collections: + - name: ansible.utils + - name: community.general + - name: ansible.posix + - name: kubernetes.core + - name: https://github.com/techno-tim/k3s-ansible.git + type: git + version: master +``` + +- install via `ansible-galaxy collection install -r ./collections/requirements.yml` +- every role is now available via the prefix `techno_tim.k3s_ansible.` e.g. `techno_tim.k3s_ansible.lxc` + ## Thanks 🤝 This repo is really standing on the shoulders of giants. Thank you to all those who have contributed and thanks to these repos for code and ideas: From e588e2dba4c4b3ceeb58a3978f8e0c2106aea5c9 Mon Sep 17 00:00:00 2001 From: Harald Fielker Date: Wed, 1 Nov 2023 12:14:44 +0100 Subject: [PATCH 3/8] lint fix --- .ansible-lint | 3 +++ .yamllint | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.ansible-lint b/.ansible-lint index 940e20e..8024244 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -13,5 +13,8 @@ exclude_paths: - 'molecule/**/prepare.yml' - 'molecule/**/reset.yml' + # The file was generated by galaxy ansible - don't mess with it. + - 'galaxy.yml' + skip_list: - 'fqcn-builtins' diff --git a/.yamllint b/.yamllint index 8f19687..3440551 100644 --- a/.yamllint +++ b/.yamllint @@ -7,3 +7,6 @@ rules: level: warning truthy: allowed-values: ['true', 'false', 'yes', 'no'] + +ignore: + - galaxy.yml From 804331585662facd1b6587ec9c4c4c0b39ebeb09 Mon Sep 17 00:00:00 2001 From: egandro Date: Wed, 1 Nov 2023 17:01:08 +0100 Subject: [PATCH 4/8] Updated description Co-authored-by: Dov Benyomin Sohacheski --- galaxy.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index 0c0946f..8ce0067 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -21,7 +21,10 @@ authors: ### OPTIONAL but strongly recommended # A short summary description of the collection -description: your collection description +description: > + The easiest way to bootstrap a self-hosted High Availability Kubernetes + cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, + and more. # Either a single license or a list of licenses for content inside of a collection. Ansible Galaxy currently only # accepts L(SPDX,https://spdx.org/licenses/) licenses. This key is mutually exclusive with 'license_file' From ec64684ed5392aaeceb59cd3c1915047c395d0c8 Mon Sep 17 00:00:00 2001 From: egandro Date: Wed, 1 Nov 2023 17:02:01 +0100 Subject: [PATCH 5/8] Updated license_file section Co-authored-by: Dov Benyomin Sohacheski --- galaxy.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/galaxy.yml b/galaxy.yml index 8ce0067..ce01ab6 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -31,9 +31,6 @@ description: > license: - Apache-2.0 -# The path to the license file for the collection. This path is relative to the root of the collection. This key is -# mutually exclusive with 'license' -license_file: '' # A list of tags you want to associate with the collection for indexing/searching. A tag name has the same character # requirements as 'namespace' and 'name' From 8deda2044da88943e1a987638359f633e0b5d869 Mon Sep 17 00:00:00 2001 From: egandro Date: Wed, 1 Nov 2023 17:02:12 +0100 Subject: [PATCH 6/8] Updated tags section Co-authored-by: Dov Benyomin Sohacheski --- galaxy.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index ce01ab6..26a81e0 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -34,7 +34,16 @@ license: # A list of tags you want to associate with the collection for indexing/searching. A tag name has the same character # requirements as 'namespace' and 'name' -tags: [] +tags: + - etcd + - high-availability + - k8s + - k3s + - k3s-cluster + - kube-vip + - kubernetes + - metallb + - rancher # Collections that this collection requires to be installed for it to be usable. The key of the dict is the # collection label 'namespace.name'. The value is a version range From 5e680e1e0ccc43ca6dbfff1bf2791a85279137e8 Mon Sep 17 00:00:00 2001 From: egandro Date: Wed, 1 Nov 2023 17:02:33 +0100 Subject: [PATCH 7/8] Updated dependencies section Co-authored-by: Dov Benyomin Sohacheski --- galaxy.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index 26a81e0..22e9328 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -49,7 +49,11 @@ tags: # collection label 'namespace.name'. The value is a version range # L(specifiers,https://python-semanticversion.readthedocs.io/en/latest/#requirement-specification). Multiple version # range specifiers can be set and are separated by ',' -dependencies: {} +dependencies: + ansible.utils: '*' + ansible.posix: '*' + community.general: '*' + kubernetes.core: '*' # The URL of the originating SCM repository repository: https://github.com/techno-tim/k3s-ansible From 6da88d19723462a3bd4d5d0a4c1df619e41c58e3 Mon Sep 17 00:00:00 2001 From: Harald Fielker Date: Thu, 2 Nov 2023 20:01:43 +0100 Subject: [PATCH 8/8] removed extra empty line galaxy created --- galaxy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index 0c0946f..5013172 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -66,4 +66,3 @@ build_ignore: [] # 'omit_default_directives' is a boolean that controls whether the default directives are used. Mutually exclusive # with 'build_ignore' # manifest: null -