Skip to content
Snippets Groups Projects
Commit feb9c487 authored by Rob Kooper's avatar Rob Kooper
Browse files

remove deprecated code

- removed centos references
- added ability to pick CNI
parent c639d596
No related branches found
No related tags found
No related merge requests found
.DS_Store
.idea .idea
.terraform .terraform
......
...@@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file. ...@@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
## 3.0.0 - 2023-02-22
This removes the old variables for creating machines that were deprecated, and removes references to centos.
### Changed
- removed all deprecated code, clusters are defined in cluster.json
### Added
- ability to set network. Default is weave to be compatible with previous version but this should be changed. Weave is EOL 12/31/2024
- canal (rancher default)
- calico
- flannel
- weave (deprecated)
- none
- ubuntu is an alias for ubuntu22 as an os type in cluster. This is in preperation for ubuntu 24.04.
### Removed
- removed centos image reference.
## 2.4.0 - 2023-12-21 ## 2.4.0 - 2023-12-21
### Changed ### Changed
......
...@@ -3,13 +3,6 @@ data "openstack_networking_network_v2" "ext_net" { ...@@ -3,13 +3,6 @@ data "openstack_networking_network_v2" "ext_net" {
name = var.openstack_external_net name = var.openstack_external_net
} }
# boot image
# DEPRECATED
data "openstack_images_image_v2" "boot" {
name = var.os
most_recent = true
}
# openstack project name (bbXX) # openstack project name (bbXX)
data "openstack_identity_auth_scope_v3" "scope" { data "openstack_identity_auth_scope_v3" "scope" {
name = "my_scope" name = "my_scope"
...@@ -17,6 +10,6 @@ data "openstack_identity_auth_scope_v3" "scope" { ...@@ -17,6 +10,6 @@ data "openstack_identity_auth_scope_v3" "scope" {
data "openstack_images_image_v2" "os_image" { data "openstack_images_image_v2" "os_image" {
for_each = var.openstack_os_image for_each = var.openstack_os_image
name = each.value name = each.value.imagename
most_recent = true most_recent = true
} }
...@@ -80,44 +80,3 @@ resource "openstack_networking_floatingip_v2" "machine_ip" { ...@@ -80,44 +80,3 @@ resource "openstack_networking_floatingip_v2" "machine_ip" {
pool = data.openstack_networking_network_v2.ext_net.name pool = data.openstack_networking_network_v2.ext_net.name
port_id = openstack_networking_port_v2.machine_ip[each.key].id port_id = openstack_networking_port_v2.machine_ip[each.key].id
} }
# ----------------------------------------------------------------------
# control plane
# DEPRECATED
# ----------------------------------------------------------------------
resource "openstack_networking_port_v2" "controlplane_ip" {
count = var.controlplane_count
name = local.controlplane[count.index]
network_id = openstack_networking_network_v2.cluster_net.id
security_group_ids = [openstack_networking_secgroup_v2.cluster_security_group.id]
depends_on = [openstack_networking_router_interface_v2.kube_gateway]
}
resource "openstack_networking_floatingip_v2" "controlplane_ip" {
count = var.controlplane_count
description = format("%s-controlplane-%d", var.cluster_name, count.index + 1)
pool = data.openstack_networking_network_v2.ext_net.name
port_id = element(openstack_networking_port_v2.controlplane_ip.*.id, count.index)
}
# ----------------------------------------------------------------------
# worker nodes
# DEPRECATED
# ----------------------------------------------------------------------
# create worker ip, this can route the ports for the floating ip as
# well.
resource "openstack_networking_port_v2" "worker_ip" {
count = var.worker_count
name = local.worker[count.index]
network_id = openstack_networking_network_v2.cluster_net.id
security_group_ids = [openstack_networking_secgroup_v2.cluster_security_group.id]
depends_on = [openstack_networking_router_interface_v2.kube_gateway]
dynamic "allowed_address_pairs" {
for_each = openstack_networking_port_v2.floating_ip.*.all_fixed_ips.0
content {
ip_address = allowed_address_pairs.value
}
}
}
locals { locals {
usernames = {
"centos" = "centos",
"ubuntu" = "ubuntu"
}
node_options = { node_options = {
"controlplane" = "--address awspublic --internal-address awslocal --controlplane --etcd", "controlplane" = "--address awspublic --internal-address awslocal --controlplane --etcd",
"worker" = "--address awspublic --internal-address awslocal --worker" "worker" = "--address awspublic --internal-address awslocal --worker"
...@@ -13,10 +8,10 @@ locals { ...@@ -13,10 +8,10 @@ locals {
for x in var.cluster_machines : [ for x in var.cluster_machines : [
for i in range(contains(keys(x), "count") ? x.count : 1) : { for i in range(contains(keys(x), "count") ? x.count : 1) : {
hostname = format("%s-%s-%02d", var.cluster_name, x.name, (i + (contains(keys(x), "start_index") ? x.start_index : 1))) hostname = format("%s-%s-%02d", var.cluster_name, x.name, (i + (contains(keys(x), "start_index") ? x.start_index : 1)))
username = lookup(local.usernames, x.os, "UNDEFINED") username = var.openstack_os_image[x.os].username
image_name = lookup(var.openstack_os_image, x.os, "UNDEFINED") image_name = var.openstack_os_image[x.os].imagename
flavor = try(x.flavor, "gp.medium") flavor = try(x.flavor, "gp.medium")
image_id = data.openstack_images_image_v2.os_image[try(x.os, "UNDEFINED")].id image_id = data.openstack_images_image_v2.os_image[x.os].id
disk_size = try(x.disk, 40) disk_size = try(x.disk, 40)
zone = try(x.zone, "nova") zone = try(x.zone, "nova")
role = try(x.role, "worker") role = try(x.role, "worker")
...@@ -26,11 +21,7 @@ locals { ...@@ -26,11 +21,7 @@ locals {
] ]
]) ])
jumphost = concat([for vm in local.machines : vm.hostname if vm.floating_ip], local.controlplane)[0] jumphost = [for vm in local.machines : vm.hostname if vm.floating_ip][0]
# DEPRECATED
controlplane = [for l in range(var.controlplane_count) : var.old_hostnames ? format("%s-controlplane-%d", var.cluster_name, l) : format("%s-controlplane-%d", var.cluster_name, l + 1)]
worker = [for l in range(var.worker_count) : var.old_hostnames ? format("%s-worker-%d", var.cluster_name, l) : format("%s-worker-%02d", var.cluster_name, l + 1)]
} }
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -88,124 +79,3 @@ resource "openstack_compute_instance_v2" "machine" { ...@@ -88,124 +79,3 @@ resource "openstack_compute_instance_v2" "machine" {
] ]
} }
} }
# ----------------------------------------------------------------------
# control-plane nodes
# DEPRECATED
# ----------------------------------------------------------------------
resource "openstack_compute_instance_v2" "controlplane" {
count = var.controlplane_count
name = local.controlplane[count.index]
image_name = var.os
availability_zone = var.openstack_zone
flavor_name = var.controlplane_flavor
key_pair = openstack_compute_keypair_v2.key.name
config_drive = false
depends_on = [
openstack_networking_secgroup_rule_v2.same_security_group_ingress_tcp,
]
security_groups = [
openstack_networking_secgroup_v2.cluster_security_group.name
]
#echo "update hosts"
#%{ for ip in openstack_networking_port_v2.worker_ip[count.index].all_fixed_ips }
#echo "$${ip} $${node_name} $(hostname) $(hostname -f)" >> /etc/hosts
#%{ endfor }
user_data = base64encode(templatefile("${path.module}/templates/user_data.tmpl", {
private_key = openstack_compute_keypair_v2.key.private_key
project_name = data.openstack_identity_auth_scope_v3.scope.project_name
cluster_name = var.cluster_name
username = "centos"
node_name = local.controlplane[count.index]
node_command = rancher2_cluster.kube.cluster_registration_token.0.node_command
node_options = "--address awspublic --internal-address awslocal --controlplane --etcd"
node_labels = ""
ncsa_security = false
taiga_enabled = var.taiga_enabled
install_docker = var.install_docker
}))
block_device {
uuid = data.openstack_images_image_v2.boot.id
source_type = "image"
volume_size = var.controlplane_disksize
destination_type = "volume"
delete_on_termination = true
}
network {
port = element(openstack_networking_port_v2.controlplane_ip.*.id, count.index)
}
lifecycle {
ignore_changes = [
key_pair,
block_device,
user_data,
availability_zone
]
}
}
# ----------------------------------------------------------------------
# worker nodes
# DEPRECATED
# ----------------------------------------------------------------------
resource "openstack_compute_instance_v2" "worker" {
count = var.worker_count
name = local.worker[count.index]
image_name = var.os
availability_zone = var.openstack_zone
flavor_name = var.worker_flavor
key_pair = local.key
config_drive = false
depends_on = [
openstack_networking_secgroup_rule_v2.same_security_group_ingress_tcp
]
security_groups = [
openstack_networking_secgroup_v2.cluster_security_group.name
]
user_data = base64encode(templatefile("${path.module}/templates/user_data.tmpl", {
private_key = openstack_compute_keypair_v2.key.private_key
project_name = data.openstack_identity_auth_scope_v3.scope.project_name
cluster_name = var.cluster_name
node_name = local.worker[count.index]
username = "centos"
node_command = rancher2_cluster.kube.cluster_registration_token.0.node_command
node_options = "--worker"
node_labels = ""
ncsa_security = false
taiga_enabled = var.taiga_enabled
install_docker = var.install_docker
}))
block_device {
uuid = data.openstack_images_image_v2.boot.id
source_type = "image"
volume_size = var.worker_disksize
destination_type = "volume"
boot_index = 0
delete_on_termination = true
}
network {
port = element(openstack_networking_port_v2.worker_ip.*.id, count.index)
}
lifecycle {
ignore_changes = [
key_pair,
block_device,
user_data,
availability_zone
]
}
}
...@@ -24,15 +24,6 @@ output "ssh_config" { ...@@ -24,15 +24,6 @@ output "ssh_config" {
value = <<-EOT value = <<-EOT
# Automatically created by terraform # Automatically created by terraform
%{~for i, x in openstack_compute_instance_v2.controlplane.*}
Host ${x.name}
HostName ${openstack_networking_floatingip_v2.controlplane_ip[i].address}
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
IdentityFile ${pathexpand("~/.ssh/${var.cluster_name}.pem")}
User centos
%{~endfor}
%{~for x in [for m in local.machines : m if m.floating_ip]} %{~for x in [for m in local.machines : m if m.floating_ip]}
Host ${x.hostname} Host ${x.hostname}
HostName ${openstack_networking_floatingip_v2.machine_ip[x.hostname].address} HostName ${openstack_networking_floatingip_v2.machine_ip[x.hostname].address}
...@@ -42,16 +33,6 @@ Host ${x.hostname} ...@@ -42,16 +33,6 @@ Host ${x.hostname}
User ${x.username} User ${x.username}
%{~endfor} %{~endfor}
%{~for x in openstack_compute_instance_v2.worker.*}
Host ${x.name}
HostName ${x.network[0].fixed_ip_v4}
StrictHostKeyChecking no
ProxyJump ${local.jumphost}
UserKnownHostsFile=/dev/null
IdentityFile ${pathexpand("~/.ssh/${var.cluster_name}.pem")}
User centos
%{~endfor}
%{~for x in [for m in local.machines : m if !m.floating_ip]} %{~for x in [for m in local.machines : m if !m.floating_ip]}
Host ${x.hostname} Host ${x.hostname}
ProxyJump ${local.jumphost} ProxyJump ${local.jumphost}
......
...@@ -14,7 +14,7 @@ resource "rancher2_cluster" "kube" { ...@@ -14,7 +14,7 @@ resource "rancher2_cluster" "kube" {
kubernetes_version = var.rke1_version kubernetes_version = var.rke1_version
enable_cri_dockerd = true enable_cri_dockerd = true
network { network {
plugin = "weave" plugin = var.network_plugin
} }
ingress { ingress {
provider = "none" provider = "none"
...@@ -34,7 +34,7 @@ resource "rancher2_cluster" "kube" { ...@@ -34,7 +34,7 @@ resource "rancher2_cluster" "kube" {
# Create a new rancher2 Cluster Sync for foo-custom cluster # Create a new rancher2 Cluster Sync for foo-custom cluster
resource "rancher2_cluster_sync" "kube" { resource "rancher2_cluster_sync" "kube" {
depends_on = [openstack_compute_instance_v2.controlplane[0]] depends_on = [openstack_compute_instance_v2.machine]
cluster_id = rancher2_cluster.kube.id cluster_id = rancher2_cluster.kube.id
wait_catalogs = false wait_catalogs = false
} }
...@@ -101,57 +101,3 @@ resource "rancher2_cluster_role_template_binding" "member_groups" { ...@@ -101,57 +101,3 @@ resource "rancher2_cluster_role_template_binding" "member_groups" {
] ]
} }
} }
# ----------------------------------------------------------------------
# longhorn storage
# DEPRECATED
# ----------------------------------------------------------------------
resource "rancher2_app_v2" "longhorn-system" {
count = var.longhorn_enabled ? 1 : 0
cluster_id = rancher2_cluster_sync.kube.cluster_id
name = "longhorn"
namespace = "longhorn-system"
repo_name = "rancher-charts"
chart_name = "longhorn"
project_id = rancher2_cluster_sync.kube.system_project_id
values = <<EOF
defaultSettings:
backupTarget: nfs://radiant-nfs.ncsa.illinois.edu:/radiant/projects/${data.openstack_identity_auth_scope_v3.scope.project_name}/${var.cluster_name}/backup
defaultReplicaCount: ${var.longhorn_replicas}
persistence:
defaultClass: false
defaultClassReplicaCount: ${var.longhorn_replicas}
EOF
lifecycle {
ignore_changes = [
values
]
}
}
# ----------------------------------------------------------------------
# monitoring
# DEPRECATED
# ----------------------------------------------------------------------
resource "rancher2_app_v2" "monitor" {
count = var.monitoring_enabled ? 1 : 0
cluster_id = rancher2_cluster_sync.kube.cluster_id
name = "rancher-monitoring"
namespace = "cattle-monitoring-system"
repo_name = "rancher-charts"
chart_name = "rancher-monitoring"
project_id = rancher2_cluster_sync.kube.system_project_id
// values = <<EOF
//prometheus:
// resources:
// core:
// limits:
// cpu: "4000m"
// memory: "6144Mi"
//EOF
lifecycle {
ignore_changes = [
values
]
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment