Skip to content

Industrial Edge Control (IECTL) - Overview

Industrial Edge Control (IECTL) is a Command Line Interface to interact with Industrial Edge and its components. You can choose from a variety of plugins supporting different use-cases. For more information, use the help command as well as the env command to see all configuration options.

Feature Overview

  • Automated onboarding of IEM / IED
  • All app publishing commands on IEM / IE Hub
  • All available public APIs generated as CLI commands (incl. a subset of internal APIs)
  • Full control of the public APIs request via using a file or string, similar to curl's @data
  • Configuration management
  • Output querying support via JSONPath for re-using command output
  • Use manifest files to execute multiple commands at once

Adding Configurations

The iectl persists all configurations under $HOME/.iectl.

Besides resource configurations, the iectl provides some generic configuration possibilities, as listed below:

export | set EDGE_SKIP_TLS=1 # If you want to skip certificate validation

The interactive way is providing you with more flexible configuration possibilities as well as switching capabilities.

iectl config

# View all configs

iectl config view -A

# View configs for IEM / IED / IEAP / IE Hub

iectl config view -t iem|device|publisher|iehub|k8score

# Add configs, type: IEM / IED / IEAP / IE Hub

iectl config add <type> --name name --user user --password password --url url

# View active configs

iectl config active

# Switch active configs
iectl config switch --name name --type iem|ied|iehub|publisher|iem-os

Querying and Filtering

All commands provide the ability to query for responses, e.g. retrieving the numeric application ID after searching for it via name. Querying is specified by using the --query flag and the JSON query path annotation for querying for accessing the JSON properties.

For further information on the JSONPath syntax, follow this page.

Note
Some rules may not directly apply to Golang. For example, the root of the object can be omitted but the curly braces must be provided around the expression.

```
# Retrieving all application IDs of all apps available in the catalog
iectl iem catalog list --query {data[*].applicationId}
```

Repeated Args

Arguments defined as stringArray in iectl commands can be repeated to pass multiple values. For example in device onboard command "--nics" can be used multiple times.

--nics 'value1' --nics 'value2'


Apply commands via manifest file


The manifest file provides the possibility to execute multiple commands at once, i.e. to fulfill a use-case such as creating an application , creating its version and export app file.

iectl apply -f downloads.yaml

Manifest YAML configuration : manifest file will contain these keys -

  • commands : under commands key you can provide list of command configurations that need to be executed

  • command : placeholder for command label

  • target : target will contain the root command you want to invoke i.e. : iem, portal, publisher, device, onboard etc.

  • resource : resource contain the hierarchy of command which you want to execute joined by dot (.) for e.g.

    iectl publisher app-project upload catalog 
    

    this command will have publisher in target and app-project.upload.catalog in resource

  • parameters : parameters contain the flags and their values corresponding to the command added in the resource. Each parameter value should be given in double quotes ("") except json data which will be given in single quotes('').

Note
use parameter allowfailure : "true" if you want to continue even if the command fails with en error

  • variables : Define variables in the manifest yaml and use them in the command parameters. E.g. :
variables :
  username : "myuser@siemens.com"
commands :
  - command
    .
    .
    .
    parameters
      username: "${{username}}"

Compatibility

Refer to the following IED-OS Compatibility Matrix:

IED-OS version <= 1.12.0-10
IECTL version <= 2.6.9 No compatibility issues
IECTL version >= 2.7.1 Not compatible, must use iectl version <= 2.6.9

Refer to the following App compression Compatibility Matrix:

IECTL version IEM version Comments
IECTL version >= 2.10.1 HELM chart version >= 1.8.1 App compression works as intended. Packaging with compressed image.
IECTL version < 2.10.1 HELM chart version <> 1.8.1 Only app packaging will work without image compression.
IECTL version < 2.10.1 HELM chart version >= 1.8.1 Only app packaging will work without image compression.
IECTL version >= 2.10.1 HELM chart version < 1.8.1 Incompatible, won't work.