From: cel@kernel.org
To: <kdevops@lists.linux.dev>
Cc: Chandan Babu R <chandanbabu@kernel.org>,
Chuck Lever <chuck.lever@oracle.com>
Subject: [RFC PATCH 26/31] terraform/OCI: Add a default VCN
Date: Mon, 31 Mar 2025 20:59:55 -0400 [thread overview]
Message-ID: <20250401010000.764234-27-cel@kernel.org> (raw)
In-Reply-To: <20250401010000.764234-1-cel@kernel.org>
From: Chuck Lever <chuck.lever@oracle.com>
The kdevops set-up for other cloud providers assumes that kdevops
will provision a VCN/subnet for use during test runs. OCI does not
have that option; it assumes that a long-lived subnet already
exists to which kdevops instances should be attached.
In a moment I will introduced a Kconfig option to use network
resources that kdevops manages instead of a pre-existing subnet.
This patch adds those resources, but does not yet use them, so that
the new network resource configuration can be reviewed easily.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
terraform/oci/main.tf | 112 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)
diff --git a/terraform/oci/main.tf b/terraform/oci/main.tf
index f6596a104c51..250c3b722537 100644
--- a/terraform/oci/main.tf
+++ b/terraform/oci/main.tf
@@ -51,3 +51,115 @@ module "volumes" {
vol_volume_count = var.oci_volumes_per_instance
vol_volume_size = var.oci_volumes_size
}
+
+resource "oci_core_vcn" "kdevops_vcn" {
+ cidr_blocks = [
+ "10.0.0.0/16",
+ ]
+ compartment_id = data.oci_identity_compartments.kdevops_compartment.compartments[0].id
+ display_name = "kdevops VCN"
+ dns_label = "kdevops"
+ is_ipv6enabled = false
+}
+
+resource "oci_core_internet_gateway" "kdevops_internet_gateway" {
+ compartment_id = data.oci_identity_compartments.kdevops_compartment.compartments[0].id
+ display_name = "kdevops internet gateway"
+ vcn_id = oci_core_vcn.kdevops_vcn.id
+}
+
+resource "oci_core_dhcp_options" "kdevops_dhcp_options" {
+ compartment_id = data.oci_identity_compartments.kdevops_compartment.compartments[0].id
+ display_name = "kdevops dhcp options"
+ vcn_id = oci_core_vcn.kdevops_vcn.id
+
+ options {
+ type = "DomainNameServer"
+ server_type = "VcnLocalPlusInternet"
+ }
+ options {
+ type = "SearchDomain"
+ search_domain_names = ["kdevops.oraclevcn.com"]
+ }
+}
+
+resource "oci_core_route_table" "kdevops_route_table" {
+ compartment_id = data.oci_identity_compartments.kdevops_compartment.compartments[0].id
+ display_name = "kdevops route table"
+ vcn_id = oci_core_vcn.kdevops_vcn.id
+ route_rules {
+ destination = "0.0.0.0/0"
+ destination_type = "CIDR_BLOCK"
+ network_entity_id = oci_core_internet_gateway.kdevops_internet_gateway.id
+ }
+}
+
+resource "oci_core_security_list" "kdevops_security_list" {
+ compartment_id = data.oci_identity_compartments.kdevops_compartment.compartments[0].id
+ display_name = "kdevops security list"
+ vcn_id = oci_core_vcn.kdevops_vcn.id
+
+ egress_security_rules {
+ description = "Allow all outbound traffic"
+ destination = "0.0.0.0/0"
+ destination_type = "CIDR_BLOCK"
+ protocol = "all"
+ stateless = false
+ }
+
+ ingress_security_rules {
+ description = "Enable Path MTU Discovery to work"
+ icmp_options {
+ code = 4
+ type = 3
+ }
+ protocol = 1
+ source = "0.0.0.0/0"
+ source_type = "CIDR_BLOCK"
+ stateless = false
+ }
+ ingress_security_rules {
+ description = "Allow applications within VCN to fail fast"
+ icmp_options {
+ type = 3
+ }
+ protocol = 1
+ source = "10.0.0.0/16"
+ source_type = "CIDR_BLOCK"
+ stateless = false
+ }
+ ingress_security_rules {
+ description = "Enable instance management via Ansible"
+ protocol = 6
+ source = "0.0.0.0/0"
+ source_type = "CIDR_BLOCK"
+ stateless = false
+ tcp_options {
+ min = 22
+ max = 22
+ }
+ }
+ ingress_security_rules {
+ description = "Allow VCN-local TCP traffic for ports: all"
+ protocol = 6
+ source = "10.0.0.0/16"
+ source_type = "CIDR_BLOCK"
+ stateless = false
+ tcp_options {
+ min = 1
+ max = 65535
+ }
+ }
+}
+
+resource "oci_core_subnet" "kdevops_subnet" {
+ availability_domain = data.oci_identity_availability_domain.kdevops_av_domain.name
+ cidr_block = "10.0.0.0/24"
+ compartment_id = data.oci_identity_compartments.kdevops_compartment.compartments[0].id
+ dhcp_options_id = oci_core_dhcp_options.kdevops_dhcp_options.id
+ dns_label = "runners"
+ display_name = "kdevops subnet"
+ route_table_id = oci_core_route_table.kdevops_route_table.id
+ security_list_ids = ["${oci_core_security_list.kdevops_security_list.id}"]
+ vcn_id = oci_core_vcn.kdevops_vcn.id
+}
--
2.48.1
next prev parent reply other threads:[~2025-04-01 1:00 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-01 0:59 [RFC PATCH 00/31] Simplify OCI configuration menu cel
2025-04-01 0:59 ` [RFC PATCH 01/31] terraform/OCI: Remove terraform_oci_instance_display_name cel
2025-04-01 0:59 ` [RFC PATCH 02/31] terraform/OCI: One default value to rule them cel
2025-04-01 0:59 ` [RFC PATCH 03/31] terraform/OCI: Add an "Identity & Access" submenu cel
2025-04-01 0:59 ` [RFC PATCH 04/31] terraform/OCI: Add a "Resource location" submenu cel
2025-04-01 0:59 ` [RFC PATCH 05/31] terraform/OCI: Add a "Compute" Kconfig submenu cel
2025-04-01 0:59 ` [RFC PATCH 06/31] terraform/OCI: Add a "Storage" " cel
2025-04-01 0:59 ` [RFC PATCH 07/31] terraform/OCI: Add a "Networking" " cel
2025-04-01 0:59 ` [RFC PATCH 08/31] terraform/OCI: Use "output yaml" for the tenancy OCID cel
2025-04-01 0:59 ` [RFC PATCH 09/31] terraform/OCI: Use "output yaml" for the user OCID cel
2025-04-01 0:59 ` [RFC PATCH 10/31] terraform/OCI: Use "output yaml" for the signing key cel
2025-04-01 0:59 ` [RFC PATCH 11/31] terraform/OCI: Use "output yaml" for the fingerprint cel
2025-04-01 0:59 ` [RFC PATCH 12/31] terraform/OCI: Add a Region selector cel
2025-04-01 0:59 ` [RFC PATCH 13/31] terraform/OCI: Add an availability domain selector cel
2025-04-01 0:59 ` [RFC PATCH 14/31] terraform/OCI: Select your compartment by name instead of by OCID cel
2025-04-01 0:59 ` [RFC PATCH 15/31] terraform/OCI: Use "output yaml" for the instance shape setting cel
2025-04-01 0:59 ` [RFC PATCH 16/31] terraform/OCI: Add a shape selector for Flex shapes cel
2025-04-01 0:59 ` [RFC PATCH 17/31] terraform/OCI: Use "output yaml" for the OCPUs setting cel
2025-04-01 0:59 ` [RFC PATCH 18/31] terraform/OCI: Use "output yaml" for the memory_in_gbs setting cel
2025-04-01 0:59 ` [RFC PATCH 19/31] terraform/OCI: Add a shape family selector cel
2025-04-01 0:59 ` [RFC PATCH 20/31] terraform/OCI: Add a bare metal shape selector cel
2025-04-01 0:59 ` [RFC PATCH 21/31] terraform/OCI: Use "output yaml" for the source image setting cel
2025-04-01 0:59 ` [RFC PATCH 22/31] terraform/OCI: Simplify image selection cel
2025-04-01 0:59 ` [RFC PATCH 23/31] terraform/OCI: Remove TERRAFORM_OCI_VOLUMES_ENABLE_EXTRA cel
2025-04-01 0:59 ` [RFC PATCH 24/31] terraform/OCI: Use "output yaml" for the assign_public_ip" setting cel
2025-04-01 0:59 ` [RFC PATCH 25/31] terraform/OCI: Use "output yaml" for the subnet_ocid setting cel
2025-04-01 0:59 ` cel [this message]
2025-04-01 0:59 ` [RFC PATCH 27/31] terraform/OCI: Add a Kconfig switch to create a VCN on the fly cel
2025-04-01 0:59 ` [RFC PATCH 28/31] terraform/OCI: Run "terraform fmt" on provider.tf cel
2025-04-01 0:59 ` [RFC PATCH 29/31] terraform/OCI: Run "terraform fmt" on main.tf cel
2025-04-01 0:59 ` [RFC PATCH 30/31] terraform/OCI: Nit: alphabetize vars.tf cel
2025-04-01 1:00 ` [RFC PATCH 31/31] terraform/OCI: Update the OCI section of docs/kdevops-terraform.md cel
2025-04-02 19:21 ` [RFC PATCH 00/31] Simplify OCI configuration menu Luis Chamberlain
2025-04-02 19:24 ` Luis Chamberlain
2025-04-02 19:38 ` Chuck Lever
2025-04-02 20:08 ` Luis Chamberlain
2025-04-08 12:42 ` Chandan Babu R
2025-04-08 13:20 ` Chuck Lever
2025-04-09 4:04 ` Chandan Babu R
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250401010000.764234-27-cel@kernel.org \
--to=cel@kernel.org \
--cc=chandanbabu@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=kdevops@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox