Commit graph

167 commits

Author SHA1 Message Date
Jairo Llopis
142b40f428
fix: do ignore etcd member count when uninstalling
Otherwise, when completely uninstalling the etcd-enabled cluster, it fails with:

```
TASK [xanmanning.k3s : Check the conditions when embedded etcd is defined] ***************************************
fatal: [vm0]: FAILED! => {
    "assertion": "(((k3s_controller_list | length) % 2) == 1)",
    "changed": false,
    "evaluated_to": false,
    "msg": "Etcd should have a minimum of 3 defined members and the number of members should be odd. Please see notes about HA in README.md"
}
fatal: [vm1]: FAILED! => {
    "assertion": "(((k3s_controller_list | length) % 2) == 1)",
    "changed": false,
    "evaluated_to": false,
    "msg": "Etcd should have a minimum of 3 defined members and the number of members should be odd. Please see notes about HA in README.md"
}
fatal: [vm2]: FAILED! => {
    "assertion": "(((k3s_controller_list | length) % 2) == 1)",
    "changed": false,
    "evaluated_to": false,
    "msg": "Etcd should have a minimum of 3 defined members and the number of members should be odd. Please see notes about HA in README.md"
}
```
2021-07-21 12:56:09 +01:00
Yajo
05e62b6344 fix: avoid failure with jinja2_native=true
If you run the role on an ansible configured with that setting, it will fail with:

    fatal: [vm0]: FAILED! => {"msg": "Unexpected templating type error occurred on ({% for host in ansible_play_hosts_all %}\n{% filter string %}\n{% filter replace('\\n', ' ') %}\n{{ host }}\n@@@\n{{ hostvars[host].ansible_host | default(hostvars[host].ansible_fqdn) }}\n@@@\nC_{{ hostvars[host].k3s_control_node }}\n@@@\nP_{{ hostvars[host].k3s_primary_control_node | default(False) }}\n{% endfilter %}\n{% endfilter %}\n@@@ END:{{ host }}\n{% endfor %}): sequence item 4: expected str instance, bool found"}
2021-07-19 09:26:57 +00:00
Michael Robinson
3006716f66
Case insensitive control node lookup 2021-05-29 14:26:50 -06:00
Xan Manning
730edbf6cb Skip downloads in check-mode 2021-05-27 19:31:28 +01:00
ᗪєνιη ᗷυнʟ
e7374757fa
fix: task item name 2021-05-27 11:58:45 -04:00
ᗪєνιη ᗷυнʟ
51de880c0f
fix: use k3s_server_pod_manifests_dir for static pod urls 2021-05-27 11:57:42 -04:00
Devin Buhl
2e629838f1
feat: add support for specifying URLs in templates 2021-05-26 18:07:22 -04:00
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs
d834ca15b0
Merge branch 'main' into staticpods 2021-05-26 09:57:58 +02:00
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs
da7d8c67d9
Rename vars, path
Signed-off-by: Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs <me@bjw-s.dev>
2021-05-26 09:52:34 +02:00
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs
1bbba04230
Allow control plane static pods
Signed-off-by: Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs <me@bjw-s.dev>
2021-05-26 09:43:07 +02:00
ᗪєνιη ᗷυнʟ
82085cb80b
fix: remove run_once 2021-05-25 19:23:13 -04:00
ᗪєνιη ᗷυнʟ
2243766695
fix: k3s_primary_control_node 2021-05-25 18:39:48 -04:00
ᗪєνιη ᗷυнʟ
ef99954177
fix: only deploy k3s_server_manifests_dir on primary controller 2021-05-25 18:38:07 -04:00
Xan Manning
50fa321e7e Fix templating error 2021-05-15 20:47:32 +01:00
赵安家
d563dcca05 style(k3s): change code style
change code style
2021-05-08 18:39:19 +08:00
赵安家
075ef165c5 fix(k3s): fix k3s's private-registry configuration not exist
fix k3s's private-registry configuration not exist
2021-05-07 18:29:01 +08:00
赵安家
c9e2b619d1 feat(k3s): support k3s's private-registry configuration
rancher doc url https://rancher.com/docs/k3s/latest/en/installation/private-registry/
2021-05-07 17:56:45 +08:00
AnJia
91d456ccad
fixed kubectl_get_nodes_result.stdout error
os ubuntu  amd64 16.04 LTS
ansible 2.9.20
python version 2.7

```
 FAILED! => {"msg": "The conditional check 'item in kubectl_get_nodes_result.stdout' failed. The error was: error while evaluating conditional (item in kubectl_get_nodes_result.stdout): 'dict object' has no attribute 'stdout'\n\nThe error appears to be in '/home/rancher/.ansible/roles/xanmanning.k3s/tasks/teardown/drain-and-remove-nodes.yml': line 39, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n    - name: Ensure uninstalled nodes are removed\n      ^ here\n"}

```
2021-04-30 14:31:33 +08:00
Xan Manning
f4fcd2897d Update test sequence for check mode, fixed check mode on cgroup test 2021-04-18 20:39:06 +01:00
Xan Manning
23054c76f6 Updated command modules to use cmd argument 2021-04-10 12:31:18 +01:00
Xan Manning
e5c69ec894 Add cgroup checks 2021-04-03 20:42:44 +01:00
Xan Manning
4326f4497d Renamed k3s_control_node_address -> k3s_registration_address 2021-03-14 16:29:14 +00:00
Xan Manning
94a153892e Bugfix, missing become on cluser token check 2021-02-28 17:36:30 +00:00
Xan Manning
1d93c2115d Cluster-init checks added, tidy up of task format 2021-02-28 16:48:23 +00:00
Xan Manning
62b2d7cb36 Typo bugfixes 2021-02-27 19:02:49 +00:00
Xan Manning
7e4a16e167 Pre-documentation work
- Restructured when and asserts
  - Standardise molecule call, add systemd config
2021-02-16 16:53:49 +00:00
Xan Manning
5555bd3d9b Bugfix, missing k3s_start_on_boot to control systemd.enabled added. 2021-01-30 17:57:50 +00:00
Xan Manning
2c12436226 Bugfixes
- Added uninstall task to remove hard-linked files #88
  - Fixed missing become for `systemd` operations tasks. #89
  - Added `k3s_start_on_boot` to control `systemd.enabled`.
2021-01-30 17:23:31 +00:00
Antoine Bertin
c169cb8937
Fix check nodes ready without flannel
Fixes #84
2021-01-22 00:28:53 +01:00
Xan Manning
e954ba13c4 Bugfix: Docker check still failing on "false" 2021-01-10 16:35:20 +00:00
Xan Manning
a2e035cd1c Bugfix registry 2021-01-02 16:33:31 +00:00
Xan Manning
e7c714424c
Tiidy up and refactoring of tasks (#80)
* Tidy up and refactoring of tasks

  - `k3s_config_dir` derived from `k3s_config_file`, reused throughout the role
    to allow for easy removal of "Rancher" references #73.
  - `k3s_token_location` has moved to be in `k3s_config_dir`.
  - Tasks for creating directories now looped to caputure configuration from
    `k3s_server` and `k3s_agent` and ensure directories exist before k3s
    starts, see #75.
  - Server token collected directly from token file, not symlinked file
    (node-token).
  - `k3s_runtime_config` defined in `vars/` for validation and overwritten in
    tasks for control plane and workers.
  - Removed unused references to GitHub API.

* set_fact now uses FQCN

* re-pin molecule<3.2

* Command module now uses FQCN

* Added package checks for #72

* Reorder task files

  - Docker tasks moved into a separate directory for ease of removal #67
  - Bugfix: Control plane on alternate port didn't work.
  - Validation tasks grouped

* Fix Fedora tests

* Add optional documentation links to validations steps #76

* Removed jmespath requirement

* Fix issue with data collection

* Release candidate
2020-12-21 19:14:52 +00:00
Xan Manning
99c22dceab Uninstall scripts now in-line with upstream
Fixes #74
Addresses #73 - move rancher reference to vars/
2020-12-19 14:05:41 +00:00
Xan Manning
e25edbef3c rework documentation, change github link, replace deprecated variables 2020-12-16 11:02:15 +00:00
Xan Manning
34e2af3d47 Set embedded Etcd as stable, deprecate docker 2020-12-12 14:27:59 +00:00
Xan Manning
4afc2c8a5a Fixed data-dir configuration and draining of nodes. Added documentation. 2020-12-05 21:56:28 +00:00
Xan Manning
21adf94627 Updated issue template and collection yml 2020-11-30 21:57:58 +00:00
Xan Manning
ebf32dbd99 v2 pre-release 2020-11-29 20:10:42 +00:00
Xan Manning
8c791cb611 Change terminology of tasks to remove "master" 2020-11-10 19:01:05 +00:00
Xan Manning
170bf5995f Merge conflict resolved: archlinux support 2020-10-23 16:40:35 +01:00
Xan Manning
35b037c7ee Pre-FQCN breakage 2020-10-23 16:31:21 +01:00
Martin Friedrich
e5133c1f73
add archlinux support, fixed drain invoked on uninstall by adding --delete-local-data 2020-10-23 14:43:58 +02:00
Xan Manning
57b9a2a0be Moved to file based config, pre-FQCN, pre-update to documentation 2020-10-22 19:26:15 +01:00
Xan Manning
292c726b07 Split out repeating tasks 2020-10-21 17:22:41 +01:00
Xan Manning
f3173f193f Merge branch 'bugfix-k3s_node_data_dir' into role_v2 2020-10-19 20:35:32 +01:00
Xan Manning
6e29200d9a Attempt to fix #57 - k3s_node_data_dir set in templates 2020-10-19 20:32:53 +01:00
Xan Manning
9b800d9fba moving to file-based config 2020-10-19 20:26:12 +01:00
Xan Manning
45a41f895b Restructure for validation checks 2020-10-17 18:27:52 +01:00
ᗪєνιη ᗷυнʟ
b16f142c21
Override facts when commit hash is specified 2020-09-23 09:43:31 -04:00
ᗪєνιη ᗷυнʟ
c447fcec39 A number of enhancements for v1.19 release.
- Added option to skip validation checks #47
  - Add SELinux support in containerd #48
  - Added check for Etcd member count #46
  - Moved token to a file #50
  - Added Etcd snapshot configuration options #49
2020-09-22 20:30:50 +01:00
Xan Manning
ab48e3a173 Change delay to 5 seconds for secondary masters startup task to complete 2020-09-18 12:09:56 +01:00
Xan Manning
175b90ecb0 Added support for Etcd, removed DQLite support. See #41 2020-09-17 21:01:20 +01:00
Xan Manning
c743df868b Fixing ansible-linting, exclude name check for Travis-CI
This release also fixes:

  - #38 : removing the --disable-agent option. Please use node taints.
  - #39 : clarified where jmespath should be installed in README.md
2020-09-15 18:20:23 +01:00
Xan Manning
b412858b30 Fix merge conflict 2020-07-25 20:51:31 +01:00
Xan Manning
d53102dda3 Check mode support added 2020-07-25 17:39:01 +01:00
Xan Manning
809e9cd73c Releasable feature for hardlinks 2020-07-25 14:03:53 +01:00
Xan Manning
d2a34546cf Potential fix for #35 2020-07-25 12:27:39 +01:00
Xan Manning
3a6b411430 Added support for args, private registries. Fixes #32 2020-07-04 13:24:10 +01:00
Xan Manning
2c0afbca42 Restart k3s service unit on file change 2020-06-06 14:30:40 +02:00
Michael
f90cc5ca18
Privilege escalation to solve "Access denied"
```
FAILED! => {"attempts": 3, "changed": false, "msg": "Unable to enable service k3s: Failed to enable unit: Access denied\n"}
```

The task never sets become to true, hence failing due to lack of permissions on the user that is executing it by default.
2020-05-30 23:40:05 +02:00
Xan Manning
848a5457ff Add option for unsupported single node with database backend. Issue #27 2020-05-30 15:16:20 +01:00
Xan Manning
6090071982 Bugfix, issue with HA build for joining new nodes 2020-05-25 17:57:43 +01:00
Xan Manning
23ba527bc2 Bugfix, broke clustering with v1.6.2 2020-05-25 17:11:45 +01:00
Xan Manning
9524b07df0 Fix joining nodes to an existing cluster 2020-05-25 16:25:09 +01:00
Xan Manning
141b6f2018 Numerous bug fixes to do with permissions and regressions.
Fix issue #25, check k3s_bind_address for readiness check
Fix issue #24, become for tasks that require root
2020-05-20 19:55:33 +01:00
Xan Manning
5ce8dec6ff Added the ability to set k3s_release_version as a release channel 2020-05-18 20:45:48 +01:00
Xan Manning
e3301a59e4 Updated state tasks to dynamic include rather thn static import
This is an initial attempt to address issue #22, I have also included a
task to drain the node before deleting it.
2020-05-18 19:53:03 +01:00
Xan Manning
02e12e61a8 Bugfix: minimum version for secrets encryption reverted 2020-05-17 20:43:39 +01:00
Xan Manning
b42ffade29 Fixes to variable checks 2020-05-17 11:40:53 +01:00
Xan Manning
aa1a0a9620 Added option to provision multiple standalone k3s
Fixes #21
2020-05-16 20:18:20 +01:00
nolte
df44053349 add a permission check for write the systemd k3s config 2020-05-09 21:07:34 +02:00
SimonHeimberg
acedb08a1f variables to activate become for some steps 2020-04-22 16:42:45 +02:00
Xan Manning
e93b438ee0 Added secrets encryption at rest option 2020-03-28 12:58:58 +00:00
Xan Manning
f684f6d907 A retry has been added to task controlling secondary master startup.
Fixes #17

There appeared to be a race condition where starting all secondary
masters all at once would cause the k3s service to fail on a number of
the other masters. A retry has been added to the task to attempt to
bring them all up until they stop failing.
2020-03-07 16:15:41 +00:00
Xan Manning
f709caf371 Skip final checks when no-flannel option is used.
Fixes #16

This is because without a CNI, nodes will never be ready and the task
will fail. You need to deploy your choice of CNI manually (such as
Calico) then check the state of the cluster using `kubectl get nodes`.
2020-03-07 14:23:09 +00:00
Xan Manning
2c09d4711b
Merge pull request #15 from PyratLabs/tidy_up_additional_validation
Variable check for local storage path
2020-02-28 07:39:33 +00:00
Xan Manning
9dcfa954f9 Variable check for local storage path 2020-02-27 20:10:28 +00:00
Xan Manning
12d01c2a60 Added tests and variable validation 2020-02-27 18:46:59 +00:00
Xan Manning
75fd17aac8 Slightly updated tasks and added validation checks
1. Now does not remove prerequisite packages, lvm2 was included in
these packages (not good when you use LVM2 for real).
  2. Added a bit more idempotency to the shell scripts - only delete if
it exists.
  3. Check that the process isn't running and binaries are gone.
2020-02-26 20:56:05 +00:00
Devin Buhl
5f7ff27f17
Fix 301 lint issue in uninstall-docker-amazon 2020-02-25 15:42:40 -05:00
Devin Buhl
a1e52fb660
fixed 301 lint issue in uninstall-k3s.yml 2020-02-25 15:41:29 -05:00
Devin Buhl
e7c787e10f
Fix other lint issue 2020-02-25 15:25:23 -05:00
Devin Buhl
8d0ee69012
Fix other yaml lint issue 2020-02-25 15:08:17 -05:00
Devin Buhl
fd7498303d
Fix first YAML lint issue 2020-02-25 15:07:05 -05:00
Devin Buhl
be85c9ccc5 state uninstalled 2020-02-25 12:39:34 -05:00
Devin Buhl
9bbf5fd746 add uninstall state 2020-02-25 12:29:39 -05:00
Xan Manning
1f19e2b302 Updated flannel backend flag checks 2020-02-09 16:03:41 +00:00
Xan Manning
218b9d64c9 Slightly more robust selection of checksum from GitHub 2020-02-09 15:00:59 +00:00
James D. Marble
044ed5512c Use correct checksums for arm downloads
I attempted to install on arm64 and armhf. Both fail because the
[checksum filter](e07903a5cf/tasks/build/download-k3s.yml (L21))
finds the first line with "k3s". On the arm checksum files,
the first lines are for "k3s-airgap-images-arm64.tar" and "k3s-airgap-images-arm.tar"
so the wrong checksum is grabbed.

I attempted to fix this with a more specific filter:
`select('search', 'k3s'+k3s_arch_suffix)`.
This works for both arm architectures,
but fails for amd64 because the key is simply "k3s" and not "k3s-amd64".

The solution I settled on is not ideal for future proofing,
but works for now at least.
2020-01-31 21:10:55 -08:00
Xan Manning
e07903a5cf Fixed issue with SUSE docker installation 2020-01-21 22:33:11 +00:00
Xan Manning
e3ce213bc0 Testing auto-deploy on multi-master 2020-01-13 21:32:31 +00:00
Xan Manning
3ef36b841f
Merge branch 'multi_master_support' into feature/add_manifests 2020-01-13 19:09:45 +00:00
Xan Manning
3a1c7e7b35 Added workflow for Database backed and DQLite HA 2020-01-13 19:08:37 +00:00
Xan Manning
09fc37e6ec Fixed provisioning of multi-master, need to test LB with k3s_control_node_address 2020-01-11 22:42:29 +00:00
Xan Manning
c3ae2b79eb Added database container and proved connectivity. Logic needs to be changed for HA. 2020-01-11 19:20:52 +00:00
nolte
b896e90704
Update tasks/build/preconfigure-k3s-auto-deploying-manifests.yml
Co-Authored-By: Xan Manning <xan.manning@gmail.com>
2020-01-11 20:03:58 +01:00
nolte
2e03ea2e6f
Update tasks/build/preconfigure-k3s-auto-deploying-manifests.yml
Co-Authored-By: Xan Manning <xan.manning@gmail.com>
2020-01-11 20:03:29 +01:00
nolte
cb13c5b473 create manifests directory if not exists 2020-01-11 18:56:48 +01:00
nolte
2b646e4e4f update task documentation and add new config parameters to the Readme 2020-01-11 15:44:28 +01:00
nolte
2307546be2 add support place k8s manifests to the nodes 2020-01-11 15:10:19 +01:00