1
0
mirror of https://github.com/jcwimer/multi-cloud-kubernetes synced 2026-04-01 12:55:25 +00:00

Added asible to configure Kubernetes with RKE

This commit is contained in:
2020-07-02 16:57:29 -04:00
parent 4defd3a0b9
commit 0a6a7d03c7
19 changed files with 359 additions and 28 deletions

View File

@@ -13,7 +13,7 @@ resource "digitalocean_tag" "worker" {
resource "digitalocean_droplet" "master" {
provider = digitalocean.digitalocean
image = "ubuntu-20-04-x64"
image = "debian-10-x64"
name = "multicloud-digitalocean-master"
region = "nyc1"
size = "s-1vcpu-2gb"
@@ -25,7 +25,7 @@ resource "digitalocean_droplet" "master" {
resource "digitalocean_droplet" "worker" {
provider = digitalocean.digitalocean
image = "ubuntu-20-04-x64"
image = "debian-10-x64"
name = "multicloud-digitalocean-worker"
region = "nyc1"
size = "s-1vcpu-2gb"

View File

@@ -23,11 +23,18 @@ resource "openstack_compute_secgroup_v2" "multicloud_home" {
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
rule {
from_port = 6443
to_port = 6443
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
}
data "openstack_images_image_v2" "ubuntu" {
provider = openstack.home
name = "xenial-image"
name = "debian-10-image"
most_recent = true
}
@@ -37,7 +44,7 @@ resource "openstack_compute_instance_v2" "home-master" {
flavor_name = "g1.medium"
key_pair = "multicloud"
security_groups = [openstack_compute_secgroup_v2.multicloud_home.name]
image_name = "xenial-image"
image_name = "debian-10-image"
user_data = data.template_file.user-data.rendered
network {
name = "GATEWAY_NET"
@@ -49,10 +56,11 @@ resource "openstack_compute_instance_v2" "home-master" {
block_device {
uuid = data.openstack_images_image_v2.ubuntu.id
source_type = "image"
volume_size = 20
volume_size = 50
volume_type = "standard"
boot_index = 0
destination_type = "volume"
delete_on_termination = false
delete_on_termination = true
}
count = 1
}
@@ -74,10 +82,10 @@ resource "openstack_compute_instance_v2" "home-worker" {
block_device {
uuid = data.openstack_images_image_v2.ubuntu.id
source_type = "image"
volume_size = 20
volume_size = 50
boot_index = 0
destination_type = "volume"
delete_on_termination = false
delete_on_termination = true
}
count = 1
}

View File

@@ -23,6 +23,13 @@ resource "openstack_compute_secgroup_v2" "multicloud_ramnode" {
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
rule {
from_port = 6443
to_port = 6443
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
}
resource "openstack_compute_instance_v2" "ramnode-master" {
@@ -31,7 +38,7 @@ resource "openstack_compute_instance_v2" "ramnode-master" {
flavor_name = "2GB SKVM"
key_pair = "multicloud"
security_groups = [openstack_compute_secgroup_v2.multicloud_ramnode.name]
image_name = "Ubuntu 20.04 Server Cloud"
image_name = "Debian 10 Cloud"
user_data = data.template_file.user-data.rendered
network {
name = "Public"
@@ -49,7 +56,7 @@ resource "openstack_compute_instance_v2" "ramnode-worker" {
flavor_name = "2GB SKVM"
key_pair = "multicloud"
security_groups = [openstack_compute_secgroup_v2.multicloud_ramnode.name]
image_name = "Ubuntu 20.04 Server Cloud"
image_name = "Debian 10 Cloud"
user_data = data.template_file.user-data.rendered
network {
name = "Public"

View File

@@ -5,7 +5,7 @@ resource "local_file" "hosts_cfg" {
ramnode_masters = "${join("\n", openstack_compute_instance_v2.ramnode-master.*.network.0.fixed_ip_v4)}"
home_workers = "${join("\n", openstack_compute_instance_v2.home-worker.*.network.0.fixed_ip_v4)}"
home_masters = "${join("\n", openstack_compute_instance_v2.home-master.*.network.0.fixed_ip_v4)}"
do_workers = "${join("\n", digitalocean_droplet.worker.*.ipv4_address)}"
do_workers = "${join("\n", digitalocean_droplet.worker.*.ipv4_address) }"
do_masters = "${join("\n", digitalocean_droplet.master.*.ipv4_address)}"
}
)

View File

@@ -1,6 +1,36 @@
#!/bin/bash
#!/bin/bash
apt-get update
apt-get install python-dev python-pip curl sudo -y
if ! which docker > /dev/null; then
curl -s -L https://raw.githubusercontent.com/rancher/install-docker/master/19.03.9.sh | bash
fi
curl -s https://install.zerotier.com | sudo bash
zerotier-cli join ${zerotier_network}
curl -s https://install.zerotier.com | bash
zerotier-cli join ${zerotier_network}
user=debian
if ! cat /etc/passwd | grep debian; then
# Add the user (--gecos "" ensures that this runs non-interactively)
adduser --disabled-password --gecos "" $user
# Give read-only access to log files by adding the user to adm group
# Other groups that you may want to add are apache, nginx, mysql etc. for their log files
usermod -a -G adm $user
# Give sudo access by adding the user to sudo group
usermod -a -G sudo $user
# Allow passwordless sudo
echo "$user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$user
# Add the user's auth key to allow ssh access
mkdir /home/$user/.ssh
cp /root/.ssh/authorized_keys /home/$user/.ssh/authorized_keys
# Change ownership and access modes for the new directory/file
chown -R $user:$user /home/$user/.ssh
chmod -R go-rx /home/$user/.ssh
fi
usermod -a -G docker $user
# for RKE
# iptables -I INPUT -j ACCEPT