diff --git a/README-en.md b/README-en.md
index bb9134d..e433a25 100644
--- a/README-en.md
+++ b/README-en.md
@@ -11,7 +11,7 @@
![](https://img.shields.io/static/v1?label=Ubuntu&message=<=22.04.2_LTS(Jammy_Jellyfish)&color=green&style=flat-square&logo=ubuntu)
![](https://img.shields.io/static/v1?label=Ubuntu&message=>=v18.04.06_LTS(Bionic_Beaver)&color=green&style=flat-square&logo=ubuntu)
![](https://img.shields.io/static/v1?label=Kubernetes&message=>=v1.24.15&color=green&style=flat-square&logo=kubernetes)
-![](https://img.shields.io/static/v1?label=Kubernetes&message=<=v1.27.5&color=green&style=flat-square&logo=kubernetes)
+![](https://img.shields.io/static/v1?label=Kubernetes&message=<=v1.31.2&color=green&style=flat-square&logo=kubernetes)
![](https://img.shields.io/static/v1?label=cri-socket&message=cri-dockerd.v0.0.3&color=green&style=flat-square&logo=docker)
![](https://img.shields.io/static/v1?label=docker&message=v24.0.15&color=green&style=flat-square&logo=docker)
![](https://img.shields.io/static/v1?label=go&message=v1.20.5&color=green&style=flat-square&logo=go)
@@ -32,7 +32,7 @@
- Nodes (both master and workers) are to be in the same subnet. **For calico autodeployment to work** the Master node's IP(Host IP) must **not be within the same CIDR**.
- If accessing via ssh, use username/password authentication and not pem.
- The script automatically opens some ports (such as 6443), but ports may need to be manually opened in case of firewalls or company policies.
- ([ports required to be open for k8s installation](https://v1-24.docs.kubernetes.io/docs/reference/ports-and-protocols/))
+ ([ports required to be open for k8s installation](https://kubernetes.io/docs/reference/networking/ports-and-protocols/))
@@ -44,7 +44,7 @@
### 1. Bootstrap download
-From the home directory, run `curl -sSLO http://raw.githubusercontent.com/kdgyun/KubernetesAutoDeployment/main/k8s-cluster-bootstrap.sh` or download from github [**latest release version**](https://github.com/kdgyun/KubernetesAutoDeployment/releases/) and run k8s-cluster-bootstrap.sh.
+From the home directory, run `curl -sSLO http://raw.githubusercontent.com/kdgyun/k8s-cluster-bootstrap/main/k8s-cluster-bootstrap.sh` or download from github [**latest release version**](https://github.com/kdgyun/k8s-cluster-bootstrap/releases/) and run k8s-cluster-bootstrap.sh.
@@ -83,14 +83,14 @@ The following shows the available options to run this bootstrap.
| ```-c / --cni``` | CIDR | Installs cni(with calico) during master node installation. | To utilize this option, the master's IP(Host IP) cannot overlap with calico's CIDR. Please utilize one of the following CIDR: ```10.0.0.0/8```, ```172.16.0.0/12```, ```192.168.0.0/16```. |
| ```-ct / --containertype``` | Container Runtime | Specify the type of container runtime k8s will use. If empty, it will default to ```docker(cri-dockerd)``` | For **cri-dockerd** write ```docker``` ,
for **containerd** write ```containerd``` as the parameter for this option. |
| ```-h / --help``` | | Display all options and their respective descriptions. | |
-| ```-i / --ip``` | Host IP | Declare IP for master node (e.g, 10.0.0.1).
In case of deploying k8s in a cloud (e.g, aws, gcp …) declare an IP with the scope of a private IP, not the public IP. | |
+| ```-i / --ip``` | Master's (Host) IP | Declare IP for master node (e.g, 10.0.0.1).
In case of deploying k8s in a cloud (e.g, aws, gcp …) declare an IP with the scope of a private IP, not the public IP. | |
| ```-kv / --k8sversion``` | | Displays all versions of k8s this bootstrap can install | |
| ```-m / --master``` | | Use this option to install a master ```-m``` | The flag ```-i/--ip``` is a must if this option is utilized. |
| ```-ms / --metricserver``` | | To install the metrics-server for Kubernetes, use the `-ms` flag. | It can only be installed when configuring a master node, so the `-m/--master` flag is also required. |
| ```-p / --password``` | Master(Host) node password | Required for ssh login using a password.
It is done so the worker node can access the master during installation to obtain the join token. Both master and worker must be in the same subnet. | The flag ```-u/--username``` is a must if this option is utilized. |
| ```-r / --regularuser```
**(\*beta)** | HOME_PATH of regular user | This bootstrap is executed with sudo permission, thus this option is used to allow regular users (such as the user `ubuntu` in ubuntu servers) to also use k8s.
run this option as ```-r /home/username```. Crucial that HOME_PATH is the same as **the regular user's home directory($HOME)** | Not a must option. Utilized when initializing a master node with ```-m```. |
| ```-u / --username``` | Master(Host) node username | ```username``` for ssh login.
Set so a newly created worker node within the same subnet as the master node can fetch the join token from the master node. | The floag ```-p/--password``` is a must if this option is utilized. |
-| ```-v / --version``` | k8s version | Declare k8s version to install.
Supports k8s version from ```1.24.15``` to ```1.27.5``` and more details can be checked using the ```-kv``` or ```--k8sversion``` option. | The parameters for this options are to be written as ```x.y.z```.
Not using this option will default k8s version to ```1.24.15``` and does not support RC nor beta versions since they are not stable versions. |
+| ```-v / --version``` | k8s version | Declare k8s version to install.
Supports k8s version from ```1.24.15``` to ```1.31.2``` and more details can be checked using the ```-kv``` or ```--k8sversion``` option. | The parameters for this options are to be written as ```x.y.z```.
Not using this option will default k8s version to ```1.24.15``` and does not support RC nor beta versions since they are not stable versions. |
| ```-w / --worker``` | | Used to specify worker node installation. | the following 3 options are required: ```-i/--ip``` , ```-u/--username```, ```-p/-password```. |
diff --git a/README.md b/README.md
index f684706..c705457 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
![](https://img.shields.io/static/v1?label=Ubuntu&message=<=22.04.2_LTS(Jammy_Jellyfish)&color=green&style=flat-square&logo=ubuntu)
![](https://img.shields.io/static/v1?label=Ubuntu&message=>=v18.04.06_LTS(Bionic_Beaver)&color=green&style=flat-square&logo=ubuntu)
![](https://img.shields.io/static/v1?label=Kubernetes&message=>=v1.24.15&color=green&style=flat-square&logo=kubernetes)
-![](https://img.shields.io/static/v1?label=Kubernetes&message=<=v1.27.5&color=green&style=flat-square&logo=kubernetes)
+![](https://img.shields.io/static/v1?label=Kubernetes&message=<=v1.31.2&color=green&style=flat-square&logo=kubernetes)
![](https://img.shields.io/static/v1?label=cri-socket&message=cri-dockerd.v0.0.3&color=green&style=flat-square&logo=docker)
![](https://img.shields.io/static/v1?label=docker&message=v24.0.15&color=green&style=flat-square&logo=docker)
![](https://img.shields.io/static/v1?label=go&message=v1.20.5&color=green&style=flat-square&logo=go)
@@ -32,7 +32,7 @@
- 동일한 subnet 안에 있어야 함. 단, **calico까지 자동으로 배포할 시** Master node IP(HOST IP)가 **CIDR 내에 있으면 안됨**
- ssh 접속시 pem 키가 아닌 username과 password로 접속이 가능해야 함
- 스크립트 내 사용포트에 대해 open을 하나, 만약 별도의 자체 방화벽이 있을 경우 port 개방이 필요함
- ([필수 개방 포트 링크](https://v1-24.docs.kubernetes.io/docs/reference/ports-and-protocols/))
+ ([필수 개방 포트 링크](https://kubernetes.io/docs/reference/networking/ports-and-protocols/))
@@ -44,7 +44,7 @@
### 1. 파일 다운로드
-홈 디렉토리에서 `curl -sSLO http://raw.githubusercontent.com/kdgyun/KubernetesAutoDeployment/main/k8s-cluster-bootstrap.sh` 혹은 깃허브의 [**latest release 버전**](https://github.com/kdgyun/KubernetesAutoDeployment/releases/)을 다운로드하여 k8s-cluster-bootstrap.sh을 받기
+홈 디렉토리에서 `curl -sSLO http://raw.githubusercontent.com/kdgyun/k8s-cluster-bootstrap/main/k8s-cluster-bootstrap.sh` 혹은 깃허브의 [**latest release 버전**](https://github.com/kdgyun/k8s-cluster-bootstrap/releases/)을 다운로드하여 k8s-cluster-bootstrap.sh을 받기
@@ -84,14 +84,14 @@ sudo ./k8s-cluster-bootstrap.sh [options]
| ```-c / --cni``` | CIDR | 마스터 노드 생성시 cni(with calico)도 함께 설치합니다. | 해당 옵션을 사용할시, master node IP(Host IP)랑 대역이 겹치면 안되며, ```10.0.0.0/8```, ```172.16.0.0/12```, ```192.168.0.0/16``` 중 하나를 선택하여 입력하시면 됩니다. |
| ```-ct / --containertype``` | Container Runtime | container runtime 타입을 지정하고자 하는 경우 사용되는 옵션이며 지정하지 않을 경우 기본 값은 ```docker(cri-dockerd)``` 입니다. | 해당 옵션을 사용할시 **cri-dockerd** 의 경우 ```docker``` ,
**containerd** 의 경우 ```containerd``` 을 파라미터로 설정하여 사용하고자 하는 컨테이너 런타임을 입력하시면 됩니다. |
| ```-h / --help``` | | 옵션 및 설명을 볼 수 있습니다. | |
-| ```-i / --ip``` | Host IP | host ip (e.g. 10.0.0.1) 입니다.
만약 클라우드(e.g, aws, gcp …) 등을 사용 할 경우, public IP가 아닌, private IP를 사용해야 합니다. | |
+| ```-i / --ip``` | Master node (Host) IP | master node의 ip (e.g. 10.0.0.1) 입니다.
만약 클라우드(e.g, aws, gcp …) 등을 사용 할 경우, public IP가 아닌, private IP를 사용해야 합니다. | |
| ```-kv / --k8sversion``` | | 지원하는 쿠버네티스 버전을 보여줍니다. | |
| ```-m / --master``` | | master 노드를 생성하고자 하는 경우 ```-m``` 플래그를 사용하면 됩니다. | ```-i/--ip``` 플래그가 반드시 요구됩니다. |
| ```-ms / --metricserver``` | | kubernetes의 metrics-server를 설치하고자 하는 경우 ```-ms``` 플래그를 사용하면 됩니다. | master노드를 구성하는 경우에만 설치가 가능하기 때문에 ```-m/--master``` 플래그가 반드시 요구됩니다. |
| ```-p / --password``` | Master(Host) node password | ssh 로그인시 마스터 노드에 접속하기 위한 비밀번호입니다.
같은 서브넷 안에서 worker 노드 생성시 master 노드로부터 token을 갖고오기 위한 옵션입니다. | ```-u/--username``` 플래그와 반드시 같이 사용해야합니다. |
| ```-r / --regularuser```
**(\*beta)** | HOME_PATH of regular user | 현재 sudo 권한으로 실행한 user 외에 다른 일반 유저에 대해서도 접근 권한을 부여하고자 할 때 사용합니다.
```-r /home/username``` 과 같이 사용하며, 이 때 HOME_PATH는 반드시 **해당 계정의 홈 디렉토리($HOME)** 이어야 합니다. | 선택 옵션이나, ```-m``` (마스터 노드 생성) 때에만 사용되는 옵션입니다. |
| ```-u / --username``` | Master(Host) node username | ssh 로그인시 마스터 노드에 접속하기 위한 username입니다.
같은 서브넷 안에서 worker 노드 생성시 master 노드로부터 token을 갖고오기 위한 옵션입니다. | ```-p/--password``` 옵션과 반드시 같이 사용해야합니다. |
-| ```-v / --version``` | k8s version | Kubernetes 버전을 설정하기 위해 사용됩니다.
(e.g. -v 1.25.0)
지원 버전은 ```1.24.15``` 부터 ```1.27.5``` 까지이며 지원 버전을 상세하게 보고자 한다면 ```-kv``` 또는
```--k8sversion``` 옵션을 통해 확인이 가능합니다. | 해당 옵션을 사용하고자 하는 경우 파라미터는 ```x.y.z``` 형식으로 주어져야 합니다.
만약 해당 옵션을 사용하지 않을 경우 기본 버전은 ```1.24.15``` 이며 RC 또는 beta 버전의 경우 정식 릴리즈 버전이 아니므로 지원하지 않습니다. |
+| ```-v / --version``` | k8s version | Kubernetes 버전을 설정하기 위해 사용됩니다.
(e.g. -v 1.25.0)
지원 버전은 ```1.24.15``` 부터 ```1.31.2``` 까지이며 지원 버전을 상세하게 보고자 한다면 ```-kv``` 또는
```--k8sversion``` 옵션을 통해 확인이 가능합니다. | 해당 옵션을 사용하고자 하는 경우 파라미터는 ```x.y.z``` 형식으로 주어져야 합니다.
만약 해당 옵션을 사용하지 않을 경우 기본 버전은 ```1.24.15``` 이며 RC 또는 beta 버전의 경우 정식 릴리즈 버전이 아니므로 지원하지 않습니다. |
| ```-w / --worker``` | | worker 노드를 생성하고자 하는 경우 -w 플래그를 사용하면 됩니다. | ```-i/--ip``` , ```-u/--username```, ```-p/-password``` 3개의 옵션이 반드시 요구됩니다. |
diff --git a/VERSIONLIST b/VERSIONLIST
new file mode 100644
index 0000000..89f21bd
--- /dev/null
+++ b/VERSIONLIST
@@ -0,0 +1,79 @@
+1.24.15
+1.24.16
+1.24.17
+1.25.0
+1.25.1
+1.25.2
+1.25.3
+1.25.4
+1.25.5
+1.25.6
+1.25.7
+1.25.8
+1.25.9
+1.25.10
+1.25.11
+1.25.12
+1.25.13
+1.26.0
+1.26.1
+1.26.2
+1.26.3
+1.26.4
+1.26.5
+1.26.6
+1.26.7
+1.26.8
+1.27.0
+1.27.1
+1.27.2
+1.27.3
+1.27.4
+1.27.5
+1.27.6
+1.27.7
+1.27.9
+1.27.10
+1.27.11
+1.27.12
+1.27.13
+1.27.14
+1.27.15
+1.27.16
+1.28.0
+1.28.1
+1.28.2
+1.28.3
+1.28.4
+1.28.5
+1.28.6
+1.28.7
+1.28.8
+1.28.9
+1.28.10
+1.28.11
+1.28.12
+1.28.13
+1.28.14
+1.28.15
+1.29.0
+1.29.1
+1.29.2
+1.29.3
+1.29.4
+1.29.5
+1.29.6
+1.29.7
+1.29.8
+1.29.9
+1.29.10
+1.30.0
+1.30.1
+1.30.2
+1.30.3
+1.30.4
+1.30.5
+1.30.6
+1.31.0
+1.31.1
+1.31.2
\ No newline at end of file
diff --git a/k8s-cluster-bootstrap.sh b/k8s-cluster-bootstrap.sh
index 0bf21e2..4adc42c 100644
--- a/k8s-cluster-bootstrap.sh
+++ b/k8s-cluster-bootstrap.sh
@@ -127,7 +127,19 @@ if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
exit 1
fi
-SUPPORT_VERSION_LIST=("1.24.15" "1.24.16" "1.24.17" "1.25.0" "1.25.1" "1.25.2" "1.25.3" "1.25.4" "1.25.5" "1.25.6" "1.25.7" "1.25.8" "1.25.9" "1.25.10" "1.25.11" "1.25.12" "1.25.13" "1.26.0" "1.26.1" "1.26.2" "1.26.3" "1.26.4" "1.26.5" "1.26.6" "1.26.7" "1.26.8" "1.27.0" "1.27.1" "1.27.2" "1.27.3" "1.27.4" "1.27.5")
+VERSION_LIST_URL="https://raw.githubusercontent.com/kdgyun/k8s-cluster-bootstrap/main/VERSIONLIST"
+
+if curl -s --head "$VERSION_LIST_URL" | head -n 1 | grep -q "200"; then
+ # Read version list into an array
+ SUPPORT_VERSION_LIST=($(curl -s "$VERSION_LIST_URL"))
+ if [[ ${#SUPPORT_VERSION_LIST[@]} -eq 0 ]]; then
+ printstyle "Failed to fetch Kubernetes versions from $VERSION_LIST_URL. List is empty.\n" "danger"
+ exit 1
+ fi
+else
+ printstyle "Failed to access the version list URL: $VERSION_LIST_URL\n" "danger"
+ exit 1
+fi
VALID_PARAM2=false
VALID_WORKER=false
@@ -627,8 +639,8 @@ if [[ $VALID_MASTER == true ]]; then
sleep 120
mkdir $HOME_PATH/cni
cd $HOME_PATH/cni
- curl -sSLO https://raw.githubusercontent.com/kdgyun/KubernetesAutoDeployment/main/cni/prefix.yaml
- curl -sSLO https://raw.githubusercontent.com/kdgyun/KubernetesAutoDeployment/main/cni/suffix.yaml
+ curl -sSLO https://raw.githubusercontent.com/kdgyun/k8s-cluster-bootstrap/main/cni/prefix.yaml
+ curl -sSLO https://raw.githubusercontent.com/kdgyun/k8s-cluster-bootstrap/main/cni/suffix.yaml
cd $HOME_PATH
echo $(cat $HOME_PATH/cni/prefix.yaml>>$HOME_PATH/calico.yaml)
echo -e "\n - name: CALICO_IPV4POOL_CIDR\n value: "$CNI_CIDR"">>$HOME_PATH/calico.yaml