125 Commits

Author SHA1 Message Date
Eng Zer Jun
5e5a35c67c
refactor: move from io/ioutil to io and os package (#827) 2021-10-27 15:52:37 +02:00
Thorsten Klein
f8f17caf78
[Cleanup] Types, ready-log-messages & closing connections (#818)
- new special internal role `initServer` used only to determine the correct ready-log-message
- ready-log-messages now looked up by role and new `Intent` type (cluster-create/cluster-start/node-create/node-start), as especially for the init server there are different log messages indicating that we can proceed with the next step
- moving types around:
	- K3s env vars now under .../types/k3s/env.go
	- defaults now under .../types/defaults.go
	- ...
- improved waiting for log messages
	- not checking the whole log again and again in a loop
	- follow log with a single reader (and retry in case we see a fatal error, meaning that the K3s container will restart -> backoff after 10 tries)
	- BREAKING: new `*runtimeTypes.NodeLogsOpts` parameter in GetNodeLogs
2021-10-27 12:56:04 +02:00
Thorsten Klein
7113694ab5
[Enhancement] Edit CoreDNS ConfigMap on disk for more reliability (#814) 2021-10-22 15:07:01 +02:00
Thorsten Klein
12180ffdd5
[Fix] more resilient post-create cluster preparation (DNS) (#780) 2021-10-13 17:36:42 +02:00
John Poth
de2cda4396
[FIX] Add HostFromClusterNetwork from KEP-1755 (#754) 2021-10-13 17:30:00 +02:00
iwilltry42
1e9c20e0a9
do not use logreader if it doesn't exist 2021-10-11 11:53:50 +02:00
Benjamin Blattberg
2040a458b1
[FIX] Prevent segmentation fault with --no-lb and --verbose/trace (#775) 2021-10-08 11:32:11 +02:00
iwilltry42
5f2ea9aac0
speed up /etc/hosts injection 2021-10-05 10:55:41 +02:00
Thorsten Klein
67d8c8c84f
[Enhancement/Fix] Properly use env/runtime info and inject dns accordingly (#758)
- make use of environment and runtime info
- DfD: use host.docker.internal
- All other cases: use Docker network Gateway
- k3d-tools: based on alpine to have `getent` present
2021-09-23 12:41:30 +02:00
Thorsten Klein
3b9d8373e1
[Docs] v5 update (#740) 2021-09-17 20:41:57 +02:00
iwilltry42
7073a8fad7 migrate to module rancher/k3d/v5 2021-09-07 08:58:57 +02:00
iwilltry42
5aa1edfb73
update to go1.17 and update direct dependencies 2021-09-07 08:57:05 +02:00
iwilltry42
630788f1e7 clusterCreate: add --lb-config-override flag
- allow overriding k3d-proxy settings (workerProcesses,
defaultProxyTimeout)
- add new field to loadbalancer config and SimpleConfig structs
2021-09-07 08:23:46 +02:00
Thorsten Klein
7ba71ad66c
[Feature] CreateNode: add token and network flags and allow remote cluster (#734)
- `--cluster` flag parsed for `https://` prefix and node creation treated differently accordingly
- new `--network` string array flag to add the node to multiple networks (primary network when adding to a remote cluster)
- new `--token` flag to provide the cluster token
2021-09-07 07:31:18 +02:00
iwilltry42
78738058c8
fix regression on checking edac folder introduced by wrapping a nil error 2021-08-31 10:42:45 +02:00
iwilltry42
6f76f8ce5d
fix: delete k3d-tools node after gathering environment information, so it doesn't block an IP in a designated subnet 2021-08-31 10:10:40 +02:00
iwilltry42
6d45a15e05 fix/cluster: do not use the same nodestartopts value for all nodes 2021-08-31 09:33:39 +02:00
iwilltry42
9efe980789 overall: make error handling and error logs a bit more streamlined 2021-08-31 09:33:39 +02:00
Thorsten Klein
b4158a1dc1
[Enhancement] Network Magic (#721)
- before starting the cluster, gather environment info via tools node
- use hostIP/gatewayIP for DNS (iptables + resolv.conf updated in entrypoint script)
- revamp of custom entrypoint scripts
2021-08-30 14:59:12 +02:00
Thorsten Klein
212979d0bb
[Enhancement] DNS Injection (#718)
- remove`--no-hostip` flag and the related `disableHostIPInjection` config option
- inject host IP on every cluster startup (except when hostnetwork is chosen)(/etc/hosts + CoreDNS)
- inject host entries for every cluster network member container into the CoreDNS configmap
2021-08-24 10:18:53 +02:00
Mateusz Urbanek
917c19eae5
feat(logging): using new package containing logrus.Logger instead of global scope logrus (closes #583) (#699, @Shanduur) 2021-08-18 12:22:44 +02:00
iwilltry42
25c6f65948
fix: clusterGet no error on no lb config
- clusterGet should not return an error, if it cannot get the
loadbalancer config, as it's not critical
  -> it should not rely on files created in nodehook actions
- this also fixes a nil pointer exception when cluster creation was
interrupted even before the loadbalancer was added to the cluster in
memory

Fixes #683
2021-07-21 13:23:17 +02:00
Thorsten Klein
6941159ac6
[Enhancement] Create workers/helpers concurrently (#678) 2021-07-20 11:56:50 +02:00
Thorsten Klein
607382056b
[Fix] Simplify and Fix docker client creation (#674)
These options worked:
- unix://
- ssh://
- tcp:// (with and without tls)
2021-07-16 12:04:26 +02:00
iwilltry42
2516cad12e
allow for adding ports to a running cluster via the loadbalancer 2021-07-09 12:08:30 +02:00
iwilltry42
c6ee295deb
Merge branch 'main-v5' into feature/cluster-edit-ports 2021-07-09 10:55:40 +02:00
iwilltry42
4132757f34
ports: no nodefilter or loadbalancer nodefilter should default to use all servers & agents as upstream 2021-07-09 10:48:32 +02:00
iwilltry42
95ecaf77e0
fix nilpointer exception when cluster loadbalancer is not specified 2021-07-09 10:48:29 +02:00
iwilltry42
6f1f58a2c2
fix missing merge conflict resolutions 2021-07-09 10:48:28 +02:00
iwilltry42
8fef6aee09
fix usage of the new loadbalancer type and ordering when cluster is created 2021-07-09 10:48:28 +02:00
iwilltry42
fb1c45b9ae
client/cluster:make injecting the coredns entry for host.k3d.internal more robust 2021-07-09 10:48:27 +02:00
iwilltry42
edfd54c6d5
remove debug logs for merged kubeconfig as they add too much noise 2021-07-09 10:48:26 +02:00
iwilltry42
91db3f647c
changes when creating clusters + new nodefilter syntax
- generate node names when transforming from simple to cluster config
  - ClusterCreate(clusterconfig) should have a ready made config and not
  generate variables
- ClusterCreate() only prep LB if not already present (to be removed)
- cluster struct: serverloadbalancer is now of type LoadBalancer (Node +
Config)
- use new nodefilter syntax with 'id:index:suffix' instead of
'id[index]' everywhere
  - use suffix when creating the LB
2021-07-09 10:48:26 +02:00
iwilltry42
8e29ad4f1a
add some more portmapping work 2021-07-09 10:48:26 +02:00
Thorsten Klein
2092ceaaa9
[FEATURE] add ability to add ports to an existing loadbalancer (#615) 2021-07-09 10:48:25 +02:00
iwilltry42
7bcb1730c6
nodeCreate: remove dead code and parallelize adding nodes to the cluster completely 2021-07-09 10:48:24 +02:00
iwilltry42
e063405b02
some really final log output after creating/deleting nodes 2021-07-09 10:48:24 +02:00
iwilltry42
1a68ae0372
updatelbconfig: check for log output to see if the update succeeded and give proper info 2021-07-09 10:46:22 +02:00
iwilltry42
4a84874a86
nodeWaitForLogMessage: log found target line when on >= trace level logging 2021-07-09 10:46:22 +02:00
iwilltry42
a4dc34531a
node/edit: use new loadbalancer config file for ports update 2021-07-09 10:46:21 +02:00
iwilltry42
2b2041f028
loadbalancer: use auto-reload for confd (file watcher) 2021-07-09 10:46:21 +02:00
iwilltry42
339187b4da
adapt updating the loadbalancer config when adding a new node 2021-07-09 10:46:20 +02:00
iwilltry42
2daf3872ca
nodeAdd: do not copy ports from existing node (+ some cleanup) 2021-07-09 10:46:20 +02:00
iwilltry42
44a79c4670
types/node: add nodehooks to node struct to have them around at any stage (TO-DO: use this everywhere -> breaking change) 2021-07-09 10:46:19 +02:00
iwilltry42
a3dd47029d
generate new config file for lb and add helper functions to get images from env if needed 2021-07-09 10:46:18 +02:00
iwilltry42
21244172c9
move loadbalancer creation to separate function 2021-07-09 10:46:17 +02:00
iwilltry42
de401c6db3
add debug functionality to get current loadbalancer config 2021-07-09 10:46:17 +02:00
Thorsten Klein
77aa76d7f2
[FEATURE] add ability to add ports to an existing loadbalancer (#615) 2021-07-09 10:46:16 +02:00
ejose19
bfead49c46
[Enhancement] Refactoring: normalize label flags (k3s node & runtime) (#598, @ejose19) 2021-07-09 10:46:16 +02:00
Thorsten Klein
261ac0faf4
[BREAKING] Config File Enhancements: v1alpha3, migrations, generic k3s-args (#605)
Excerpt:
- new version v1alpha3 with k3s extraArgs using node filters
  - reflected in CLI via --k3s-arg
- new migration option to migrate (internally and via cli) from v1alpha2
to v1alpha3
- enhancements to how config files are being read
- e2e tests for config file migration
2021-07-09 10:46:12 +02:00