Cloud Services

Enterprise Marketplace

Provider management
Published On Jun 10, 2024 - 9:16 AM

Provider management

Enables the Catalog Admins and Service Designers to handle catalogs for Enterprise Marketplace.
The
Provider Management
page allows you to create and maintain catalogs for Enterprise Marketplace. Catalogs are the offerings that allow users to provision cloud services. These services offerings need to include fields where the users fill in pertinent information such as what region they are in, how much storage space they are requesting, and so on.
When you create catalogs, you can create fields to be displayed during provisioning, which are called
attributes
. These attributes can be organized into groups of fields, called
configuration groups
, and can be included in repeatable groupings called
sections
. In addition, you can show and hide attributes and sections within configuration groups using show/hide rules.
The
Provider Management
page also allows you to manage the lifecycle of your stacks.

Intended audience

The
Provider Management
page is intended for people with the following roles:
  • Catalog Admins who create and maintain the catalogs
  • Service Designers who can preview the content created or updated by Catalog Admins

Overview

A Catalog Admin can perform the following activities:
  • Import public cloud provider templates, including CloudFormation, YAML, ARM, Terraform, Jinja, ROS, and Google Python, from the local file system into Enterprise Marketplace
  • Fetch public cloud provider templates from a Git repository
  • Customize the imported templates as Enterprise Marketplace catalogs
  • Export the catalogs as a compressed (.zip) file
  • Import any catalogs (from the export step) into a different Enterprise Marketplace Instance
A Service Designer can preview the customization applied to a catalog by the Catalog Admin.

Supported features

A Catalog Admin can make use of the following features for Public Cloud Provider Management:
  • Provider Management
    page:
    • Add catalogs to Enterprise Marketplace:
      • Import from local file system
      • Fetch from GitHub repository
    • View and manage the life cycle of stacks (Edit, Export, Publish, View stacks, Retire, Delete)
  • Service details
    page:
    • Edit catalog name, category, possible quantity, features, details, logo, group, labels, and provider site link
    • View/Select configuration attributes
  • Configuration Parameters
    page:
    • Add configuration groups, attributes, sections, and section attributes
    • Edit configuration groups, attributes, sections, and section attributes
    • Reorder configuration attributes within or across configuration groups
    • Delete configuration groups, attributes, sections, and section attributes
A Service Designer can make use of the following feature for Public Cloud Provider Management:
  • Preview from
    Provider Management
    and
    Service Details
    pages

Prerequisites

You must meet the following prerequisites to work with the
Provider Management
page:
  • Must have the Catalog Administrator role in Enterprise Marketplace Platform to access the
    Provider Management
    page to manage the catalog’s life cycle.
  • Must have the Service Designer role in Enterprise Marketplace to access the
    Provider Management
    page to be able to preview the catalogs.
  • Must have the Provider Account Admin role to access the Enterprise Marketplace User
    Admin Page
    and to add a Git provider asset account.
  • Knowledge of public cloud provider native and Terraform templates (Terraform/ARM/CloudFormation/Google Python/Jinja/ROS).
For more information, see Roles in Enterprise Marketplace.

Lifecycle of a service

A service cannot be published with empty configuration groups or sections.
If you want to change the status of a catalog, click the
Actions
icon for the catalog and select the state that you want to change to. A service can be in one of the following states. You can normally only advance the catalog to the next step in the progression. However, you can go from Draft to Published, skipping the Work in Progress state.
  • Draft:
    Imported catalogs that have not been edited yet.
  • Work in Progress:
    The catalog is not yet available for provisioning. Any content package that you have edited automatically enters the Work in Progress state.
  • Published:
    The catalog is available for provisioning.
  • Retired:
    The catalog has been removed but is still available to be reactivated.
  • Deleted:
    The service has been completely removed from the system. Only catalogs that are not in the Published state and do not have any stacks associated with them can be deleted.

Navigating the Provider Management page

Navigate to the
Provider Management
page. To learn more about navigating to the different services from each tenant, refer to Landing page navigation or Kyndryl Bridge Landing page navigation.
The
Provider Management
page provides a list of all catalogs that are available in your system. They can be sorted by provider by selecting one or more of them in the
Providers
section on the left side of the page.
Click the following tabs to show a list of catalogs by status:
  • Drafts:
    Catalogs that are in the design process and not yet available to the users.
  • Published:
    Catalogs currently available for provisioning by the users.
  • Retired:
    Published catalogs that have been removed from the list.
You can filter the results by
Providers
and
Groups
using the left pane. Click the type of content that you want to filter by and select from the drop-down menu:
  • Providers:
    Filters the results displayed on the
    catalog Status
    tabs by the list of providers enabled in Enterprise Marketplace.
  • Groups:
    By default each catalog gets linked to a unique Catalog Group, which is used for versioning in Enterprise Marketplace. Public cloud providers do not support this feature yet. You can filter the results displayed on the
    Catalog Status
    tabs by Catalog Group.
For each catalog, you can click the
Actions
icon and select from the following options:
  • View Details:
    View the
    Service Details
    page for the catalog.
  • Publish/Retire:
    Depending on the status, make the catalog available for provisioning or remove it from the list.
  • Delete:
    Remove a published catalog from the system.
In addition, you can select the checkbox next to one or more catalogs and then click one of the following options:
  • Export:
    Export the catalogs as a compressed JSON file so they can be imported into another system.
  • View stacks:
    View all stacks that have been created from this catalog.
For items on the
Drafts
tab, you can click the
Filters
icon in the upper right and filter the results by Draft and Work in Progress. For more information, see Lifecycle of a service.

Importing catalogs from content packages

If you want to create a catalog, complete the following steps:
  1. On the
    Provider Management
    page, click
    Add Services
    .
  2. Select one of the following options in the pop-up window and then click
    OK
    :
    • Import through Provider Account:
      Create a catalog using a previously created provider account. For more information, see Importing from a GitHub repository.
    • Import from File:
      Import a previously created catalog that you exported as a .zip file. For more information about content packages, see Exporting content packages.

Importing from a local file system

If you want to import from a file, complete the following steps. The file must be in
.zip
format and no more than 10 MB in size. This file can contain a parameters section that will be propagated as attributes in the catalog. The catalog will be created in the Draft status. For more information about creating these files, see Exporting content packages.
  1. Click
    Upload File
    .
  2. Browse to and select the file.
  3. Click
    Open
    .
  4. Click
    Import
    .

Importing from a GitHub repository

You must create and configure a Master account and an Asset account before you can use Enterprise Marketplace Content Factory with Provider Management. For more information, see Setting up Enterprise Marketplace Content Factory. In addition, you need to onboard the GitHub repository as described in GitHub connection.
Importing from a provider fetches information from the Enterprise Marketplace Content Factory repository. This repository is onboarded during your Enterprise Marketplace installation by default.
If you want to import through a provider account, complete the following steps:
  1. Select
    Enterprise Marketplace Content Factory
    .
  2. Select the Asset Account that you want to use and click
    OK
    .
  3. The discovery process begins. You will be sent an email when the process is complete.

Preferred practices

Keep in mind the following preferred practices when working with content packages:
  • Ensure that the
    icb_catalog_metadata.json
    name is intact and valid.
  • Validate that the directory structure is created as per the public cloud provider requirements.
  • Validate the template to be imported according to the native cloud provider expectations.
  • Limit the size of your content pack .zip file to 10 MB.

Setting up Enterprise Marketplace Content Factory

Before you can use Enterprise Marketplace Content Factory in Provider Management, you need to set up a Master account and an Asset account. Creating a Git Asset account in Enterprise Marketplace requires a user with the Provider Account Admin role.
If you want to create a Git Master account, complete the following steps:
  1. Navigate to the
    Provider Account
    . To learn more about navigating to the different services from each tenant, refer to Landing page navigation or Kyndryl Bridge Landing page navigation.
  2. Click the
    Master Accounts
    tab if needed.
  3. Click
    New Master Account
    .
  4. Click
    Enterprise Marketplace Content Factory
    .
  5. Provide the following account details for the account:
    • Name:
      Provide a descriptive name for the account.
    • Description:
      Provide any details for the account.
    • Status:
      Select whether the account is
      Active
      or
      Inactive
      .
Create a Git Asset account using the following steps:
  1. Navigate to the
    Provider Account
    . To learn more about navigating to the different services from each tenant, refer to Landing page navigation or Kyndryl Bridge Landing page navigation.
  2. Click the
    Asset Accounts
    tab.
  3. Click
    New Asset Account
    .
  4. Click
    Enterprise Marketplace Content Factory
    .
  5. Provide the following account details for the account:
    • Name:
      Provide a descriptive name for the account.
    • Description:
      Provide any details for the account.
    • Account Number:
      Enter the account number for the account.
    • Endpoint URL:
      Enter the Git organization endpoint that you want the account to connect to.
    • Select Existing Master Account:
      Select the master account that you just created.
    • Status:
      Select whether the account is
      Active
      or
      Inactive
      .

Exporting content packages

You can export your catalog as a content package at any time after you have imported it and it is visible in the Provider Management UI. A content package can be exported from one Kyndryl Modern Operations Applications instance/tenant to another. For example, you might want to test a catalog on a dev/test environment and then after you completie the testing export it as a .zip file that can be imported into a staging/production environment with all customization intact. Be sure not to select too many services when exporting. The final
.zip
file cannot be larger than 10 MB or it will not be able to be imported.
The exported .zip file contains customized catalogs including Enterprise Marketplace metadata such as service definition, configuration, pricing templates, and embedded templates.
You cannot backup/get back your catalog customizations performed in the Provider Management UI to your initially imported Content Package if you do not export your customized content package. The reason for this is that the imported template is embedded in the content package and the packaging is tightly coupled as per Enterprise Marketplace metadata requirements. All this is managed internally by Enterprise Marketplace which is not exposed to user unless the package is exported.
If you want to export content packages, use one of the following methods:
  • To export a single catalog, click the
    Actions
    icon for the catalog and click
    Export
    .
  • To export multiple catalogs at the same time, select the catalogs that you want to export and then click
    Export
    on the selected items bar.

Customizing imported catalogs

After you import catalogs, you can customize them to help your users provision the services associated with that catalog. You might, for example, create a storage catalog that allows the user to order an amount of storage on Google Cloud. This section covers how to customize those catalogs.
If you want to view a catalog, click the
Actions
icon for that offering and select
View Details
to open the details view.

Details page for the catalog

The
Details
page for the catalog is divided into the following tabs:
  • Service Details:
    The basic information about the offering.
  • Configuration Parameters:
    This tab allows you to associate configuration groups, sections, and attributes with the catalog. Configuration groups create boxes that are displayed to the user on the
    Additional Parameters
    page when they are ordering the catalog. These boxes are further divided into discrete areas based on sections. Both configuration groups and sections can contain attributes, which are fields that the user must fill out during provisioning. The configuration groups, sections, and attributes are displayed in the order that they are listed on this tab. If you want to change this order, click
    Reorder
    in the upper right and move them around as desired. For more information about configuration groups, sections, and attributes, see the following sections:
  • Pricing:
    This tab shows the name of the pricing file associated with the catalog. To change it, click
    Upload
    and then browse to and open the file. The pricing file must be in JSON format and be a maximum of 5 MB. For more information, see Pricing in Enterprise Marketplace.
If you want to edit a catalog, unlock the fields by clicking
Edit
. You can click
Save
on any tab when you are finished making your changes.
You can see what the users will see when they order the catalog by clicking
Preview
. You will be able to page through the various windows by clicking
Next
.

Customizing the look and feel of your catalog

On the
Service Details
tab, you can change the following parameters:
  • Catalog Name:
    Enter the name for the catalog. This name is listed in the catalog. Currently, there is no restriction on the characters allowed. The minimum number of characters is 1 and the maximum number is 64.
  • Features:
    Provide a description of the catalog’s features to help users understand what it is. Currently, there is no restriction on the characters allowed. The minimum number of characters is 1 and the maximum number is 5000. You can use standard HTML coding in this field to customize the output.
  • Details:
    Provide a description of what the catalog is intended to do. Currently, there is no restriction on the characters allowed. The minimum number of characters is 1 and the maximum number is 5000. You can use any standard HTML coding in this field to customize the output.
  • Upload Image
    or
    Remove Image:
    Allows you to upload an image to be displayed to represent the catalog in the list. There is no limit on file size, but the preferred pixel resolution is 32 x 32. Browse to and select the file, then click
    Open
    . If you already have selected an image, click
    Remove Image
    to remove it. You must remove the old image before you can upload a new one.
  • Category:
    Select a category for the offering from a list of predefined options.
  • Provider Site:
    Provide the URL for the website of the service provider.
  • Labels:
    Add meaningful labels for the catalog. Labels can be used by the buyer to filter the catalogs on the
    Catalog
    page.
  • Select Configuration Attributes:
    Select all the attributes that you want to appear on the
    Additional Parameters
    page when the user is provisioning the catalog.
  • Enable support for multi-quantity:
    (optional) You can set a maximum number of this catalog that can be provisioned.
  • Max Quantity:
    If you selected
    Enable support for multi-quantity
    , use the slider to set the maximum quantity.
  • Version:
    The version number of the catalog. This number cannot be modified.
  • Status:
    This can be
    Work in Progress
    or
    Draft
    for Draft catalogs. The catalog is in
    Draft
    after being imported and will change to
    Work in Progress
    when it is edited.
  • Group:
    This is a label that you can set up to help you search for the catalog on the
    Provider Management
    page. Groups are used in the Provider Management associate catalogs with an incremental version because versioning is currently not supported by public cloud providers. By default, each catalog is associated with a unique group. Groups are not visible to Buyers. They are used by Catalog Administrators to logically group the unpublished catalogs to efficiently manage them collaboratively.

Customizing the configuration visible to the buyer when they order the service

The
Configuration Parameters
tab allows you to associate configuration groups, sections, and attributes with the catalog. Configuration groups create clickable fields that are displayed to the user on the
Additional Parameters
page when they are ordering the catalog. These boxes are further divided into fields based on sections. Both configuration groups can contain attributes, which are fields that the user must fill out during provisioning. The configuration groups, sections, and attributes are displayed in the order that they are listed on this tab. If you want to change this order, click
Reorder
in the upper right and move them around as desired.
For more information about configuration groups, sections, and attributes, see the following sections:

Managing attributes

Attributes are the fields that the user needs to fill in when provisioning the catalog. They are organized by configuration groups and optionally sections within those groups.

Creating attributes

You can also get to this page automatically while creating a configuration group. For more information, see Creating configuration groups. In this case, you will be taken to the
Add New Section/Attribute
page. Click to select
Attribute
and click
Add Attribute
.
If you want to add an attribute to a configuration group, complete the following steps:
  1. Navigate to the
    Configuration Parameters
    tab.
  2. Click the
    Actions
    icon for a configuration group or section and select
    Add Attribute
    .
  3. On the
    New Attribute
    page, enter the following information for the attribute:
    • Configuration Group Name:
      Enter the name of the config that you want displayed on the UI while configuring a service. If you create this attribute within a configuration group, this parameter will already be filled in and will not be editable.
    • Section Name:
      The name of the section within the configuration group. If you create this attribute within a section, this parameter will already be filled in and will not be editable.
    • Configuration Name:
      Enter the name that you want displayed for this attribute (the field name) in the UI while configuring a service.
    • Description:
      Enter any information that you want to provide to the user about the configuration. This text is available to the user as a tool tip while ordering the service to help them understand the purpose of the attribute during provisioning.
    • Required:
      Determines whether this field is mandatory when the user is configuring the service.
    • Selected:
      Allows a radio button or checkbox to be preselected when the service is being configured.
    • Editable:
      Determines whether the field continues to be configurable after the service is provisioned.
    • Configurable:
      Determines whether the field is configurable while the service is being provisioned during edit of the catalog.
    • Data Type
      and
      Input Type:
      Determines which type of data the configuration will accept, and what subtype of data within that type the configuration will accept. See the table for the combinations that are currently supported.
    • Required:
      Set the attribute as required to prevent the user from ordering the service without inputting data into this field. The field will be marked with a red asterisk on the UI.
The following fields are displayed depending on the combination you select in
Data Type
and
Input Type:
The supported Regex format is JavaScript Regular Expressions. For more information, see https://www.w3schools.com/jsref/jsref_obj_regexp.asp.
  • Validation:
    Enter a validation expression in Regex format to ensure that the text entered meets your rules.
  • Error Message:
    Enter a warning message to be shown to the user when what has been entered does not comply with the Regex expression provided in the
    Validation
    field.
  • Minimum Size:
    For
    freetext
    , this is the minimum acceptable number of characters. For
    numberinput
    , it is the lowest acceptable value.
  • Maximum Size:
    For
    freetext
    , this is the maximum acceptable number of characters. For
    numberinput
    , it is the highest acceptable value.
  • Step:
    The acceptable interval between numbers. For example, if the minimum size is 1 and the step is 2, acceptable numbers are 1, 3, 5, 7, 9, and so on.
  • Default Value:
    Sets a value to be entered if the user does not specify something for this attribute.
  • Values:
    This section is used to create selections when the
    Input Type
    is
    checkbox
    ,
    radio
    , and
    selectOne
    . You can provide values in three ways:
    • Static Value:
      Use this method when you want to provide discrete, finite, and constant values. You need to provide the following values:
      • Label:
        This value will be displayed to the user in the UI while configuring the service.
      • Value:
        This value will be used internally by the template while provisioning the service. Click
        Add Row
        to add more value and label combinations.
    • Derived Value:
      Use this method when the value for a config depends on another config and the value is discrete, finite, and constant. The input for this type is JSON body. Derived values are currently not supported for IBM Cloud, Azure, Alibaba, and Google.
      In the following example, the value of config depends on the “region” config. When the user selects a
      us-east-1
      value for region, then the config will display
      US East 1A
      ,
      US East 1B
      , and
      US East 1C
      values in the UI. When the region value is "us-west-1" then value is
      US West 1A
      and
      US West 1B
      will be displayed in the UI.
      { "configId": "region" // parent configId, "valueMap": [{ "parentValueId": "us-east-1" // parent value for config region, "dependentValues": [{ "valueId": "us-east-1a", "label": "US East 1A" }, { "valueId": "us-east-1b", "label": "US East 1B" }, { "valueId": "us-east-1c", "label": "US East 1C" } ] }, { "parentValueId": "us-west-1" // parent value for config region, "dependentValues": [{ "valueId": "us-west-1a", "label": "US West 1A" }, { "valueId": "us-west-1b", "label": "US West 1B" } ] }] }
    • Derived from External Source:
      Use this option when the value is fetched dynamically from the provider. The input for this type is JSON body. If any value in the params depends on another config, then provide the dependent config in ${configId} format. If you need to fetch data from an external system that is not OOTB, see Dynamic data fetching from external systems.
The following types and subtypes combinations are currently supported.
Data Type
Input Type
Additional Fields
Supported Values
Default supported?
Array
multiselect
Static, Derived Value, Derived from External Source
Yes
date
date
Yes
datetime
datetime
Yes
password
password
Validation, Error Message
No
String
checkbox
Static
Yes
String
freetext
Validation, Minimum Size, Maximum Size, Validation, Error Message
Yes
String
numberinput
Minimum Size, Maximum Size, Step, Error Message
Yes
String
radio
Error Message
Static, Derived Value, Derived from External Source
Yes
String
searchList
Error Message
Static, Derived Value, Derived from External Source
Yes
String
selectOne
Error Message
Static, Derived Value, Derived from External Source
Yes
String
textArea
Minimum Size, Maximum Size, Validation, Error Message
Yes
A variable set to any (variable type=any) will appear as a text field.

Changing attribute visibility

After you have created your attributes, you can change their visibility. For more information, see Customizing visibility.

Editing attributes

Complete the following steps to edit an attribute in a configuration group:
  1. In the
    Details
    page for the service, click the
    Actions
    icon for the attribute that you want to manage and click
    View Details
    .
  2. Click
    Edit
    at the bottom of the window.
  3. In the
    Details
    page for the attribute, edit the fields as needed. See Creating attributes for details about how to fill out the fields.
  4. Click
    Save
    at the top of the page.

Deleting attributes

Configuration attributes that are related to other peer attributes cannot be deleted.
If you want to delete an attribute, in the
Details
page for the service, click the
Actions
icon for the attribute that you want to manage and click
Delete
. You cannot delete configuration attributes that have been discovered using
Derived from External Source
. At the prompt, click
OK
to confirm the delete.

Managing sections

Sections are repeatable groups of attributes within your configuration groups. You can use sections to create sets of attributes, such as for individual VMs that need to be configured separately.
Consider a scenario where user wants to add three disks to a Virtual Machine, but each with a different size and type. In addition, the number of disks must be changeable at runtime.
The requirements are as follows:
  • Number of Disks: 5
  • Disk 1: Type: RAID0, Size 1 GB
  • Disk 2: Type RAID1, Size 2 GB
  • Disk 3: Type Non RAID, Size 800 GB
If you want to reduce the complexity, user can combine such attributes into a section. The section in the above case would look like:
- ConfigurationGroup1 - Add Disk Section - Disk Type Attribute - Disk Size Attribute
The section can have the following properties:
  • Max:
    How many sections (collection of attributes) the user can add while performing service configuration.
  • Repeatable:
    If this is set to false, the max value is set to 1 and the user cannot add any more sections.
  • Removable:
    Sections can be removed when editing the stack.
During the Preview and Service Configuration, the user will see a
Add Disk
button. Clicking that button displays the configurations inside that section, in this example
Disk Type
and
Disk Size
.
If the user clicks
Add Disk
again, another collection of those configurations is displayed that can accept a different set of values than the first one. The user can add more sections until the section count reaches its max value. User can also remove any set of sections by clicking the button with the
Minus
icon.

Creating sections

You can also get to this page automatically while creating a configuration group. For more information, see Creating configuration groups. In this case, you will be taken to the
Add New Section/Attribute
page. Select
Section
and click
Add Section
.
To add a section, complete the following steps:
  1. On the
    Details
    page for the group, click the
    Actions
    icon for the configuration group and select
    Add New Section
    .
  2. On the
    Add New Section
    page, enter the following information:
    • Section Name:
      Enter a unique name for the section. The maximum number of characters is 256. You can use any special characters.
    • Repeatable:
      This determines whether the user can open multiples of the same section to create, for example, multiple VMs in the same order. Select whether this is
      True
      or
      False
      . If it is
      True
      , you will need to select a
      Maximum Size
      .
    • Removable:
      This selection determines whether a section that the user creates during the provisioning process can then be removed. Select whether this is
      True
      or
      False
      .
  3. Click
    Save
    .
After you have created the section, add one or more attributes to it using the following steps:
  1. Navigate to the
    Configuration Parameters
    tab.
  2. Expand any Configuration Group.
  3. Click the
    Actions
    icon for the section that you want and click
    Add Attribute
    .
  4. Create the attribute. For more information, see Creating attributes.

Editing sections

If you want to edit a section, complete the following steps:
  1. Navigate to the
    Configuration Parameters
    tab.
  2. Expand the configuration group that contains the section.
  3. Click the
    Actions
    icon for the section and select
    View Details
    .
  4. In the
    Details
    window for the section, click
    Edit
    .
  5. Alter the fields as needed and then click
    Save
    . For more information about the fields, see Creating sections.

Deleting sections

You cannot delete a section if it contains any attributes that have a dependency.
If you want to delete a section, complete the following steps:
  1. Navigate to the
    Configuration Parameters
    tab.
  2. Expand the configuration group that contains the section.
  3. Click the
    Actions
    icon for the section and select
    Delete
    .

Managing configuration groups

Configuration groups are the groups of attributes that are related to each other. On the
Catalog
page, configuration groups must be clicked to view the fields contained within them. The attributes and sections within a configuration group can be hidden from view using visibility rules.

Creating configuration groups

If you want to create a configuration group, complete the following steps:
  1. On the
    Details
    page for the catalog, click the
    Configuration Parameters
    tab.
  2. Click
    Add Group
    .
  3. Enter the following information for the group:
    • Name:
      Enter a meaningful name for the group that will be displayed as the name of the group in the UI. The Configuration GroupID is a unique identifier that is generated by the system for the group name and cannot be changed.
    • Call to Validate:
      Select
      True
      if you want the system to check that all fields have been completed properly when the user clicks
      Next
      while provisioning the service. This feature has not yet been implemented.
  4. Create any
    Visibility Rules
    . Visibility rules allow you to show and hide attributes and sections based on prior selections. For example, you might want to change the subregions that the user can select based on the region that that person selects. Click
    Add Config Rule
    to add rules for attributes, and
    Add Section Rule
    for sections. These selections are only visible if you have attributes and sections, respectively, in the configuration group. If you want to remove a rule, click the
    Trash Can
    icon next to it.
    You will need the Configuration GroupID and values handy to create visibility rules.
    Each rule requires you to fill out the following fields:
    • Configuration Name
      or
      Section Name:
      Select the attribute or section in the configuration group that you want to affect.
    • Hide Expression:
      Enter a Regex expression to determine when you hide the attribute. Use the Configuration GroupID and Value that you want to determine the attribute’s status. For example, in the expression
      newattribute_11276=’value9’
      , if the field with the Configuration GroupID
      newattribute_11276
      is set to
      value9
      , then the associated attribute is hidden. For more information, see Customizing visibility.
  5. Click
    Save
    .
The supported Regex format is JavaScript Regular Expressions. For more information, see https://www.w3schools.com/jsref/jsref_obj_regexp.asp.

Editing configuration groups

If you want to edit a configuration group, complete the following steps:
  1. On the
    Details
    page for the catalog, click the
    Configuration Parameters
    tab.
  2. Click the
    Actions
    icon for one of the configuration groups and select
    View Details
    .
  3. On the
    Details
    window for the configuration group, click
    Edit
    .
  4. Alter the details as needed, and then click
    Save
    . For more information about the fields, see Creating configuration groups.
Visibility rules can be applied at the configuration, attribute, or section level. For more information, see Customizing visibility.

Deleting configuration groups

You cannot delete a configuration group if it contains any attributes that have a dependency.
If you want to delete a configuration group, complete the following steps:
  1. On the
    Details
    page for the catalog, click the
    Configuration Parameters
    tab.
  2. Click the
    Actions
    icon for the configuration group and select
    Delete
    .

Customizing visibility

You will need the Configuration GroupID and values handy to create visibility rules.
Visibility rules allow you to show and hide attributes and sections based on prior selections. For example, you might want to change the subregions that the user can select based on the region that that person selects. Click
Add Config Rule
to add rules for attributes, and
Add Section Rule
for sections. For more information, see Editing configuration groups and Editing sections. Visibility rules mandate the conditions on when to show/hide certain configuration attributes or sections. Configuration groups cannot be hidden.
The supported operators in the visibility rule expressions are ==, =, !=, !==, &&, and ||.
In addition, you can manage visibility of attributes by team, context, or any combination of the two. For more information, see Managing visibility by context combination.

Show/Hide configuration attributes

The
Add Config Rule
button is enabled only when there are attributes in the configuration group. If you want to remove a rule, click the
Trash Can
icon next to it.
If you want to adjust the visibility of a configuration attribute, select the attribute and provide the rule (expression) in the
Hide Expression
field next to the
Section Name
.
As an example, consider the following attributes:
  • ConfigA
    • value1
      • value2
  • ConfigB
    • value3
      • value4
If you want ConfigB to be hidden when your user selects value1 of ConfigA, use the following hide expression:
ConfigA=='value1'
.

Show/Hide sections

If you want to adjust the visibility of a section, select the section and provide the rule (expression) in the
Hide Expression
field next to the
Section Name
.
The
Add Section Rule
button is enabled only when a section is present in the configuration group. If you want to remove a rule, click the
Trash Can
icon next to it.
As an example, consider the following attributes:
  • ConfigA
    • value1
    • value2
  • SectionA
    • ConfigB
      • value3
      • value4
If you want SectionA to be hidden on the UI when your user selects value1 of ConfigA, then use the following hide expression for "SectionA":
ConfigA=='value1'
.
As a more complex example, consider that a service with the following configuration attributes:
  • Configuration Group A
    • Config Name: VPC Attribute, Config ID: vpc_attr_1 (with below values):
      • Label: Create New, Value: true
      • Label: Use Existing, Value: false
    • New VPC Name
    • Existing VPC Name
For this example, you want to hide
New VPC Name
if your user selects
Use Existing
as the VPC Attribute value and hide
Existing VPC Name
if user selects
Create New
. In this case, the Catalog Admin needs to add these Visibility Rules in the Configuration Group A:
  • Click
    Add Config Rule
    and select the
    New VPC Name
    configuration. In the
    Hide Expression
    field, add the rule
    vpc_attr_1=='true'
    .
  • Click
    Add Config Rule
    and select the
    Existing VPC Name
    configuration. In the
    Hide Expression
    field, add the rule
    vpc_attr_1=='false'
    .

Managing visibility by context combination

Servicification support allows you to set up policies for Catalog Provisioning to prevent users from accessing services they are not allowed to. You can do this by team, by context, or a combination of the two. For example, you might want to limit European users to storage devices located in Europe. This technique that can only be used for these data types:
  • Array:
    • Multiselect
  • String:
    • selectOne
    • searchList
    • radio
To change the visibility for a catalog based on team, context, or both, complete the following steps:
  1. In the
    Provider Management
    window, click
    Add Services
    .
  2. Click the
    Actions
    icon next to the catalog you want to change and select
    View Details
    .
  3. Click the
    Configuration Parameters
    tab.
  4. Click the
    Actions
    icon for the parameter you want to adjust and select
    View Details
    .
  5. Click
    Edit
    .
  6. In the
    Values
    section, click
    Add Context Combination
    .
  7. In the
    Add Context Combination
    window, select any combination of context and team.
  8. In the
    Make Available to Parameter Values
    section, select the values that you want available to that combination.
  9. Click
    Save
    .

Reordering configuration groups, sections, and attributes

Order is not currently supported for sections and configuration groups.
The configuration groups, sections, and attributes are displayed in the order that they are listed on this tab. You can change them as needed with the
Reorder
feature. For example, if you want to group all your load balancer configuration attributes, create a new Load Balancer configuration group and move the attributes into it.
If you have any visibility rules, the dependent sections and attributes must always be listed after the attributes that they are dependent on.
If you want to change this order, complete the following steps:
  1. Navigate to the
    Configuration Parameters
    tab.
  2. Click
    Reorder
    in the upper right.
  3. Click and drag the items as desired.
  4. Click
    Save
    in the upper right.

Previewing catalogs

The Service Designer can preview a service to verify/validate how the order configuration options will be presented to the Buyer, based on their customizations. You will be shown the form as it would be viewed by the buyer and can fill it out to test its features without provisioning the service. Because there is no validation or on-the-fly preview while you are editing, you can only validate your changes using the
Preview
option. If you want to preview a catalog, complete the following steps:
  1. Navigate to the
    Provider Management
    page. To learn more about navigating to the different services from each tenant, refer to Landing page navigation or Kyndryl Bridge Landing page navigation.
  2. Click the
    Actions
    icon for a catalog in the Draft or Work in Progress state and select
    Preview
    .
You can also preview a catalog by clicking
Preview
in the upper right of the
Details
page for the service. If you want to get to the
Details
page, click the
Actions
icon for the service and selecting
View Details
.

Known limitations

The following are the known limitations with the Provider Management feature:

General limitations

The following limitations are common across all providers:
  • The sequence is mismatched between the
    Configuration Parameters
    page and the
    Preview
    page. When an attribute is added after a section, that attribute is displayed above the section. However, during the preview it is displaying after the section (which is expected).
  • All newly added sections are displayed below as they are grouped together.
  • An empty section is not visible during the preview.
  • Users are not able to delete multiple services from the Draft section.
  • Multiple services cannot be retired simultaneously by selecting multiple check boxes (feature is not implemented yet).
  • User is not able to unretire multiple services (feature is not implemented yet).
  • User cannot delete multiple services from the Retired state (feature is not implemented yet).
  • A new import job will not start if a previous job is still in progress.
  • When
    Import from File
    is performed after
    Import from Provider Account
    , the history displays the name of the provider account for the service that was imported from the file.
  • If an exported file is imported multiple times, the import only gets passed the first time. All subsequent attempts fail. Versioning is not supported so it is considered as a duplicate entry.
  • If the user exports any service from a server/tenant and tries to import it again on the same tenant, it fails because the service ID must be unique for every service on a particular tenant. If you want to onboard the same exported content on the same tenant/server, the user must add a unique service ID in all the required places in the exported content.
  • Users are unable to re-import servicified content that has been deleted.
  • If some services have been selected in the
    Draft
    tab and the user navigates to another tab, services in the same index from the list get auto selected on all tabs.
  • After entering valid credentials (GitHub token) and selecting
    TestConnection
    , the user gets an "Invalid Credentials" error message.
  • If you try to import a zip that contains files from multiple providers (such as Azure and Alibaba), then discovery gets completed for the Alibaba files and fails for the Azure files.
  • While adding a new attribute, if the user adds a validation on an attribute, the default value is not validated against the same validation rule.
  • The UI does not display multiple error messages returned by the APIs. Only the first error message is shown on the UI.
  • The
    Search
    field on the
    Configuration Parameters
    page is not functional.
  • The
    Static Value
    ,
    Derived Value
    , and
    Derived from External Source
    fields are not properly hidden for some
    Data Type
    and
    Input Type
    combinations.
  • Validations are not added for the
    Required
    ,
    Selected
    ,
    Editable
    , and
    Configurable
    fields.
  • The “Edit Success” message is displayed even if the user clicks
    Edit
    but saves without making any changes.
  • When editing service details, there is no placeholder to edit the heading for each feature or add multiple descriptions.
  • Adding fixed sections is not currently supported.
  • While creating a configuration group, the
    Call to Validate
    does not currently work.
  • The section sequence on Configuration Parameters is as follows:
    • Configurations within a configuration group are always displayed at the top of the group.
    • A section within a configuration group is always displayed at the bottom of the group.
  • Reorder is working only for Attributes and not for Groups/Sections.
  • Empty sections are not visible on the
    Additional Parameters
    page when the user previews the service.
  • When users import an empty .zip file, the catalog does not send valid zip content to integration and the job gets failed.
  • Users can add multiple hide expressions for the same config (all providers except for Amazon Web Service).
  • A section/attribute name created with special characters like @#!%&... cannot be deleted.
  • A user can disable the
    Required
    property for configs that are discovered after servicification while editing the configuration attribute.
  • While editing service details, there is no placeholder to edit the heading for each feature or add multiple descriptions to one feature.
  • While adding a section there is no placeholder on the UI for
    fixedSectionItems
    .
  • A service cannot be published with empty configuration groups or sections.
  • A removable property for Section is applicable only for the EDIT catalog flow.
  • For existing tenants, user will have to explicitly set the
    discoverContent
    and
    manageSOEnabled
    flags to
    true
    .
  • Even if the array
    'icbCatalogRepository'
    in the
    icb_catalog_metadata.json
    file will have multiple objects defined for a particular provider with different sourcepaths added in it, it will discover the content from only one sourcePath.
  • If there are a lot of configuration groups, sections, and attributes for the catalog and the scrollbar is enabled on the page, re-order is not possible from the top of the page to the bottom.
  • The user cannot add multiple hide expressions for same configuration feature at this moment. If a second hide expression is added, then it will either overwrite the previous one (GCP and Alibaba) or generate an error message (all other providers).

Amazon Web Services

The following limitations are specific to Amazon Web Services:
  • Data Type: String-Download and Input Type: Downloadable are not provided by the UI.
  • There is no
    Description
    field in the
    Service Details
    page so users cannot add a description for an onboarded native template.
  • The "Configure Region" config group is displayed at second position on the
    Configuration Parameter
    page. Ideally it should be on top for all the services.
  • Parsing of an AWS native YAML template (with short syntax form intrinsic functions) is technically not possible in
    nodejs
    for
    cb-aws-catalog-int
    . The
    library'cfn-flip'
    is the only Python library that can support AWS native YAML template conversion that is already supported in CLI-based servicification.
  • Even if the array
    'icbCatalogRepository'
    in the
    icb_catalog_metadata.json
    file has multiple objects defined for the AWS provider with different sourcePaths, it will only discover the content from one sourcePath.
  • The catalog does not support a user-defined
    sourcePath:"somezipfile.zip"
    file, so integration does not receive valid zip content and the job fails. However, if users define
    sourcePath:"/"
    and place the .zip file containing native templates in this directory, then servicification is successful.
  • The
    Import Failed Count
    field in the job status email always shows the count as 0 even if failures occurred during the job.
  • If the user edits a configuration attribute by changing the
    Values
    option from
    Derived Value
    to
    Static Value
    without providing any values for the
    Static Value
    option, then any
    Derived Value
    metadata that was saved earlier will be retained.

Microsoft Azure

The following limitation is specific to Microsoft Azure:
  • If the source path of exported content has multiple compressed files, only the first
    .zip
    file will be considered for import.

Google Cloud Provider

The following limitations are specific to Google Cloud Provider:
  • The
    Derived value
    feature is not yet supported.
  • Nested
    .zip
    file structures are not supported.
  • The UI allows exporting services in WIP format, but this format is not supported from the integrations side. Therefore, the user will get a success message after exporting the WIP service, but the service will not be available in the zip file.

IBM Cloud

The following limitations are specific to IBM Cloud:
  • Cancel discovery from the
    Catalog Admin
    page is not yet implemented for IBM Cloud.
  • A pricing error is displayed if a user reorders the template's default configs into a new section.
  • Users cannot add
    Derived From External Source
    metadata without specifying a parent configID.
  • The
    Derived value
    feature is not yet supported.
  • If there are multiple Terraform files for a service, all files should be in a folder. Importing a
    .zip
    file containing more than one Terraform file for same service (
    main.tf
    ,
    variables.tf
    ,
    provider.tf
    ) at sourcePath without being in a folder will not work.

Alibaba Cloud

The following limitations are specific to Alibaba Cloud:
  • The
    Derived Value
    feature is not yet supported.
  • The
    Import Failed Count
    field in the job status email always shows the count as 0 even if failures occurred during the job.
  • If you provide an empty section in the template, then that empty section will not be visible during preview.
Do you have two minutes for a quick survey?
Take Survey