Skip to main content

Model

Description

Model is a placeholder for individual Workloads definitions in a CompositionModel.


Name field of tag name

The Name of the Element.

Kind: NameTag
Tag: name
Data Type: string
Optional: False


Vendor field of tag vendor

The Vendor of the Element, preferably defined with three alphanumeric lower case characters.

Kind: NameTag
Tag: vendor
Data Type: string
Optional: False


Kind field of tag kind

The Kind of the Workload is used in communication with the Workload as an HTTP header, X-HYDRA-APPLICATION-KIND, to support multipurpose container images. However, only a single kind is allowed at any time. The kind may or may not be in the roles list. The kind has the same validation as Kubernetes names, but with maximum allowed length of 31 characters.

Kind: string
Tag: kind
Data Type: string
Maximum Length: 127
Optional: False
Regular Expression: (^[a-z0-9]([-a-z0-9 ]*[a-z0-9])?$)


Roles field of tag roles

The Roles that the workload could play in this CompositionModel. These values determine how Athena builds the topology: the pod name would be listed under the all of its roles. We do not limit the roles for forward-compatibility and to support arbitrary workloads. However, the pattern limits to Kubernetes naming style with maximum length of 31 characters. Current version of Kubernetes API is not able to check for redundancy, but it MUST be avoided.

Tag: roles
Data Type: Slice
List Type: set
Optional: False


Workloads field of tag workloads

The Workloads for this Element given by a map of their names to container Images. All the images would be deployed in the same Pod. The container name should be unique in the Pod including the names for the Sidecars and the name manager. The name should not start with prefix app- or sidecar- as they are reserved for Athena. Supports OCI and Docker v2 container indexes with versions, without versioning or with hash checks. The containers defined in this list are all managed by Athena.

Kind: Map of string to ImageTag
Tag: workloads
Data Type: Map
Optional: False


Sidecars field of tag sidecars

The Sidecars for this Element given by a map of their names to ContainerDefinition format. These containers would be deployed in the same Pod. The container name should be unique in the Pod including the names for the Workloads and the name manager. The name should not start with prefix app- or sidecar- as they are reserved for Athena. This field is optional to define applications that should not be managed by Athena.

Kind: Map of string to ContainerDefinition
Tag: sidecars
Data Type: Map
Optional: True


ManagerImage field of tag manager-image

The ManagerImage to be used to deploy the manager. Supports OCI and Docker v2 container indexes with versions, without versioning or with hash checks. Defaults to Athena Manager image when not provided.

Kind: *./api/v1.ImageTag
Tag: manager-image
Data Type: Pointer
Default Values: hub.bubbleran.com/athena/manager:v1.5.0
Optional: True


Configs field of tag config

Configs determines the list of configurations to be used.

Tag: config
Data Type: Slice
List Map Key: app
List Type: map
Optional: False


Ports field of tag ports

Ports to be assigned for the pod as well as the associated services.

Tag: ports
Data Type: Slice
Optional: True


Security field of tag security

The Security context of the pod.

Kind: *./api/v1.Security
Tag: security
Data Type: Pointer
Optional: True


Instances field of tag instances

Number of Instances of to be replicated of this Element. Kubernetes does not encourage usage of unsigned integers or lower bit sizes due to inconsistencies in some programming languages, but we compensate this by defining the minimum and maximum values. It is the responsibility of the developers to ensure the allocated variable can hold all the range.

Kind: *uint8
Tag: instances
Data Type: Pointer
Default Values: 1
Maximum Values: 255
Minimum Values: 1
Optional: True


Resources field of tag resources

Resources of the pod.

Kind: *./api/v1.Resources
Tag: resources
Data Type: Pointer
Optional: True


Labels field of tag labels

Labels used for the pod and services. Athena applies extra labels coming from the network or internally.

Kind: Map of string to string
Tag: labels
Data Type: Map
Optional: True


Annotations field of tag annotations

Annotations for the pod and services. Athena applies extra annotations coming from the network or internally.

Kind: Map of string to string
Tag: annotations
Data Type: Map
Optional: True


Observations field of tag observe

Observations to be observed for the Workload.

Tag: observe
Data Type: Slice
List Map Key: name
List Type: map
Optional: True


ScalingMode field of tag scaling-mode

ScalingMode determines how the network should be scaled according to the slices.

Kind: *string
Tag: scaling-mode
Data Type: Pointer
Default Values: none
Enumeration: none, plmn, service-type, slice
Optional: True


Policies field of tag policies

Policies defines a list of ConfigMaps that contain keys in the format of *.rego which contain OPA Rego policies to be applied to the Network or Element objects created for this CompositionModel. They must be created in the same namespace of the Operator and the CompositionModel. Each policy needs to implement network.warn, network.warn_reason, element.warn, and element.warn_reason targets in their rules which are used to issue warnings to the users.

Kind: Array of gitlab.eurecom.fr/br/t9s/athena/insignia/identity.NameTag
Tag: policies
Data Type: Slice
Optional: True