Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement] Suggest join commands after successfully completing k3sup install #358

Open
2 of 3 tasks
chipzoller opened this issue Nov 23, 2021 · 1 comment
Open
2 of 3 tasks

Comments

@chipzoller
Copy link

Expected Behaviour

Once a user successfully completes a k3sup install command, offer a couple other helpful "next step" commands for joining other nodes (both control plane and worker). This is a minor change to the output but could be helpful, similar to what kubeadm provides, to speed the process should a user want to join other nodes. The suggested commands can also be adaptive to the initial input. For example, if k3sup install was run with the flag --k3s-extra-args then the suggested next commands could include this flag and its arguments.

For example, one suggested output may look like (including current output as of 0.11.0:

$ k3sup install --ip 192.168.1.143 --user chip --cluster --tls-san 192.168.1.140 --k3s-channel=stable --k3s-extra-args "--disable traefik --disable servicelb --flannel-backend none --disable-network-policy"
Running: k3sup install
2021/11/23 08:46:41 192.168.1.143
Public IP: 192.168.1.143
[INFO]  Finding release for channel stable
[INFO]  Using v1.21.5+k3s2 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.21.5+k3s2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.21.5+k3s2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
Result: [INFO]  Finding release for channel stable
[INFO]  Using v1.21.5+k3s2 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.21.5+k3s2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.21.5+k3s2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
[INFO]  systemd: Starting k3s
 Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.

Saving file to: /home/chip/k8s/kube-vip/kubeconfig

# Test your cluster with:
export KUBECONFIG=/home/chip/k8s/kube-vip/kubeconfig
kubectl config set-context default
kubectl get node -o wide

###################
To join more control plane (server) nodes to this instance, run:

k3sup join --user chip --server-ip 192.168.1.143 --ip <IP_of_next_server> --server --k3s-channel stable --k3s-extra-args "--disable traefik --disable servicelb --flannel-backend none --disable-network-policy"

or, to start joining agents run:

k3sup join --user chip --server-ip 192.168.1.143 --ip <IP_of_agent> --k3s-channel stable

Current Behaviour

Currently, k3sup does not print suggested next-step commands.

Are you a GitHub Sponsor (Yes/No?)

  • Yes
  • No

Possible Solution

Print some templated commands at the end of the block sent to stdout.

Steps to Reproduce

  1. Run k3sup install and observe the output to stdout.

Context

As a new user to k3sup, I wanted to deploy a HA cluster to understand the process. As this requires multiple commands against multiple server instances, I had to inspect the help for k3sup each time in order to build a command line that would accomplish the use case. While this was not difficult, it occurred to me that perhaps this could be made a little simpler for new (or even existing) users by shortcuting some of that process.

Your Environment

  • What Kubernetes distribution are you using?
    K3s 1.21
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:"2021-07-15T20:58:09Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.5+k3s2", GitCommit:"724ef700bab896ff252a75e2be996d5f4ff1b842", GitTreeState:"clean", BuildDate:"2021-10-05T19:59:14Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}
  • What OS or type or VM are you using for your cluster? Where is it hosted? (for k3sup install/join): vSphere, self-hosted

  • Operating System and version (e.g. Linux, Windows, MacOS): Ubuntu 18.04

uname -a
Linux k8s-0 4.15.0-162-generic #170-Ubuntu SMP Mon Oct 18 11:38:05 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/os-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"
NAME="Ubuntu"
VERSION="18.04.6 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.6 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

"Be part of the solution"

Subject to approval, are you willing to work on a Pull Request for this issue or feature request?

  • Yes
  • [] No
@alexellis
Copy link
Owner

Thanks for your interest. If you'd like to support the project, see the notes in the README for how to become a sponsor. This will make you show up as a supporter of the project to me and other users.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants