-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update EdgeCloud_LcM.yaml #188
Changes from all commits
63d33e8
28534da
f9744cb
cd72851
2c6074b
3c86d5c
92532ab
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -410,6 +410,7 @@ components: | |
properties: | ||
name: | ||
type: string | ||
pattern: ^[A-Za-z][A-Za-z0-9_]{1,63}$ | ||
description: Name of the application. | ||
version: | ||
type: integer | ||
|
@@ -420,81 +421,67 @@ components: | |
- VM | ||
- CONTAINER | ||
- HELM | ||
fileName: | ||
type: string | ||
minLength: 8 | ||
maxLength: 32 | ||
description: Name of the file with the extension eg. zip, targz, etc. | ||
repository: | ||
operatingSystem: | ||
$ref: '#/components/schemas/OperatingSystem' | ||
appRepo: | ||
type: object | ||
required: | ||
- type | ||
- url | ||
- imagePath | ||
properties: | ||
type: | ||
type: string | ||
enum: | ||
- PRIVATEREPO | ||
- PUBLICREPO | ||
description: Artifact repository location. PUBLICREPO is used of public urls like github, helm repo etc, | ||
PRIVATEREPO is used for private repo managed by the application developer. | ||
url: | ||
description: Application repository and image URI information. PUBLICREPO is used of public urls like github, helm repo etc. PRIVATEREPO is used for private repo managed by the application developer. Private repo can be accessed by using the app developer provided userName and password. Password is recommended to be the personal access token created by developer e.g. in Github repo. | ||
imagePath: | ||
$ref: '#/components/schemas/Uri' | ||
userName: | ||
type: string | ||
description: Username is mandatory to access the artifact repository in case of private repository | ||
password: | ||
type: string | ||
description: Password to access the artifact repository | ||
token: | ||
type: string | ||
description: Authorization token access the artifact repository | ||
description: Username to acces the Helm chart, docker-compose file or VM image repository | ||
credentials: | ||
type: string | ||
maxLength: 128 | ||
description: Password or personal access token created by developer to acces the app repository. API users can generate a personal access token e.g. docker clients to use them as password, | ||
authType: | ||
type: string | ||
enum: | ||
- DOCKER | ||
- HTTP_BASIC | ||
- HTTP_BEARER | ||
- NONE | ||
description: The credentials can also be formatted as a Basic auth or Bearer auth in HTTP "Authorization" header. | ||
checksum: | ||
type: string | ||
description: MD5 checksum for VM and file-based images, sha256 digest for containers | ||
componentSpec: | ||
description: Details about compute, networking and storage requirements for each component of the application. | ||
App provider should define all information needed to instantiate the component. | ||
If artifact is being defined at component level this section should have information just about the component. | ||
In case the artifact is being defined at application level the section should provide details about all the components. | ||
description: Information defined in "appRepo" point to the application descriptor e.g. Helm chart, docker-compose yaml file etc. The descriptor may contain one or more containers and their associated meta-data. A component refers to additional details about these containers to expose the instances of the containers to external client applications. App provider can define one or more components (via the associated network port) in componentSpec corresponding to the containers in helm charts or docker-compose yaml file as part of app descriptors. | ||
type: array | ||
items: | ||
type: object | ||
required: | ||
- componentName | ||
- operatingSystem | ||
- cpuArchitecture | ||
- networkInterfaces | ||
- numOfInstances | ||
- restartPolicy | ||
properties: | ||
componentName: | ||
type: string | ||
description: Component name must be unique with an application | ||
operatingSystem: | ||
$ref: '#/components/schemas/OperatingSystem' | ||
cpuArchitecture: | ||
$ref: '#/components/schemas/CpuArchType' | ||
networkInterfaces: | ||
description: Each application component exposes some ports either for external users or for inter component communication. | ||
Application provider is required to specify which ports are to be exposed and the type of traffic that will flow through these ports. | ||
description: Each application component exposes some ports either for external users or for inter component communication. Application provider is required to specify which ports are to be exposed and the type of traffic that will flow through these ports.The underlying platform may assign a dynamic port against the "extPort" that the application clients will use to connect with edge application instance. | ||
type: array | ||
items: | ||
type: object | ||
required: | ||
- interfaceId | ||
- protocol | ||
- port | ||
- network | ||
- interfaceName | ||
- visibilityType | ||
properties: | ||
interfaceId: | ||
type: string | ||
description: Each Port and corresponding traffic protocol exposed by the component is identified by a name. | ||
Application client on user device requires this to uniquley idenify the interface. | ||
network: | ||
type: string | ||
description: Name of the network. In case the application has to be assoisated with more then 1 network then app provider | ||
must define the name of the network on which this interface has to be exposed. This parameter is required only if | ||
the port has to be exposed on a specific network other then default. | ||
pattern: ^[A-Za-z][A-Za-z0-9_]{3,31}$ | ||
description: Each Port and corresponding traffic protocol exposed by the component is identified by a name. Application client on user device requires this to uniquley idenify the interface. | ||
protocol: | ||
type: string | ||
enum: | ||
|
@@ -507,43 +494,21 @@ components: | |
format: int32 | ||
minimum: 1 | ||
maximum: 65535 | ||
description: Port number exposed by the component. OP may generate a dynamic port towards the UCs | ||
corresponding to this internal port and forward the client traffic from dynamic port to containerPort. | ||
interfaceName: | ||
type: string | ||
description: Interface Name. Required only if application has to be attatched to a network other then default. | ||
description: Port number exposed by the component. OP may generate a dynamic port towards the component instance which forwards external traffic to the component port. | ||
visibilityType: | ||
description: Defines whether the interface is exposed to outer world or not i.e., external, or internal. | ||
If this is set to "external", then it is exposed to external applications otherwise it is exposed | ||
internally to edge application components within edge cloud. When exposed to external world, | ||
an external dynamic port is assigned for UC traffic and mapped to the internal containerPort | ||
description: Defines whether the interface is exposed to outer world or not i.e., external, or internal.If this is set to "external", then it is exposed to external applications otherwise it is exposed internally to edge application components within edge cloud. When exposed to external world, an external dynamic port is assigned for UC traffic and mapped to the extPort | ||
type: string | ||
enum: | ||
- VISIBILITY_EXTERNAL | ||
- VISIBILITY_INTERNAL | ||
minItems: 1 | ||
numOfInstances: | ||
type: integer | ||
format: int32 | ||
description: Number of component instances to be launched. | ||
restartPolicy: | ||
type: string | ||
enum: | ||
- RESTART_POLICY_ALWAYS | ||
- RESTART_POLICY_NEVER | ||
description: How the platform shall handle component failure | ||
|
||
required: | ||
- name | ||
- virtType | ||
- fileName | ||
- repository | ||
- componentSpec | ||
CpuArchType: | ||
type: string | ||
enum: | ||
- x86_64 | ||
- arm_64 | ||
description: CPU Instruction Set Architecture (ISA) E.g., Intel, Arm etc. | ||
Comment on lines
-541
to
-546
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not sure if we should remove this. We sometimes see container images build for specific arch. I would like to see what others experience is here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think technically I am fully aligned with your comment. Only thing in this attempt is to keep the API simple in first revision with the assumption that first revision is for x86_64 and in future revisions these variations can be introduced again. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Clear, Thanks! |
||
|
||
AppInstanceInfo: | ||
description: Information about the application instance. | ||
type: object | ||
|
@@ -655,6 +620,7 @@ components: | |
$ref: '#/components/schemas/AppId' | ||
Uri: | ||
type: string | ||
example: https://charts.bitnami.com/bitnami/helm/example-chart:0.1.0 | ||
description: A Uniform Resource Identifier (URI) as per RFC 3986, identifies the endpoint within an Edge Cloud Node where the user equipment may connect to the selected application instance | ||
|
||
responses: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With the name "appRepo", this makes it sound like the URL below is the URL for the repository, i.e. docker.io, rather than the URL for the image, i.e. docker.io/hashicorp/httpecho:2.3.1. I suggest to rename the "url" field below to "imagePath", so it is clear the URL is for the image.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is valid. Will provide a change for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes done and committed to PR