Skip to main content

Terraform Diary - Desired State and Current State scenarios with OCI

 


Desired state of a resource can be simply defined as the state that is mentioned in your resource block of tf file.

Current state of a resource is the actual configuration state for the resource. This may be different from desired state mentioned in .tf file.

 

Terraform will only synchronize current state(changes done manually in console) to desired state(changes mentioned in your tf file) for attributes that are explicitly mentioned in your tf file.

Case 1 –

Please consider below example, note that object bucket ‘test_bucket is already present on OCI –

resource "oci_objectstorage_bucket" "test_bucket" {

    #Required

    compartment_id = "${var.compartment_ocid}"

    name = "test_bucket"

    namespace = "${var.namespace}"

    versioning = "Enabled"

        }

  

We added versioning attribute in our tf file and current state for is bucket is as follows –



 Now we know desired state and current state (console) are different. Let us run terraform plan and observe –


      ~ versioning            = "Suspended" -> "Enabled"

    }

 

Plan: 0 to add, 1 to change, 0 to destroy.

 

 

Case 2 –

Simply remove versioning from .tf file as follows, (commented it) –

resource "oci_objectstorage_bucket" "test_bucket" {

    #Required

    compartment_id = "${var.compartment_ocid}"

    name = "test_bucket"

    namespace = "${var.namespace}"

    #versioning = "Enabled"




This proves that terraform will only check and try to modify current state à desired state for attributes that are explicitly mentioned in you .tf file


Now what will happen if there is no explicit mention for an attribute that is modified manually in your OCI console?

In this scenario, terraform will not perform any action mentioning below -


Hence, it is important to mention attributes in your tf file to make sure terraform identifies discrepancies between desired state and current state.



Comments

Popular posts from this blog

Logfile locations in EBS r12.1 and EBS r12.2

Startup/shutdown Apps tier services are started and stopped frequently and we must know logfiles when troubleshooting startup/shutdown issues. $INST_TOP/logs/appl/admin/log $INST_TOP/logs/appl/admin/log Apache OHS being part of opmn in r12.1 has continued in r12.2. Logfile locations for troubleshooting have been changed $INST_TOP/logs/ora/10.1.3/Apache/error_log[timestamp] $INST_TOP/logs/ora/10.1.3/opmn/HTTP_Server~1.log $IAS_ORACLE_HOME/instances/*/diagnostics/logs/OHS/*/*log*   OPMN Logfile locations for r12.1 and r12.2 have been changed $INST_TOP/logs/ora/10.1.3/opmn/opmn* $IAS_ORACLE_HOME/instances/*/diagnostics/logs/OPMN/opmn/* Oacore oacore in r12.1 is oc4j component and part of 10gAS. However, in r12.2, oacore is now a managed server for weblogic server $LOG_HOME/ora/10.1.3/j2ee/oacore/oacore*/ $LOG_HOME/ora/10.1.3/j2ee/oacore/oacore*/ $LOG_HOME/ora/10.1.3/opmn/oacore*/oacor...

Query to Check AD and TXK code levels in your EBS environment

Below query can be very handy in finding out current AD and TXK code levels. col ABBREVIATION for a10 set lines 1000 col NAME for a50 col CODELEVEL for a20 SELECT ABBREVIATION,NAME,codelevel FROM AD_TRACKABLE_ENTITIES WHERE abbreviation in ('txk','ad'); ABBREVIATI NAME                                                CODELEVEL ---------- -------------------------------------------------- ------------ ad           Oracle Applications DBA                             C.11 txk         Oracle Applications Technology Stack    ...

Compile all JSP files in Oracle ebs r12.2

Before you start compiling jsps and following below steps, I recommend understanding some key differences between 11i, r12.1 and r12.2 when it comes to compiling jsps. Please follow below link and then proceed further - One-stop shop to Compile JSPs in 11i, r12.1 and r12.2 1. Take a backup of _pages directory that will be modified due to jsp compilation - $ cd $EBS_APPS_DEPLOYMENT_DIR/oacore/html/WEB-INF/classes/ $ cp -R _pages _pages29dec2019 $ ls -ld _pages* drwxr-xr-x 5 applmgr oinstall 249856 Dec 29 16:36 _pages drwxr-xr-x 5 applmgr oinstall 249856 Dec 29 16:56 _pages29dec2019 2. Stop apache, oacore and oafm services - adapcctl.sh stop admanagedsrvctl.sh stop oacore_server1 admanagedsrvctl.sh stop oafm_server1 3. Compile the jsps manually using the below command - $ cd $FND_TOP/patch/115/bin/ $ perl $FND_TOP/patch/115/bin/ojspCompile.pl --compile --flush -p              4. Check class file last mo...