367 Commits

Author SHA1 Message Date
蜻蜓特派员
1bcf802012
[Fix] Fix docker client creation by tls verify from env (#829) 2021-10-29 14:40:23 +02:00
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
594e3ced3f
config: fix failing v1alpha2 -> v1alpha3 migration (#799)
- add validation as extra step after migration
- add missing json struct tags to new v1alpha3 config fields
- add unit tests
- add missing `omitempty` tags to configs to avoid (un-)marshalling issues
- drop `string` type for `time.Duration` type field in JSON Schema (doesn't work properly sometimes due to broken handling of time.Duration as per https://github.com/golang/go/issues/10275)
2021-10-13 21:05:35 +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
53bdbec636
[Fix] k3d config migrate missing nodefilter migration (#767)
configMigrate: add missing migrations for nodefilters and fix perm of outputfile
2021-10-05 10:42:09 +02:00
iwilltry42
81a41bdab1
debug: add env var flag K3D_DEBUG_DISABLE_DOCKER_INIT to test k3s as pid 1 2021-10-01 19:01:19 +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
Thorsten Klein
7071129df8
[Enhancement] More powerful registry-create opt (#727)
- `--registry-create NAME[:HOST][:HOSTPORT]` changed from bool flag
- respective config added to config file
2021-09-08 19:09:23 +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
17dc4b7b4d fix e2e makefile target 2021-08-31 09:33:39 +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
iwilltry42
1ae8302980
fix: do not try to parse container IP if container is restarting 2021-08-24 14:41:38 +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
iwilltry42
95e0045418
Merge branch 'main' into main-v5 2021-08-18 14:14:07 +02:00
iwilltry42
8647a0ca40
fix: when checking for folder existence in container, only pull the
image if not present

works around issue reported in
https://github.com/rancher/k3d/discussions/703 if image is present
locally
2021-08-18 14:12:41 +02:00
iwilltry42
8a745062ed
Merge branch 'main' into main-v5 2021-08-18 13:38:39 +02:00
Mateusz Szostok
0c02607d1e
[FIX]: import all requested images (#701, @mszostok) 2021-08-18 13:35:07 +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
ac527e7c8a
fix nilpointer in config transformation when lb is disabled (fixes #695) 2021-08-18 10:28:49 +02:00
iwilltry42
5364bd1300
fix: log level overwritten by dockerCli.Initialize() 2021-07-23 10:20:29 +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
a5c1d3becb
[Enhancement] Docs: update for v5 (first iteration) (#682) 2021-07-21 10:38:49 +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
79790d1c30
Merge branch 'main' of github.com:developer-guy/k3d into developer-guy-main 2021-07-13 12:38:45 +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
1944c06dad
properly handle --port 1234:4321@loadbalancer:proxy style port mappings which should default to all nodes as upstream 2021-07-09 10:48:30 +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
d41b49d423
document using new nodefilter syntax with : instead of [] for indexing 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