mirror of
https://github.com/jbowdre/vsphere-k8s.git
synced 2024-11-21 15:42:19 +00:00
Compare commits
3 commits
82e5e61064
...
beb7a2feca
Author | SHA1 | Date | |
---|---|---|---|
beb7a2feca | |||
7c671e1ee5 | |||
eea0551bca |
5 changed files with 13 additions and 10 deletions
|
@ -1,8 +1,13 @@
|
|||
# Vanilla Kubernetes on VMware vSphere
|
||||
|
||||
## Prerequisites
|
||||
1. [Packer](https://developer.hashicorp.com/packer/tutorials/docker-get-started/get-started-install-cli) installed on your system
|
||||
2. Account in vSphere with [appropriate privileges](https://developer.hashicorp.com/packer/plugins/builders/vsphere/vsphere-iso#required-vsphere-privileges)
|
||||
3. [Ubuntu Server 20.04 installation ISO](https://releases.ubuntu.com/20.04.5/) copied to a vSphere datastore
|
||||
|
||||
## Packer
|
||||
1. `cd packer`.
|
||||
2. Copy `linux-server.example.pkrvars.hcl` to `linux-server.auto.pkrvars.hcl` and update it as appropriate for your environment.
|
||||
2. Copy `ubuntu-k8s.example.pkrvars.hcl` to `ubuntu-k8s.auto.pkrvars.hcl` and update it as appropriate for your environment.
|
||||
2. Put the SSH private key which corresponds to the `build_key` variable in `packer_cache/ssh_private_key_packer.pem`.
|
||||
3. Place any needed internal CA PEM-formatted certs (with `.cer` file extension) in `certs/`.
|
||||
4. Run it with `packer build -on-error=abort -force .`.
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
#!/bin/bash -eu
|
||||
chmod 600 ~/.ssh/id_ed25519
|
||||
|
||||
echo ">> Installing Kubernetes components..."
|
||||
|
||||
# Configure and enable kernel modules
|
||||
|
|
|
@ -162,11 +162,6 @@ build {
|
|||
destination = "/tmp"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
source = "packer_cache/ssh_private_key_packer.pem"
|
||||
destination = "/home/${var.build_username}/.ssh/id_ed25519"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "export KUBEVERSION=${var.k8s_version}; bash {{ .Path }}"
|
||||
expect_disconnect = true
|
||||
|
|
|
@ -137,6 +137,7 @@ resource "vsphere_virtual_machine" "control" {
|
|||
"echo export K8S_POD_CIDR=\"'${var.k8s-pod-cidr}'\" >> env.txt",
|
||||
"echo export K8S_CLUSTER_NAME=\"'${var.k8s-cluster-name}'\" >> env.txt",
|
||||
"echo export K8S_CONTROLPLANE_VIP=\"'${var.k8s-controlplane-vip}'\" >> env.txt",
|
||||
"echo export K8S_CONTROLPLANE_COUNT=\"'${var.vm-control-count}'\" >> env.txt",
|
||||
"echo export KUBEVIP_VER=\"'${var.k8s-kubevip-version}'\" >> env.txt",
|
||||
"echo export K8S_NODE_COUNT=\"'${local.k8s-node-count}'\" >> env.txt",
|
||||
"echo export VCENTER_SERVER=\"'${var.vsphere-server}'\" >> env.txt",
|
||||
|
|
|
@ -343,10 +343,14 @@ datacenters = "${VCENTER_DATACENTER}"
|
|||
EOF
|
||||
|
||||
kubectl create secret generic vsphere-config-secret --from-file=csi-vsphere.conf --namespace=vmware-system-csi
|
||||
if kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/v2.7.0/manifests/vanilla/vsphere-csi-driver.yaml; then
|
||||
wget "https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/v2.7.0/manifests/vanilla/vsphere-csi-driver.yaml"
|
||||
if [ "${K8S_CONTROLPLANE_COUNT}" -lt 3 ]; then
|
||||
sed -i 's/replicas: 3/replicas: 1/' vsphere-csi-driver.yaml
|
||||
fi
|
||||
if kubectl apply -f vsphere-csi-driver.yaml; then
|
||||
echo ">> Cluster initialization complete!"
|
||||
touch .k8s-cluster-success
|
||||
rm -f csi-vsphere.conf discovery.yaml env.txt kubeadminit.yaml initialize-controlplane.sh
|
||||
rm -f csi-vsphere.conf discovery.yaml env.txt kubeadminit.yaml initialize-controlplane.sh vsphere-csi-driver.yaml
|
||||
else
|
||||
echo ">> [ERROR] Failed to configure CSI! <<"
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue