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:
45
platform-azure/dns.tf
Normal file
45
platform-azure/dns.tf
Normal 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
41
platform-azure/etcd.tf
Normal 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
69
platform-azure/master.tf
Normal 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
25
platform-azure/secrets.tf
Normal 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
14
platform-azure/workers.tf
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user