Skip to content

Commit da6d9af

Browse files
authored
476 cicd demo (#477)
Most changes are formatting (terraform fmt). Functionality changes: - add executable to .sh/.py files - move instance template files into cloud-init to avoid terraform provisioner - prevent a race on the adb wallet file and compute directories - specify source of OCI provider to avoid using out-dated hashicorp - Hard versioned SQLcl to 22.1
1 parent 3ea9acc commit da6d9af

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+620
-650
lines changed

workshops/dcms-cicd/config/apply.sh

100644100755
File mode changed.

workshops/dcms-cicd/config/destroy.sh

100644100755
File mode changed.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
locals {
2-
micro-deployment-public-jenkins = var.deployment == "MDPUBJ" ? true : false
3-
micro-deployment-private-jenkins = var.deployment == "MDPRVJ" ? true : false
4-
distributed-builds-private-jenkins = var.deployment == "DBPRVJ" ? true: false
2+
micro-deployment-public-jenkins = var.deployment == "MDPUBJ" ? true : false
3+
micro-deployment-private-jenkins = var.deployment == "MDPRVJ" ? true : false
4+
distributed-builds-private-jenkins = var.deployment == "DBPRVJ" ? true : false
55
}

workshops/dcms-cicd/config/terraform/main.tf

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
module micro-deploy-public-containerized-jenkins {
2-
source = "./modules/micro-deploy-public-containerized-jenkins"
3-
compartment_id = var.compartment_ocid
4-
jenkins_password = var.jenkins_password
5-
region = var.region
1+
module "micro-deploy-public-containerized-jenkins" {
2+
source = "./modules/micro-deploy-public-containerized-jenkins"
3+
compartment_id = var.compartment_ocid
4+
jenkins_password = var.jenkins_password
5+
region = var.region
66
autonomous_database_id = var.autonomous_database_id
77

88
count = local.micro-deployment-public-jenkins ? 1 : 0
99
}
1010

11-
module micro-deploy-private-containerized-jenkins {
12-
source = "./modules/micro-deploy-private-containerized-jenkins"
13-
compartment_id = var.compartment_ocid
11+
module "micro-deploy-private-containerized-jenkins" {
12+
source = "./modules/micro-deploy-private-containerized-jenkins"
13+
compartment_id = var.compartment_ocid
1414
jenkins_password = var.jenkins_password
15-
region = var.region
15+
region = var.region
1616

1717
count = local.micro-deployment-private-jenkins ? 1 : 0
1818
}
1919

20-
module distributed-builds-private-jenkins {
21-
source = "./modules/controller-agent-private-containerized-jenkins"
20+
module "distributed-builds-private-jenkins" {
21+
source = "./modules/controller-agent-private-containerized-jenkins"
2222
compartment_id = var.compartment_ocid
2323
jenkins_password = var.jenkins_password
2424
region = var.region

workshops/dcms-cicd/config/terraform/modules/controller-agent-private-containerized-jenkins/agent/setup.sh

100644100755
File mode changed.

workshops/dcms-cicd/config/terraform/modules/controller-agent-private-containerized-jenkins/agents.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
resource oci_core_instance agent_vm {
1+
resource "oci_core_instance" "agent_vm" {
22
depends_on = [oci_core_instance.jenkins_vm]
3-
for_each = toset(var.unique_agent_names)
3+
for_each = toset(var.unique_agent_names)
44

55

66
availability_domain = local.availability_domain_name
77
compartment_id = var.compartment_id
88
display_name = "agent-vm-${each.value}"
99
shape = local.instance_shape
1010

11-
dynamic shape_config {
11+
dynamic "shape_config" {
1212
for_each = local.is_flexible_instance_shape ? [1] : []
1313
content {
1414
ocpus = var.instance_ocpus
Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,66 @@
11

2-
resource oci_bastion_bastion bastion {
3-
name = var.bastion_name
4-
bastion_type = "STANDARD"
5-
compartment_id = var.compartment_id
6-
target_subnet_id = oci_core_subnet.prv_jenkins_controller_subnet.id
7-
client_cidr_block_allow_list = ["0.0.0.0/0"]
8-
defined_tags = {}
9-
freeform_tags = {}
2+
resource "oci_bastion_bastion" "bastion" {
3+
name = var.bastion_name
4+
bastion_type = "STANDARD"
5+
compartment_id = var.compartment_id
6+
target_subnet_id = oci_core_subnet.prv_jenkins_controller_subnet.id
7+
client_cidr_block_allow_list = ["0.0.0.0/0"]
8+
defined_tags = {}
9+
freeform_tags = {}
1010
}
1111

12-
resource oci_bastion_bastion bastion_agent {
13-
name = var.bastion_agent_name
14-
bastion_type = "STANDARD"
15-
compartment_id = var.compartment_id
16-
target_subnet_id = oci_core_subnet.prv_jenkins_agent_subnet.id
17-
client_cidr_block_allow_list = ["0.0.0.0/0"]
18-
defined_tags = {}
19-
freeform_tags = {}
12+
resource "oci_bastion_bastion" "bastion_agent" {
13+
name = var.bastion_agent_name
14+
bastion_type = "STANDARD"
15+
compartment_id = var.compartment_id
16+
target_subnet_id = oci_core_subnet.prv_jenkins_agent_subnet.id
17+
client_cidr_block_allow_list = ["0.0.0.0/0"]
18+
defined_tags = {}
19+
freeform_tags = {}
2020
}
2121

22-
resource "time_sleep" wait_five_mins {
23-
depends_on = [oci_core_instance.jenkins_vm]
24-
create_duration = "300s"
22+
resource "time_sleep" "wait_five_mins" {
23+
depends_on = [oci_core_instance.jenkins_vm]
24+
create_duration = "300s"
2525
}
2626

27-
resource oci_bastion_session bastion_session {
28-
depends_on = [time_sleep.wait_five_mins]
29-
bastion_id = oci_bastion_bastion.bastion.id
27+
resource "oci_bastion_session" "bastion_session" {
28+
depends_on = [time_sleep.wait_five_mins]
29+
bastion_id = oci_bastion_bastion.bastion.id
3030

31-
key_details {
32-
public_key_content = tls_private_key.tls_key_pair.public_key_openssh
33-
}
31+
key_details {
32+
public_key_content = tls_private_key.tls_key_pair.public_key_openssh
33+
}
3434

35-
target_resource_details {
36-
session_type = "MANAGED_SSH"
37-
target_resource_id = oci_core_instance.jenkins_vm.id
38-
target_resource_operating_system_user_name = "opc"
39-
target_resource_port = 22
40-
target_resource_private_ip_address = oci_core_instance.jenkins_vm.private_ip
41-
}
35+
target_resource_details {
36+
session_type = "MANAGED_SSH"
37+
target_resource_id = oci_core_instance.jenkins_vm.id
38+
target_resource_operating_system_user_name = "opc"
39+
target_resource_port = 22
40+
target_resource_private_ip_address = oci_core_instance.jenkins_vm.private_ip
41+
}
4242

43-
display_name = var.session_display_name
44-
session_ttl_in_seconds = var.session_ttl_in_seconds
43+
display_name = var.session_display_name
44+
session_ttl_in_seconds = var.session_ttl_in_seconds
4545
}
4646

47-
resource oci_bastion_session bastion_agent_session {
48-
depends_on = [time_sleep.wait_five_mins]
49-
bastion_id = oci_bastion_bastion.bastion_agent.id
50-
for_each = toset(var.unique_agent_names)
47+
resource "oci_bastion_session" "bastion_agent_session" {
48+
depends_on = [time_sleep.wait_five_mins]
49+
bastion_id = oci_bastion_bastion.bastion_agent.id
50+
for_each = toset(var.unique_agent_names)
5151

52-
key_details {
53-
public_key_content = tls_private_key.tls_key_pair.public_key_openssh
54-
}
52+
key_details {
53+
public_key_content = tls_private_key.tls_key_pair.public_key_openssh
54+
}
5555

56-
target_resource_details {
57-
session_type = "MANAGED_SSH"
58-
target_resource_id = oci_core_instance.agent_vm[each.key].id
59-
target_resource_operating_system_user_name = "opc"
60-
target_resource_port = 22
61-
target_resource_private_ip_address = oci_core_instance.agent_vm[each.key].private_ip
62-
}
56+
target_resource_details {
57+
session_type = "MANAGED_SSH"
58+
target_resource_id = oci_core_instance.agent_vm[each.key].id
59+
target_resource_operating_system_user_name = "opc"
60+
target_resource_port = 22
61+
target_resource_private_ip_address = oci_core_instance.agent_vm[each.key].private_ip
62+
}
6363

64-
display_name = var.session_agent_display_name
65-
session_ttl_in_seconds = var.session_ttl_in_seconds
64+
display_name = var.session_agent_display_name
65+
session_ttl_in_seconds = var.session_ttl_in_seconds
6666
}

workshops/dcms-cicd/config/terraform/modules/controller-agent-private-containerized-jenkins/computes.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
resource oci_core_instance jenkins_vm {
1+
resource "oci_core_instance" "jenkins_vm" {
22
availability_domain = local.availability_domain_name
33
compartment_id = var.compartment_id
44
display_name = "jenkins-vm"
55
shape = local.instance_shape
66

7-
dynamic shape_config {
7+
dynamic "shape_config" {
88
for_each = local.is_flexible_instance_shape ? [1] : []
99
content {
1010
ocpus = var.instance_ocpus

workshops/dcms-cicd/config/terraform/modules/controller-agent-private-containerized-jenkins/datasources.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
data oci_core_images instance_images {
1+
data "oci_core_images" "instance_images" {
22
compartment_id = var.compartment_id
33
operating_system = var.instance_os
44
operating_system_version = var.linux_os_version
@@ -11,6 +11,6 @@ data oci_core_images instance_images {
1111
}
1212
}
1313

14-
data oci_identity_availability_domains ADs {
14+
data "oci_identity_availability_domains" "ADs" {
1515
compartment_id = var.compartment_id
1616
}
Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,48 @@
1-
resource oci_load_balancer_load_balancer load_balancer {
2-
#Required
3-
compartment_id = var.compartment_id
4-
display_name = "jenkins-load-balancer"
5-
shape = var.load_balancer_shape
6-
subnet_ids = [oci_core_subnet.pub_jenkins_lb_subnet.id]
7-
8-
reserved_ips {
9-
id = oci_core_public_ip.jenkins_public_ip.id
10-
}
11-
shape_details {
12-
maximum_bandwidth_in_mbps = var.load_balancer_shape_details_maximum_bandwidth_in_mbps
13-
minimum_bandwidth_in_mbps = var.load_balancer_shape_details_minimum_bandwidth_in_mbps
14-
}
15-
16-
defined_tags = {}
17-
freeform_tags = {}
1+
resource "oci_load_balancer_load_balancer" "load_balancer" {
2+
#Required
3+
compartment_id = var.compartment_id
4+
display_name = "jenkins-load-balancer"
5+
shape = var.load_balancer_shape
6+
subnet_ids = [oci_core_subnet.pub_jenkins_lb_subnet.id]
7+
8+
reserved_ips {
9+
id = oci_core_public_ip.jenkins_public_ip.id
10+
}
11+
shape_details {
12+
maximum_bandwidth_in_mbps = var.load_balancer_shape_details_maximum_bandwidth_in_mbps
13+
minimum_bandwidth_in_mbps = var.load_balancer_shape_details_minimum_bandwidth_in_mbps
14+
}
15+
16+
defined_tags = {}
17+
freeform_tags = {}
1818
}
1919

20-
resource oci_load_balancer_backend_set backend_set {
20+
resource "oci_load_balancer_backend_set" "backend_set" {
21+
#Required
22+
health_checker {
2123
#Required
22-
health_checker {
23-
#Required
24-
protocol = "TCP"
25-
port = var.backend_set_health_checker_port
26-
}
24+
protocol = "TCP"
25+
port = var.backend_set_health_checker_port
26+
}
2727

28-
load_balancer_id = oci_load_balancer_load_balancer.load_balancer.id
29-
name = var.backend_set_name
30-
policy = "ROUND_ROBIN"
28+
load_balancer_id = oci_load_balancer_load_balancer.load_balancer.id
29+
name = var.backend_set_name
30+
policy = "ROUND_ROBIN"
3131

3232
}
3333

34-
resource oci_load_balancer_backend backend {
35-
backendset_name = oci_load_balancer_backend_set.backend_set.name
36-
ip_address = oci_core_instance.jenkins_vm.private_ip
37-
load_balancer_id = oci_load_balancer_load_balancer.load_balancer.id
38-
port = 80
34+
resource "oci_load_balancer_backend" "backend" {
35+
backendset_name = oci_load_balancer_backend_set.backend_set.name
36+
ip_address = oci_core_instance.jenkins_vm.private_ip
37+
load_balancer_id = oci_load_balancer_load_balancer.load_balancer.id
38+
port = 80
3939
}
4040

4141

42-
resource "oci_load_balancer_listener" jenkins_lb_listener_with_ssl {
43-
load_balancer_id = oci_load_balancer_load_balancer.load_balancer.id
44-
name = "http"
45-
default_backend_set_name = oci_load_balancer_backend_set.backend_set.name
46-
port = 80
47-
protocol = "HTTP"
42+
resource "oci_load_balancer_listener" "jenkins_lb_listener_with_ssl" {
43+
load_balancer_id = oci_load_balancer_load_balancer.load_balancer.id
44+
name = "http"
45+
default_backend_set_name = oci_load_balancer_backend_set.backend_set.name
46+
port = 80
47+
protocol = "HTTP"
4848
}

0 commit comments

Comments
 (0)