- 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
- 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
- `--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
- 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
- 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
- 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
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
- 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
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
- LocalRegistryHostingConfigMap
- use localhost or docker-machine as external host IP
- fromContainerRuntime: user container-name + internal port
- registries.yaml: set up mirrors for both external and internal address
* Added a new `created` field that exports the creation time
for all the containers in the cluster.
Signed-off-by: Alvaro Saurin <alvaro.saurin@gmail.com>