diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
index 9f914c5..04e3782 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
@@ -174,6 +174,7 @@
 
 	private static String CUSTOMIZATION_UUID = "customizationUUID";
 
+	protected static final String SKIP_POST_INST_CONF = "skip_post_instantiation_configuration";
 
 	@Autowired
 	protected ServiceRepository serviceRepo;
@@ -887,13 +888,24 @@
 		pnfResourceCustomization.setMultiStageDesign(getStringValue(properties.get(MULTI_STAGE_DESIGN)));
 		pnfResourceCustomization.setBlueprintName(getStringValue(properties.get(SDNC_MODEL_NAME)));
 		pnfResourceCustomization.setBlueprintVersion(getStringValue(properties.get(SDNC_MODEL_VERSION)));
-
+		pnfResourceCustomization.setSkipPostInstConf(getBooleanValue(properties.get(SKIP_POST_INST_CONF)));
 		pnfResourceCustomization.setPnfResources(pnfResource);
 
 		return pnfResourceCustomization;
 	}
 
 	/**
+	 * Get value from {@link Property} and cast to boolean value. Return true if property is null.
+	 */
+	private boolean getBooleanValue(Property property) {
+		if (null == property) {
+			return true;
+		}
+		Object value = property.getValue();
+		return new Boolean(String.valueOf(value));
+	}
+
+	/**
 	 * Get value from {@link Property} and cast to String value. Return empty String if property is null value.
 	 */
 	private String getStringValue(Property property) {
@@ -2151,6 +2163,11 @@
 		vnfResourceCustomization.setBlueprintVersion(testNull(toscaResourceStructure.getSdcCsarHelper()
 			.getNodeTemplatePropertyLeafValue(vfNodeTemplate, SDNC_MODEL_VERSION)));
 
+		String skipPostInstConfText = toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SKIP_POST_INST_CONF);
+		if (skipPostInstConfText != null){
+			vnfResourceCustomization.setSkipPostInstConf(Boolean.parseBoolean(skipPostInstConfText));
+		}
+
 		vnfResourceCustomization.setVnfResources(vnfResource);
 		vnfResourceCustomization.setAvailabilityZoneMaxCount(Integer.getInteger(
 				vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_AVAILABILITYZONECOUNT)));	
diff --git a/asdc-controller/src/test/resources/schema.sql b/asdc-controller/src/test/resources/schema.sql
index ec8e25d..2db2dfb 100644
--- a/asdc-controller/src/test/resources/schema.sql
+++ b/asdc-controller/src/test/resources/schema.sql
@@ -1114,6 +1114,7 @@
   `RESOURCE_INPUT` varchar(20000) DEFAULT NULL,
   `CDS_BLUEPRINT_NAME` varchar(200) default null,
   `CDS_BLUEPRINT_VERSION` varchar(20) default null,
+  `SKIP_POST_INSTANTIATION_CONFIGURATION` boolean default true,
   `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
   `VNF_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
   `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
@@ -1195,6 +1196,7 @@
   `RESOURCE_INPUT` varchar(2000) DEFAULT NULL,
   `CDS_BLUEPRINT_NAME` varchar(200) DEFAULT NULL,
   `CDS_BLUEPRINT_VERSION` varchar(20) DEFAULT NULL,
+  `SKIP_POST_INSTANTIATION_CONFIGURATION` boolean default true,
   PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
   KEY `fk_pnf_resource_customization__pnf_resource1_idx` (`PNF_RESOURCE_MODEL_UUID`),
   CONSTRAINT `fk_pnf_resource_customization__pnf_resource1` FOREIGN KEY (`PNF_RESOURCE_MODEL_UUID`) REFERENCES `pnf_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
