Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
torwen1 committed Jul 23, 2021
1 parent fd9751e commit f677382
Show file tree
Hide file tree
Showing 9 changed files with 135 additions and 10 deletions.
28 changes: 27 additions & 1 deletion docs/var.tfvars-doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,38 @@ This variable can be used for trying out custom OpenShift install image for deve
release_image_override = ""
```

These variables specify the ansible playbooks that are used for OpenShift install and post-install customizations.
These variables specify the ansible playbooks that are used for OpenShift install and post-install customizations. If the URL ends with a file name extension .zip, then it is assumed that it points to a HTTP/HTTPS server and curl/unzip will be used to extract the package. URLs without ending with .zip are recognized as GitHub repositories and git clone && git checkout are used.
`Only .zip is supported file format on web servers. The all files must be placed in a subfolder called ocp4-playbooks-master, or ocp4-helpernode-master! This is the default structure, if you download the playbooks from GitHub.com website and uses the "Download as ZIP" function, which is the recommended way. Exception is the help_repo, which is expected to be a tar.gz file format (default when downloading from the original source without manipulation afterwards!`
Valid options: Requires a URL pointing to the packages/GitHub project.
```
helpernode_repo = "https://<HTTP SERVER>/ocp4-ansible-modules/ocp4-helpernode-master.zip"
OR
helpernode_repo = "https://github.com/RedHatOfficial/ocp4-helpernode"
helpernode_tag = "5eab3db53976bb16be582f2edc2de02f7510050d"
install_playbook_repo = "https://<HTTP SERVER>/ocp4-ansible-modules/ocp4-playbooks-master.zip"
OR
install_playbook_repo = "https://github.com/ocp-power-automation/ocp4-playbooks"
install_playbook_tag = "02a598faa332aa2c3d53e8edd0e840440ff74bd5"
helm_repo = "https://<HTTP SERVER>/python-modules/helm-latest-linux-ppc64le.tar.gz"
```

If you want to provide the ansible playbooks by your local HTTP server, follow these steps:
```
Use your web browser and visit https://github.com/RedHatOfficial/ocp4-helpernode
On the main page of the master brach, click on the green "Code" button with a download symbol in front of it
Click on "Download ZIP"
Upload the file to your local HTTP server and place it in the appropriate directory
Use your web browser and visit https://github.com/ocp-power-automation/ocp4-playbooks
On the main page of the master brach, click on the green "Code" button with a download symbol in front of it
Click on "Download ZIP"
Upload the file to your local HTTP server and place it in the appropriate directory
ls -la /var/www/html/repos/
total 13452
-rw-r--r--. 1 root root 13624204 Jul 8 13:43 ocp4-helpernode-master.tgz
-rw-r--r--. 1 root root 145165 Jul 8 13:44 ocp4-playbooks-master.tgz
```

These variables can be used when debugging ansible playbooks
Expand Down
2 changes: 1 addition & 1 deletion modules/1_bastion/bastion.tf
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ resource "null_resource" "bastion_packages" {
provisioner "remote-exec" {
inline = [
"#sudo yum update -y --skip-broken",
"sudo yum install -y wget jq git net-tools vim python3 tar"
"sudo yum install -y wget jq git net-tools vim python3 tar curl unzip"
]
}
provisioner "remote-exec" {
Expand Down
55 changes: 52 additions & 3 deletions modules/3_helpernode/helpernode.tf
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ locals {
]

local_registry = local.local_registry
helm_repo = var.helm_repo
client_tarball = var.openshift_client_tarball
install_tarball = var.openshift_install_tarball
}
Expand All @@ -75,12 +76,11 @@ locals {
}
}

resource "null_resource" "config" {

resource "null_resource" "prep_helpernode_tools_git" {
triggers = {
bootstrap_count = var.bootstrap_port_ip == "" ? 0 : 1
worker_count = length(var.worker_port_ips)
}
count = length(regexall("\\.zip$", var.helpernode_repo)) == 0 ? 1 : 0

connection {
type = "ssh"
Expand All @@ -101,6 +101,55 @@ resource "null_resource" "config" {
"cd ocp4-helpernode && git checkout ${var.helpernode_tag}"
]
}
}

resource "null_resource" "prep_helpernode_tools_curl" {
triggers = {
bootstrap_count = var.bootstrap_port_ip == "" ? 0 : 1
}
count = length(regexall("\\.zip$", var.helpernode_repo)) > 0 ? 1 : 0

connection {
type = "ssh"
user = var.rhel_username
host = var.bastion_ip[0]
private_key = var.private_key
agent = var.ssh_agent
timeout = "${var.connection_timeout}m"
bastion_host = var.jump_host
}

provisioner "remote-exec" {
inline = [
"mkdir -p .openshift",
"rm -rf ocp4-helpernode",
"echo 'Downloading ocp4-helpernode...'",
"curl -o ocp4-helpernode.zip ${var.helpernode_repo}",
"echo 'Extracting ocp4-helpernode...'",
"unzip ocp4-helpernode.zip",
"mv ocp4-helpernode-master ocp4-helpernode",
"rm ocp4-helpernode.zip"
]
}
}

resource "null_resource" "config" {
depends_on = [null_resource.prep_helpernode_tools_git, null_resource.prep_helpernode_tools_curl]
triggers = {
bootstrap_count = var.bootstrap_port_ip == "" ? 0 : 1
worker_count = length(var.worker_port_ips)
}

connection {
type = "ssh"
user = var.rhel_username
host = var.bastion_ip[0]
private_key = var.private_key
agent = var.ssh_agent
timeout = "${var.connection_timeout}m"
bastion_host = var.jump_host
}

provisioner "file" {
content = templatefile("${path.module}/templates/helpernode_inventory", local.helpernode_inventory)
destination = "$HOME/ocp4-helpernode/inventory"
Expand Down
2 changes: 1 addition & 1 deletion modules/3_helpernode/templates/helpernode_vars.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,4 @@ ocp_initramfs: "file:///dev/null"
ocp_install_kernel: "file:///dev/null"

# This is required for latest helpernode. TODO: Remove when https://github.com/RedHatOfficial/ocp4-helpernode/pull/140 is merged
helm_source: "https://get.helm.sh/helm-v3.4.0-linux-ppc64le.tar.gz"
helm_source: "${helm_repo}"
1 change: 1 addition & 0 deletions modules/3_helpernode/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ variable "ocp_release_tag" {}

variable "helpernode_repo" {}
variable "helpernode_tag" {}
variable "helm_repo" {}

variable "ansible_extra_options" {}

Expand Down
50 changes: 46 additions & 4 deletions modules/5_install/install.tf
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,8 @@ locals {
}
}

resource "null_resource" "install" {
triggers = {
worker_count = length(var.worker_ips)
}
resource "null_resource" "prep_playbooks_tools_git" {
count = length(regexall("\\.zip$", var.install_playbook_repo)) == 0 ? 1 : 0

connection {
type = "ssh"
Expand All @@ -96,6 +94,50 @@ resource "null_resource" "install" {
"cd ocp4-playbooks && git checkout ${var.install_playbook_tag}"
]
}
}

resource "null_resource" "prep_playbooks_tools_curl" {
count = length(regexall("\\.zip$", var.install_playbook_repo)) > 0 ? 1 : 0

connection {
type = "ssh"
user = var.rhel_username
host = var.bastion_ip[0]
private_key = var.private_key
agent = var.ssh_agent
timeout = "${var.connection_timeout}m"
bastion_host = var.jump_host
}

provisioner "remote-exec" {
inline = [
"rm -rf ocp4-playbooks",
"echo 'Downloading ocp4-playbooks...'",
"curl -o ocp4-playbooks.zip ${var.install_playbook_repo}",
"echo 'Extracting ocp4-playbooks...'",
"unzip ocp4-playbooks.tar.gz",
"mv ocp4-playbooks-master ocp4-playbooks",
"rm ocp4-playbooks.tar.gz"
]
}
}

resource "null_resource" "install" {
depends_on = [null_resource.prep_playbooks_tools_git, null_resource.prep_playbooks_tools_curl]
triggers = {
worker_count = length(var.worker_ips)
}

connection {
type = "ssh"
user = var.rhel_username
host = var.bastion_ip[0]
private_key = var.private_key
agent = var.ssh_agent
timeout = "${var.connection_timeout}m"
bastion_host = var.jump_host
}

provisioner "file" {
content = templatefile("${path.module}/templates/install_inventory", local.install_inventory)
destination = "$HOME/ocp4-playbooks/inventory"
Expand Down
1 change: 1 addition & 0 deletions ocp.tf
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ module "helpernode" {
ocp_release_tag = var.ocp_release_tag
helpernode_repo = var.helpernode_repo
helpernode_tag = var.helpernode_tag
helm_repo = var.helm_repo
ansible_extra_options = var.ansible_extra_options
chrony_config = var.chrony_config
chrony_config_servers = var.chrony_config_servers
Expand Down
1 change: 1 addition & 0 deletions var.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ cluster_id = "" # It will use random generated id with
#helpernode_tag = ""
#install_playbook_repo = "https://github.com/ocp-power-automation/ocp4-playbooks"
#install_playbook_tag = ""
#helm_repo = "https://get.helm.sh/helm-v3.4.0-linux-ppc64le.tar.gz"

#installer_log_level = "info"
#ansible_extra_options = "-v"
Expand Down
5 changes: 5 additions & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,11 @@ variable "install_playbook_tag" {
default = "10fec74c9e987b39f7af1127abe304a9e41f8e65"
}

variable "helm_repo" {
description = "Set the URL after http_server_repo_main_dir pointing to the Python helm modules"
default = "https://get.helm.sh/helm-v3.4.0-linux-ppc64le.tar.gz"
}

variable "ansible_extra_options" {
description = "Extra options string to append to ansible-playbook commands"
default = "-v"
Expand Down

0 comments on commit f677382

Please sign in to comment.