Class: ApplicationDescription
Root class for an application description.
classDiagram
class ApplicationDescription
click ApplicationDescription href "../ApplicationDescription/"
ApplicationDescription : apiVersion
ApplicationDescription : configuration
ApplicationDescription --> "0..1" Configuration : configuration
click Configuration href "../Configuration/"
ApplicationDescription : deploymentProfiles
ApplicationDescription --> "1..*" DeploymentProfileDescription : deploymentProfiles
click DeploymentProfileDescription href "../DeploymentProfileDescription/"
ApplicationDescription : kind
ApplicationDescription : metadata
ApplicationDescription --> "1" ApplicationMetadata : metadata
click ApplicationMetadata href "../ApplicationMetadata/"
ApplicationDescription : parameters
ApplicationDescription --> "*" Parameter : parameters
click Parameter href "../Parameter/"
Attributes
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| apiVersion | 1 string |
Identifier of the version of the API the object definition follows | direct |
| kind | 1 string |
Specifies the object type; must be ApplicationDescription |
direct |
| metadata | 1 ApplicationMetadata |
Metadata element specifying characteristics about the application deployment | direct |
| deploymentProfiles | 1..* DeploymentProfileDescription |
Deployment profiles element specifying the types of deployments the applicati... | direct |
| parameters | * Parameter |
Parameters element specifying the configurable parameters to use when install... | direct |
| configuration | 0..1 Configuration |
Configuration element specifying how parameters should be displayed to the us... | direct |
Examples
Following examples have been automatically validated against the schema of this class.
ApplicationDescription-helm_and_compose
apiVersion: margo.org/v1-alpha1
kind: ApplicationDescription
metadata:
id: com-northstartida-digitron-orchestrator
name: Digitron orchestrator
description: The Digitron orchestrator application
version: 1.2.1
catalog:
application:
icon: ./resources/ndo-logo.png
tagline: Northstar Industrial Application's next-gen, AI driven, Digitron instrument orchestrator.
descriptionFile: ./resources/description.md
releaseNotes: ./resources/release-notes.md
licenseFile: ./resources/license.pdf
site: http://www.northstar-ida.com
tags: ["optimization", "instrumentation"]
author:
- name: Roger Wilkershank
email: rpwilkershank@northstar-ida.com
organization:
- name: Northstar Industrial Applications
site: http://northstar-ida.com
deploymentProfiles:
- type: helm.v3
id: com-northstartida-digitron-orchestrator-helm.v3-a
description: This allows to install / run the application as a Helm chart deployment.
The device where this application is installed needs to have a screen and a keyboard (as indicated in the required peripherals).
components:
- name: database-services
properties:
repository: oci://quay.io/charts/realtime-database-services
revision: 2.3.7
wait: true
timeout: 8m30s
- name: digitron-orchestrator
properties:
repository: oci://northstarida.azurecr.io/charts/northstarida-digitron-orchestrator
revision: 1.0.9
wait: true
requiredResources:
cpu:
cores: 1.5
architectures:
- amd64
- x86_64
memory: 1024Mi
storage: 10Gi
peripherals:
- type: gpu
manufacturer: NVIDIA
- type: display
interfaces:
- type: ethernet
- type: bluetooth
- type: compose
id: com-northstartida-digitron-orchestrator-compose-a
components:
- name: digitron-orchestrator-docker
properties:
packageLocation: https://northsitarida.com/digitron/docker/digitron-orchestrator.tar.gz
keyLocation: https://northsitarida.com/digitron/docker/public-key.asc
parameters:
idpName:
targets:
- pointer: idp.name
components: ["digitron-orchestrator"]
- pointer: ENV.IDP_NAME
components: ["digitron-orchestrator-docker"]
idpProvider:
targets:
- pointer: idp.provider
components: ["digitron-orchestrator"]
- pointer: ENV.IDP_PROVIDER
components: ["digitron-orchestrator-docker"]
idpClientId:
targets:
- pointer: idp.clientId
components: ["digitron-orchestrator"]
- pointer: ENV.IDP_CLIENT_ID
components: ["digitron-orchestrator-docker"]
idpUrl:
targets:
- pointer: idp.providerUrl
components: ["digitron-orchestrator"]
- pointer: idp.providerMetadata
components: ["digitron-orchestrator"]
- pointer: ENV.IDP_URL
components: ["digitron-orchestrator-docker"]
adminName:
targets:
- pointer: administrator.name
components: ["digitron-orchestrator"]
- pointer: ENV.ADMIN_NAME
components: ["digitron-orchestrator-docker"]
adminPrincipalName:
targets:
- pointer: administrator.userPrincipalName
components: ["digitron-orchestrator"]
- pointer: ENV.ADMIN_PRINCIPALNAME
components: ["digitron-orchestrator-docker"]
pollFrequency:
value: 30
targets:
- pointer: settings.pollFrequency
components: ["digitron-orchestrator", "database-services"]
- pointer: ENV.POLL_FREQUENCY
components: ["digitron-orchestrator-docker"]
siteId:
targets:
- pointer: settings.siteId
components: ["digitron-orchestrator", "database-services"]
- pointer: ENV.SITE_ID
components: ["digitron-orchestrator-docker"]
cpuLimit:
value: 1
targets:
- pointer: settings.limits.cpu
components: ["digitron-orchestrator"]
memoryLimit:
value: 16384
targets:
- pointer: settings.limits.memory
components: ["digitron-orchestrator"]
configuration:
sections:
- name: General
settings:
- parameter: pollFrequency
name: Poll Frequency
description: How often the service polls for updated data in seconds
schema: pollRange
- parameter: siteId
name: Site Id
description: Special identifier for the site (optional)
schema: optionalText
- name: Identity Provider
settings:
- parameter: idpName
name: Name
description: The name of the Identity Provider to use
immutable: true
schema: requiredText
- parameter: idpProvider
name: Provider
description: Provider something something
immutable: true
schema: requiredText
- parameter: idpClientId
name: Client ID
description: The client id
immutable: true
schema: requiredText
- parameter: idpUrl
name: Provider URL
description: The url of the Identity Provider
immutable: true
schema: url
- name: Administrator
settings:
- parameter: adminName
name: Presentation Name
description: The presentation name of the administrator
schema: requiredText
- parameter: adminPrincipalName
name: Principal Name
description: The principal name of the administrator
schema: email
- name: Resource Limits
settings:
- parameter: cpuLimit
name: CPU Limit
description: Maximum number of CPU cores to allow the application to consume
schema: cpuRange
- parameter: memoryLimit
name: Memory Limit
description: Maximum number of memory to allow the application to consume
schema: memoryRange
schema:
- name: requiredText
dataType: string
maxLength: 45
allowEmpty: false
- name: email
dataType: string
allowEmpty: false
regexMatch: .*@[a-z0-9.-]*
- name: url
dataType: string
allowEmpty: false
regexMatch: ^(http(s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
- name: pollRange
dataType: integer
minValue: 30
maxValue: 360
allowEmpty: false
- name: optionalText
dataType: string
minLength: 5
allowEmpty: true
- name: cpuRange
dataType: double
minValue: 0.5
maxPrecision: 1
allowEmpty: false
- name: memoryRange
dataType: integer
minValue: 16384
allowEmpty: false
ApplicationDescription-helm_only
apiVersion: margo.org/v1-alpha1
kind: ApplicationDescription
metadata:
id: com-northstartida-hello-world
name: Hello World
description: A basic hello world application
version: "1.0"
catalog:
application:
icon: ./resources/hw-logo.png
tagline: Northstar Industrial Application's hello world application.
descriptionFile: ./resources/description.md
releaseNotes: ./resources/release-notes.md
licenseFile: ./resources/license.pdf
site: http://www.northstar-ida.com
tags: ["monitoring"]
author:
- name: Roger Wilkershank
email: rpwilkershank@northstar-ida.com
organization:
- name: Northstar Industrial Applications
site: http://northstar-ida.com
deploymentProfiles:
- type: helm.v3
id: com-northstartida-hello-world-helm.v3-a
components:
- name: hello-world
properties:
repository: oci://northstarida.azurecr.io/charts/hello-world
revision: 1.0.1
wait: true
parameters:
greeting:
value: Hello
targets:
- pointer: global.config.appGreeting
components: ["hello-world"]
greetingAddressee:
value: World
targets:
- pointer: global.config.appGreetingAddressee
components: ["hello-world"]
configuration:
sections:
- name: General Settings
settings:
- parameter: greeting
name: Greeting
description: The greeting to use.
schema: requireText
- parameter: greetingAddressee
name: Greeting Addressee
description: The person, or group, the greeting addresses.
schema: requireText
schema:
- name: requireText
dataType: string
maxLength: 45
allowEmpty: false
This section is only relevant for contributors of the specification
LinkML Source
Direct
Details
name: ApplicationDescription
description: Root class for an application description.
from_schema: https://specification.margo.org/data-model
attributes:
apiVersion:
name: apiVersion
description: Identifier of the version of the API the object definition follows.
from_schema: https://specification.margo.org/application-schema
domain_of:
- ApplicationDeployment
- ApplicationDescription
- DeviceCapabilitiesManifest
- DeploymentStatusManifest
range: string
required: true
kind:
name: kind
description: Specifies the object type; must be `ApplicationDescription`.
from_schema: https://specification.margo.org/application-schema
designates_type: true
domain_of:
- ApplicationDeployment
- ApplicationDescription
- DeviceCapabilitiesManifest
- DeploymentStatusManifest
range: string
required: true
equals_string: ApplicationDescription
metadata:
name: metadata
description: Metadata element specifying characteristics about the application
deployment. See the [Metadata Attributes](#metadata-attributes) section below.
from_schema: https://specification.margo.org/application-schema
domain_of:
- ApplicationDeployment
- ApplicationDescription
range: ApplicationMetadata
required: true
deploymentProfiles:
name: deploymentProfiles
description: Deployment profiles element specifying the types of deployments the
application supports. See the [Deployment](#deploymentprofile-attributes) section
below.
from_schema: https://specification.margo.org/application-schema
domain_of:
- ApplicationDescription
range: DeploymentProfileDescription
required: true
multivalued: true
inlined: true
inlined_as_list: true
parameters:
name: parameters
description: Parameters element specifying the configurable parameters to use
when installing, or updating, the application. See the [Parameter](#parameter-attributes)
section below.
from_schema: https://specification.margo.org/application-schema
domain_of:
- Spec
- ApplicationDescription
range: Parameter
multivalued: true
inlined: true
inlined_as_list: false
configuration:
name: configuration
description: Configuration element specifying how parameters should be displayed
to the user for setting the value as well as the rules to use to validate the
user's input. See the [Configuration](#configuration-attributes) section below.
from_schema: https://specification.margo.org/application-schema
domain_of:
- ApplicationDescription
range: Configuration
Induced
Details
name: ApplicationDescription
description: Root class for an application description.
from_schema: https://specification.margo.org/data-model
attributes:
apiVersion:
name: apiVersion
description: Identifier of the version of the API the object definition follows.
from_schema: https://specification.margo.org/application-schema
alias: apiVersion
owner: ApplicationDescription
domain_of:
- ApplicationDeployment
- ApplicationDescription
- DeviceCapabilitiesManifest
- DeploymentStatusManifest
range: string
required: true
kind:
name: kind
description: Specifies the object type; must be `ApplicationDescription`.
from_schema: https://specification.margo.org/application-schema
designates_type: true
alias: kind
owner: ApplicationDescription
domain_of:
- ApplicationDeployment
- ApplicationDescription
- DeviceCapabilitiesManifest
- DeploymentStatusManifest
range: string
required: true
equals_string: ApplicationDescription
metadata:
name: metadata
description: Metadata element specifying characteristics about the application
deployment. See the [Metadata Attributes](#metadata-attributes) section below.
from_schema: https://specification.margo.org/application-schema
alias: metadata
owner: ApplicationDescription
domain_of:
- ApplicationDeployment
- ApplicationDescription
range: ApplicationMetadata
required: true
deploymentProfiles:
name: deploymentProfiles
description: Deployment profiles element specifying the types of deployments the
application supports. See the [Deployment](#deploymentprofile-attributes) section
below.
from_schema: https://specification.margo.org/application-schema
alias: deploymentProfiles
owner: ApplicationDescription
domain_of:
- ApplicationDescription
range: DeploymentProfileDescription
required: true
multivalued: true
inlined: true
inlined_as_list: true
parameters:
name: parameters
description: Parameters element specifying the configurable parameters to use
when installing, or updating, the application. See the [Parameter](#parameter-attributes)
section below.
from_schema: https://specification.margo.org/application-schema
alias: parameters
owner: ApplicationDescription
domain_of:
- Spec
- ApplicationDescription
range: Parameter
multivalued: true
inlined: true
inlined_as_list: false
configuration:
name: configuration
description: Configuration element specifying how parameters should be displayed
to the user for setting the value as well as the rules to use to validate the
user's input. See the [Configuration](#configuration-attributes) section below.
from_schema: https://specification.margo.org/application-schema
alias: configuration
owner: ApplicationDescription
domain_of:
- ApplicationDescription
range: Configuration