Skip to main content

Compartments in OCI



Hi and welcome to my blog.

My intention with this blog is to explain in a simple and intuitive way how to work with OCI. And to begin with, let's start with one of the key elements of OCI, the compartment.

Compartments are logical divisions used to organize the resources in OCI. To draw an analogy, you can think of them like folders in Windows or directories in Linux. Essentially, each element in your environment will be stored in a compartment, and you'll need to access that compartment in the OCI console to locate those elements.

Following you can see the main characteristics of the compartments:


For all of these reasons, compartments are a powerful feature to ensure security isolation and acccess control in your environment.

It is also important to know that child compartments inherit their parents policies.

To access to the compartment view in OCI, just navigate to Identity & Security / Compartments, and you will see all the compartments deployed in your environment.


A compartment can be created mainly in 3 ways:

  • Manually from OCI Console
Click on "Create compartment" button on OCI console:



And fill the fields:



  • With Terraform code
Use the power of Infrastructure as Code to deploy it:

resource "oci_identity_compartment" "test_compartment" {
    #Required
    compartment_id = var.compartment_id
    description = var.compartment_description
    name = var.compartment_name

    #Optional
    defined_tags = {"Operations.CostCenter"= "42"}
    freeform_tags = {"Department"= "Finance"}
}

Code obtained from the official Terraform documentation:

  • OCICLI
It is also to use the OCI API to create resources:

oci iam compartment create -c [text] --description [text] -- name [text]
To see all available options:












Popular posts from this blog

Subnets

  A few days ago, in the previous post, we saw how to create a VCN. Today we are going to see how to create a subnet. A subnet is nothing more or less than a division of the VCN. A subnet can be contained in a single AD or be common to the entire region (recommended option). To deploy a DB or a compute instance, it is necessary to have previously created a subnet, to place it there and to take an IP within its range. It is also important to note that within the same VCN, the IP ranges of the subnets cannot overlap. A subnet can be public if you want to present the resources to the Internet or private if you do not. To access these resources, resources such as bastions, VPNs or Fastconnect must be used. In later posts we will go into more detail about all of these pieces in more detail. As usual, we are going to look at different ways of creating a VCN in OCI: Manually from OCI Console Access a previously created VCN, in which we want to deploy the subnet. In the subn...

Compute instances

In today's post, we are going to talk about compute instances in OCI. First of all, what is a compute instance? A compute instance is the OCI resource that you must deploy to provision and manage compute hosts. So, If you have the requirement to create a Virtual Machine (VM) or an infrastructure to host your application then you must use Compute Instance service. OCI offers 2 flavours: Bare Metal: Physical server without any virtualisation. Direct access to the hardware. The user has to manage the virtualisation layer, as well as the rest of the layers: OS, App Container, code... It is  a Single-Tenant Model, i.e. dedicated to only one client. It does not share hardware with other clients. Virtual Machine: It is basically a Bare metal with a virtualisation layer (which is taken care of by the Cloud Provider). Therefore, it has a hypervisor where it can run VMs smaller than the BM. It is based on a Multi-Tenant model. OCI also offers different shapes depending on the requi...

Infrastructure as Code

In some of the previous posts we have seen how to deploy some resources with Terraform. Terraform is an Infrastructure-as-Code (IaC) tool that allows to manage, version and maintain your infrastructure programmatically in OCI. But... What is Infrastructure as Code?   So, let's start with the concept of Infrastructure as Code (IaC). Infrastructure as Code, abbreviated as IaC, allows us to manage and provision infrastructure through code, rather than manual processes . This approach offers numerous advantages:   The first advantage is deployment automation . You won't need to manually prepare or manage operating systems, servers, storage, or any other components. Everything becomes automated.   Another benefit is the speed of implementation and deployment due to this automation.   It also reduces the risk of errors by utilizing templates for deployments and eliminating manual processes.   Lastly, using IaC ensures consistent environment crea...