Skip to content

Latest commit

 

History

History
370 lines (247 loc) · 10.9 KB

domain_model.rst

File metadata and controls

370 lines (247 loc) · 10.9 KB

Domain Model

MicoApplication

Represents an application represented as a set of instances of MicoService

Required fields

  • shortName

    A brief name for the application intended for use as a unique identifier.

  • name

    The name of the artifact. Intended for humans.

  • version

    The version of this application.

  • description

    Human readable description of this application.

Optional fields

  • services

    The list of included MicoServices

  • serviceDeploymentInfos

    The list of service deployment information this application uses for the deployment of the required services. Null values are skipped.

  • contact

    Human readable contact information for support purposes.

  • owner

    Human readable information for the application owner who is responsible for this application.

MicoApplicationJobStatus

Represents the job status for a MicoApplication. Contains a list of jobs.

Fields

  • applicationShortName

    The short name of the application.

  • applicationVersion

    The version of the application.

  • status

    The aggregated status of jobs for the MicoApplication.

  • jobs

    The list of jobs for the MicoApplication.

MicoEnvironmentVariable

An environment variable represented as a simple key-value pair. Necessary since Neo4j does not allow to persist properties of composite types.

Fields

  • name

    Name of the environment variable.

  • value

    Value of the environment variable.

MicoServiceBackgroundJob

Background job for a MicoService. Instances of this class are persisted in the Redis database.

Fields

  • future

    The actual job future.

  • serviceShortName

    The short name of the corresponding MicoService.

  • serviceVersion

    The version of the corresponding MicoService.

  • type

    The type of this job.

  • status

    The current status of this Job.

  • errorMessage

    An error message in case the job has failed.

KubernetesDeploymentInfo

Information about the Kubernetes resources that are created through an actual deployment of a MicoService.

Optional fields

  • namespace

    The namespace in which the Kubernetes deployment is created.

  • deploymentName

    The name of the Kubernetes deployment created by a MicoService.

  • serviceNames

    The names of the Kubernetes services created by MicoServiceInterface.

MicoLabel

Represents a simple key-value pair label. Necessary since Neo4j does not allow to persist Map implementations.

Fields

  • key

    Key of the label.

  • value

    Value of the label.

MicoMessage

A simple message associated with a Type. Note that this class is only used for business logic purposes and instances are not persisted.

Required fields

  • content

    The actual message content.

  • type

    The Type of this message.

Methods

  • info(String content)

    Creates a new MicoMessage instance with the type Type#INFO and the given message content.

  • error(String content)

    Creates a new MicoMessage instance with the type Type#ERROR and the given message content.

  • warning(String content)

    Creates a new MicoMessage instance with the type Type#WARNING and the given message content.

Type

Enumeration for all types of a MicoMessage.

  • INFO
  • WARNING
  • ERROR

MicoService

Represents a service in the context of MICO.

Required fields

  • shortName

    A brief name for the service. In conjunction with the version it must be unique. Pattern is the same as the one for Kubernetes Service names.

  • name

    The name of the artifact. Intended for humans. Required only for the usage in the UI.

  • version

    The version of this service. E.g. the GitHub release tag.

  • description

    Human readable description of this service. Is allowed to be empty (default). Null values are skipped.

  • serviceCrawlingOrigin

    Indicates where this service originates from, e.g., GitHub (downloaded and built by MICO) or DockerHub (ready-to-use image). Null is ignored.

Optional fields

  • kafkaEnabled

    Indicates whether this service wants to communicate with Kafka. If so this service is handled differently (e.g. it's not mandatory to have interfaces).

  • serviceInterfaces

    The list of interfaces this service provides. Is read only. Use special API for updating.

  • dependencies

    The list of services that this service requires in order to run normally. Is read only. Use special API for updating.

  • contact

    Human readable contact information for support purposes.

  • owner

    Human readable information for the service owner who is responsible for this service.

  • dockerfilePath

    The relative (to vcsRoot) path to the Dockerfile.

  • dockerImageUri

    The fully qualified URI to the image on DockerHub. Either set after the image has been built by MICO (if the service originates from GitHub) or set by the user directly.

MicoServiceDependency

Represents a dependency of a MicoService.

Required fields

  • service

    This is the MicoService that requires (depends on) the depended service.

  • dependedService

    This is the MicoService depended by this service.

MicoServiceDeploymentInfo

Represents the information necessary for deploying a single service.

Required fields

  • service

    The MicoService this deployment refers to.

  • instanceId

    The instanceId of this deployment. It is used to be able to have multiple independent deployments of the same MICO service. Especially for KafkaFaasConnectors this is a must have.

Optional fields

  • replicas

    Number of desired instances. Default is 1.

  • labels

    Those labels are key-value pairs that are attached to the deployment of this service. Intended to be used to specify identifying attributes that are meaningful and relevant to users, but do not directly imply semantics to the core system. Labels can be used to organize and to select subsets of objects. Labels can be attached to objects at creation time and subsequently added and modified at any time. Each key must be unique for a given object.

  • enviromentVariables

    Enviroment variables as key-value pairs that are attached to the deployment of this MicoService. These enviroment values can be used by the deployed Micoservice during runtime. This could be useful to pass information to the MicoService that is not known during design time or is likely to change,

  • interfaceConnections

    Interface connections includes all required information to be able to connect a MicoService with MicoServiceInterface of other MicoServices. The backend uses the information to set enviroment variables so that e.g. the frontend knows how to connect to the backend

  • topics

    The list of topics that are used in the deployment of this MicoService

  • imagePullPolicy

    Indicates whether and when to pull the image. Default is Always.

  • kubernetesDeploymentInfo

    Information about the actual Kubernetes resource created by a deploy. Contains details about the used Kubernetes and Services.

MicoServiceInterface

Represents a interface, e.g., REST API, of a MicoService.

Required fields

  • serviceInterfaceName

    The name of this MicoServiceInterface. Pattern is the same than for Kubernetes Service names.

  • ports

    The list of ports. Must not be empty.

Optional fields

  • description

    Human readable description of this service interface, e.g., the functionality provided.

  • protocol

    The protocol of this interface (e.g. HTTP).

MicoServicePort

Represents a basic port with a port number and port type (protocol).

Required fields

  • port

    The port number of the externally exposed port.

  • type

    The type (protocol) of the port. Default port type is MicoPortType.TCP.

  • targetPort

    The port inside the container.

MicoPortType

Enumeration for all port types, e.g., TCP, supported by MICO.

  • TCP

    Transmission Control Protocol.

  • UDP

    User Datagram Protocol.

MicoServiceCrawlingOrigin

Enumeration for the various places a service may originate from.

  • GITHUB

    Indicates that a service originates from some GitHub respository.

  • DOCKER

    Indicates that a service originates from Docker.

  • NOT_DEFINED

    Undefined.

MicoVersion

Wrapper for a version that adds the functionality for a version prefix, so that versions like, e.g., 'v1.2.3' are possible.

  • prefix

    String prefix of this version, e.g., 'v'.

  • version

    The actual semantic version.

  • valueOf(String version)

    Creates a new instance of MicoVersion as a result of parsing the specified version string. Prefixes are possible as everything before the first digit in the given version string is treated as a prefix to the actual semantic version. Note that the prefix can only consist of letters.

  • forIntegers(int major, int minor, int patch)

    Creates a new instance of MicoVersion for the specified version numbers.

  • forIntegersWithPrefix(String prefix, int major, int minor, int patch)

    Creates a new instance of MicoVersion for the specified version numbers with the specified prefix string.

MicoInterfaceConnection

An interface connection contains the the information needed to connect a MicoService to an MicoServiceInterface of another MicoService. Instances of this class are persisted as nodes in the Neo4j database.

Required fields

  • environmentVariableName

    Name of the environment variable that is used to set the fully qualified name of an interface.

  • micoServiceInterfaceName

    Name of the MicoServiceInterface of an MicoService.

  • micoServiceShortName

    Name of the MicoService.

MicoTopic

A Topic represented a kafka-topic. Instances of this class are persisted as nodes in the neo4j database.

Required Fields

  • name

    Name of the topic

MicoTopicRole

Represents a role of a MicoTopic. An instance of this class is persisted as a relationship between a MicoServiceDeploymentInfo and a MicoTopic node in the neo4j database.

Required Fields

  • serviceDeploymentInfos

    This is the MicoServiceDeploymentInfo that includes the MicoTopicRole

  • topic

    This is the MicoTopic included by the MicoTopicRole#serviceDeploymentInfos

  • role

    This is the role of the MicoTopicRole

Role

Enumeration for all topic roles

  • INPUT
  • OUTPUT
  • DEAD_LETTER
  • INVALID_MESSAGE
  • TEST_MESSAGE_OUTPUT