1
0
mirror of https://github.com/openshift/installer.git synced 2026-02-05 15:47:14 +01:00

platform-azure: copy from openstack

This commit is contained in:
Brandon Philips
2017-03-08 10:38:54 -08:00
parent b64179ea0b
commit 842e9ffdcf
5 changed files with 194 additions and 0 deletions

45
platform-azure/dns.tf Normal file
View File

@@ -0,0 +1,45 @@
data "aws_route53_zone" "tectonic" {
name = "${var.tectonic_base_domain}"
}
resource "aws_route53_record" "tectonic-api" {
zone_id = "${data.aws_route53_zone.tectonic.zone_id}"
name = "${var.tectonic_cluster_name}-k8s"
type = "A"
ttl = "60"
records = ["${openstack_compute_instance_v2.master_node.*.access_ip_v4}"]
}
resource "aws_route53_record" "tectonic-console" {
zone_id = "${data.aws_route53_zone.tectonic.zone_id}"
name = "${var.tectonic_cluster_name}"
type = "A"
ttl = "60"
records = ["${openstack_compute_instance_v2.worker_node.*.access_ip_v4}"]
}
resource "aws_route53_record" "etcd" {
zone_id = "${data.aws_route53_zone.tectonic.zone_id}"
name = "${var.tectonic_cluster_name}-etc"
type = "A"
ttl = "60"
records = ["${openstack_compute_instance_v2.etcd_node.*.access_ip_v4}"]
}
resource "aws_route53_record" "master_nodes" {
count = "${var.tectonic_master_count}"
zone_id = "${data.aws_route53_zone.tectonic.zone_id}"
name = "${var.tectonic_cluster_name}-master-${count.index}"
type = "A"
ttl = "60"
records = ["${openstack_compute_instance_v2.master_node.*.access_ip_v4[count.index]}"]
}
resource "aws_route53_record" "worker_nodes" {
count = "${var.tectonic_worker_count}"
zone_id = "${data.aws_route53_zone.tectonic.zone_id}"
name = "${var.tectonic_cluster_name}-worker-${count.index}"
type = "A"
ttl = "60"
records = ["${openstack_compute_instance_v2.worker_node.*.access_ip_v4[count.index]}"]
}

41
platform-azure/etcd.tf Normal file
View File

@@ -0,0 +1,41 @@
resource "openstack_compute_instance_v2" "etcd_node" {
count = "${var.tectonic_etcd_count}"
name = "${var.tectonic_cluster_name}_etcd_node_${count.index}"
image_id = "${var.tectonic_openstack_image_id}"
flavor_id = "${var.tectonic_openstack_flavor_id}"
key_pair = "${openstack_compute_keypair_v2.k8s_keypair.name}"
security_groups = ["${openstack_compute_secgroup_v2.etcd_group.name}"]
metadata {
role = "etcd"
}
user_data = "${ignition_config.etcd.*.rendered[count.index]}"
config_drive = false
}
resource "openstack_compute_secgroup_v2" "etcd_group" {
name = "${var.tectonic_cluster_name}_etcd_group"
description = "security group for etcd: SSH and etcd client / cluster"
rule {
from_port = 22
to_port = 22
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
rule {
from_port = 2379
to_port = 2380
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
rule {
from_port = -1
to_port = -1
ip_protocol = "icmp"
cidr = "0.0.0.0/0"
}
}

69
platform-azure/master.tf Normal file
View File

@@ -0,0 +1,69 @@
resource "openstack_compute_instance_v2" "master_node" {
count = "${var.tectonic_master_count}"
name = "${var.tectonic_cluster_name}_master_node_${count.index}"
image_id = "${var.tectonic_openstack_image_id}"
flavor_id = "${var.tectonic_openstack_flavor_id}"
key_pair = "${openstack_compute_keypair_v2.k8s_keypair.name}"
security_groups = ["${openstack_compute_secgroup_v2.k8s_master_group.name}"]
metadata {
role = "master"
}
user_data = "${ignition_config.master.*.rendered[count.index]}"
config_drive = false
}
resource "openstack_compute_secgroup_v2" "k8s_master_group" {
name = "${var.tectonic_cluster_name}_k8s_master_group"
description = "security group for k8s masters: SSH and https"
rule {
from_port = 22
to_port = 22
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
rule {
from_port = 443
to_port = 443
ip_protocol = "tcp"
cidr = "0.0.0.0/0"
}
rule {
from_port = -1
to_port = -1
ip_protocol = "icmp"
cidr = "0.0.0.0/0"
}
}
resource "null_resource" "copy_assets" {
# Changes to any instance of the cluster requires re-provisioning
triggers {
cluster_instance_ids = "${join(" ", openstack_compute_instance_v2.master_node.*.id)}"
}
# Bootstrap script can run on any instance of the cluster
# So we just choose the first in this case
connection {
user = "core"
private_key = "${tls_private_key.core.private_key_pem}"
host = "${element(openstack_compute_instance_v2.master_node.*.access_ip_v4, 0)}"
}
provisioner "file" {
source = "${path.cwd}/assets"
destination = "/home/core/assets"
}
provisioner "remote-exec" {
inline = [
"sudo mv /home/core/assets /opt/bootkube/",
"sudo chmod a+x /opt/bootkube/assets/bootkube-start",
"sudo systemctl start bootkube",
]
}
}

25
platform-azure/secrets.tf Normal file
View File

@@ -0,0 +1,25 @@
resource "tls_private_key" "core" {
algorithm = "RSA"
}
resource "openstack_compute_keypair_v2" "k8s_keypair" {
name = "${var.tectonic_cluster_name}_keypair"
public_key = "${tls_private_key.core.public_key_openssh}"
}
resource "null_resource" "export" {
provisioner "local-exec" {
command = "echo '${tls_private_key.core.private_key_pem}' >id_rsa_core && chmod 0600 id_rsa_core"
}
provisioner "local-exec" {
command = "echo '${tls_private_key.core.public_key_openssh}' >id_rsa_core.pub"
}
}
resource "ignition_user" "core" {
name = "core"
ssh_authorized_keys = [
"${tls_private_key.core.public_key_openssh}",
]
}

14
platform-azure/workers.tf Normal file
View File

@@ -0,0 +1,14 @@
resource "openstack_compute_instance_v2" "worker_node" {
count = "${var.tectonic_worker_count}"
name = "${var.tectonic_cluster_name}_worker_node_${count.index}"
image_id = "${var.tectonic_openstack_image_id}"
flavor_id = "${var.tectonic_openstack_flavor_id}"
key_pair = "${openstack_compute_keypair_v2.k8s_keypair.name}"
metadata {
role = "worker"
}
user_data = "${ignition_config.worker.*.rendered[count.index]}"
config_drive = false
}