diff --git a/src/app/utilities/compose-packages/ComposePackages.html b/src/app/utilities/compose-packages/ComposePackages.html
index 048e8cd..007b0ab 100644
--- a/src/app/utilities/compose-packages/ComposePackages.html
+++ b/src/app/utilities/compose-packages/ComposePackages.html
@@ -17,7 +17,7 @@
 -->
 <form [formGroup]="packagesForm" (ngSubmit)="createPackages()" autocomplete="off">
   <div class="modal-header">
-    <h4 class="modal-title" *ngIf="params.page === 'vnf-packages' || params.page === 'ns-packages'"
+    <h4 class="modal-title" *ngIf="params.page === 'vnf-package' || params.page === 'ns-package'"
       id="modal-basic-title">{{'CREATEPACKAGE' | translate}}</h4>
     <h4 class="modal-title" *ngIf="params.page === 'ns-config-template'" id="modal-basic-title">
       {{'PAGE.NSCONFIGTEMPLATE.CREATENSCONFIGTEMPLATE' | translate}}</h4>
@@ -36,18 +36,32 @@
       <label class="col-sm-12 col-form-label mandatory-label"
         [ngClass]="{'text-danger': packagesForm.invalid === true && submitted === true}">{{'MANDATORYCHECK' |
         translate}}</label>
-      <label class="col-sm-6 col-form-label" *ngIf="!template else configtemplate">{{'PACKAGE' | translate}} {{'NAME' |
-        translate}}*</label>
-      <ng-template #configtemplate>
-        <label class="col-sm-6 col-form-label">{{'NAME' | translate}}*</label>
-      </ng-template>
+      <label class="col-sm-6 col-form-label" *ngIf="!template && !oka">{{'PACKAGE' | translate}} {{'NAME' | translate}}*</label>
+      <label class="col-sm-6 col-form-label" *ngIf="!template && params.page === 'oka-packages'">{{'PACKAGE' | translate}} {{'NAME' | translate}}*</label>
+      <label class="col-sm-6 col-form-label" *ngIf="!template && params.page === 'oka-packages-edit'">{{'PACKAGE' | translate}} {{'NAME' | translate}}</label>
+      <label class="col-sm-6 col-form-label" *ngIf="template">{{'NAME' | translate}}*</label>
       <div class="col-sm-6">
         <input type="text" class="form-control" placeholder="{{'NAME' | translate}}" formControlName="name" id="name"
           [ngClass]="{ 'is-invalid': submitted && f.name.errors }" required>
       </div>
     </div>
     <div class="form-group row mb-3" *ngIf="oka">
-      <label class="col-sm-6 col-form-label" for="description">{{'PAGE.K8S.DESCRIPTION' | translate}}*</label>
+      <label class="col-sm-6 col-form-label" for="profile_type"
+        *ngIf="params.page === 'oka-packages'">{{'PAGE.K8S.PROFILETYPE' | translate}}*</label>
+      <label class="col-sm-6 col-form-label" for="profile_type"
+        *ngIf="params.page === 'oka-packages-edit'">{{'PAGE.K8S.PROFILETYPE' | translate}}</label>
+      <div class="col-sm-6">
+        <ng-select placeholder="{{'SELECT' | translate}} {{'TYPE' | translate}}" [items]="profileSelect"
+          bindLabel="title" bindValue="value" formControlName="profile_type" id="profile_type"
+          [ngClass]="{ 'is-invalid': submitted && f.profile_type.errors }" required>
+        </ng-select>
+      </div>
+    </div>
+    <div class="form-group row mb-3" *ngIf="oka">
+      <label class="col-sm-6 col-form-label" for="description"
+        *ngIf="params.page === 'oka-packages'">{{'PAGE.K8S.DESCRIPTION' | translate}}*</label>
+      <label class="col-sm-6 col-form-label" for="description"
+        *ngIf="params.page === 'oka-packages-edit'">{{'PAGE.K8S.DESCRIPTION' | translate}}</label>
       <div class="col-sm-6">
         <textarea class="form-control" placeholder="{{'PAGE.K8S.DESCRIPTION' | translate}}" type="text"
           formControlName="description" id="description" [ngClass]="{ 'is-invalid': submitted && f.description.errors }"
@@ -76,7 +90,8 @@
       </div>
     </div>
     <div class="form-group row mb-3" *ngIf="oka">
-      <label class="col-sm-6 col-form-label">{{'PACKAGE' | translate}}*</label>
+      <label class="col-sm-6 col-form-label" *ngIf="params.page === 'oka-packages'">{{'PACKAGE' | translate}}*</label>
+      <label class="col-sm-6 col-form-label" *ngIf="params.page === 'oka-packages-edit'">{{'PACKAGE' | translate}}</label>
       <div class="col-sm-6">
         <label for="fileInput" class="custom-file-upload" *ngIf="this.params.page === 'oka-packages-edit'">
           <input type="file" #fileInput class="fileupload custom-file-input" formControlName="package"
@@ -95,7 +110,7 @@
   <div class="modal-footer">
     <button type="button" class="btn btn-danger" (click)="activeModal.close()">{{'CANCEL' | translate}}</button>
     <button
-      *ngIf="params.page === 'ns-config-template' || params.page === 'oka-packages' || params.page === 'vnf-packages' || params.page === 'ns-packages'"
+      *ngIf="params.page === 'ns-config-template' || params.page === 'oka-packages' || params.page === 'vnf-package' || params.page === 'ns-package'"
       type="submit" class="btn btn-primary">{{'CREATE' | translate}}</button>
     <button *ngIf="params.page === 'ns-config-template-edit' || params.page === 'oka-packages-edit'" type="submit"
       class="btn btn-primary">{{'Edit' | translate}}</button>
diff --git a/src/app/utilities/compose-packages/ComposePackages.ts b/src/app/utilities/compose-packages/ComposePackages.ts
index 17adaa0..a8114d0 100644
--- a/src/app/utilities/compose-packages/ComposePackages.ts
+++ b/src/app/utilities/compose-packages/ComposePackages.ts
@@ -25,7 +25,7 @@
 import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
 import { TranslateService } from '@ngx-translate/core';
 import { NotifierService } from 'angular-notifier';
-import { APIURLHEADER, ERRORDATA, MODALCLOSERESPONSEDATA, URLPARAMS } from 'CommonModel';
+import { APIURLHEADER, ERRORDATA, MODALCLOSERESPONSEDATA, TYPESECTION, URLPARAMS } from 'CommonModel';
 import { DataService } from 'DataService';
 import { environment } from 'environment';
 import * as jsyaml from 'js-yaml';
@@ -120,6 +120,12 @@
   /** Contains selected file name @public */
   public selectedFileName: string = 'Choose file...';
 
+  /** Contains all profile methods */
+  public profileSelect: TYPESECTION[] = [];
+
+  /** Contains all profile methods */
+  public operationType: string;
+
   /** Element ref for fileInputConfig @public */
   @ViewChild('fileInputConfig') fileInputConfig: ElementRef<HTMLInputElement>;
 
@@ -166,6 +172,22 @@
     this.router = this.injector.get(Router);
     this.translateService = this.injector.get(TranslateService);
     this.sharedService = this.injector.get(SharedService);
+    this.profileSelect = [
+      {
+        title: 'Infra Config Profile',
+        value: 'infra_config_profiles'
+      },
+      {
+        title: 'Infra Controller Profile',
+        value: 'infra_controller_profiles'
+      }, {
+        title: 'App Profile',
+        value: 'app_profiles'
+      }, {
+        title: 'Resource Profile',
+        value: 'resource_profiles'
+      }
+    ];
   }
 
   /** convenience getter for easy access to form fields */
@@ -180,11 +202,13 @@
       this.template = true;
       this.oka = false;
       this.getNsdPackageDetails();
+      this.getFormControl('profile_type').disable();
       this.getFormControl('description').disable();
     } else if (this.params.page === 'ns-config-template-edit') {
       this.template = true;
       this.oka = false;
       this.getNsdPackageDetails();
+      this.getFormControl('profile_type').disable();
       this.getFormControl('nsdId').disable();
       this.getFormControl('description').disable();
     } else if (this.params.page === 'oka-packages') {
@@ -205,8 +229,11 @@
       this.template = false;
       this.getFormControl('nsdId').disable();
       this.getFormControl('config').disable();
+      this.getFormControl('profile_type').disable();
       this.getFormControl('description').disable();
     }
+    this.operationType = this.params.operationType;
+    this.setValidatorsForOperation();
   }
 
   /** initialize Forms @public */
@@ -215,10 +242,30 @@
       name: ['', [Validators.required]],
       nsdId: [null, [Validators.required]],
       config: [null],
+      profile_type: [null],
       description: ['', [Validators.required]],
       package: ['']
     });
   }
+  /** Get NSD Package details @public */
+  public setValidatorsForOperation(): void {
+    if (this.params.page === 'oka-packages') {
+      this.packagesForm.get('name').setValidators([Validators.required]);
+      this.packagesForm.get('description').setValidators([Validators.required]);
+      this.packagesForm.get('package').setValidators([Validators.required]);
+      this.packagesForm.get('profile_type').setValidators([Validators.required]);
+    } else if (this.params.page === 'oka-packages-edit') {
+      this.packagesForm.get('profile_type').clearValidators();
+      this.packagesForm.get('name').clearValidators();
+      this.packagesForm.get('description').clearValidators();
+      this.packagesForm.get('package').clearValidators();
+    }
+    this.packagesForm.get('profile_type').updateValueAndValidity();
+    this.packagesForm.get('name').updateValueAndValidity();
+    this.packagesForm.get('description').updateValueAndValidity();
+    this.packagesForm.get('package').updateValueAndValidity();
+  }
+
 
   /** Get NSD Package details @public */
   public getNsdPackageDetails(): void {
@@ -250,7 +297,7 @@
         this.package_name = nsdPackageData.name;
         const package_file = nsdPackageData._admin.storage.zipfile;
         this.selectedFileName = package_file;
-        this.packagesForm.patchValue({ name: this.package_name, description: nsdPackageData.description });
+        this.packagesForm.patchValue({ name: this.package_name, description: nsdPackageData.description, profile_type: nsdPackageData.profile_type });
         this.fileInput.nativeElement.value = null;
       }, (error: ERRORDATA): void => {
         this.restService.handleError(error, 'get');
diff --git a/src/app/utilities/oka-packages-action/OkaPackagesActionComponent.ts b/src/app/utilities/oka-packages-action/OkaPackagesActionComponent.ts
index 7fef0d9..6fdbd1b 100644
--- a/src/app/utilities/oka-packages-action/OkaPackagesActionComponent.ts
+++ b/src/app/utilities/oka-packages-action/OkaPackagesActionComponent.ts
@@ -91,7 +91,7 @@
     public okaEdit(): void {
         // eslint-disable-next-line security/detect-non-literal-fs-filename
         const modalRef: NgbModalRef = this.modalService.open(ComposePackages, { backdrop: 'static' });
-        modalRef.componentInstance.params = { id: this.okaID, page: 'oka-packages-edit' };
+        modalRef.componentInstance.params = { id: this.okaID, page: 'oka-packages-edit', operationType: 'edit' };
         modalRef.result.then((result: MODALCLOSERESPONSEDATA) => {
             if (result) {
                 this.sharedService.callData();
