Model
Model is a placeholder for individual workloads definitions in a CompositionModel.
Name field of tag name
The Name of the Element.
Vendor field of tag vendor
The Vendor of the Element.
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 anytime. 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.
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.
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.
Sidecars field of tag sidecars
The Sidecars for this Element given by a map of their names to ContainerDefinitions. 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.
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. TODO: Define a constant for the default manager image.
hub.bubbleran.com/athena/manager:v1.5.0
^(?P<repository>[\w.\-_]+((?::\d+|)(/[a-z0-9._-]+/[a-z0-9._-]+))|)(?:/|)(?P<image>[a-z0-9.\-_]+(?:/[a-z0-9.\-_]+|))(:(?P<tag>[\w.\-_]{1,127})|)$
Configs field of tag config
Configs determines the list of configurations to be used.
Ports field of tag ports
Ports to be assigned for the pod as well as the associated services.
Security field of tag security
The Security context of the pod.
Instances field of tag instances
Number of Instances of to be replicated of this container.
Resources field of tag resources
Resources of the pod.
Labels field of tag labels
Labels used for the pod and services. Athena applies extra labels coming from the network or internally.
Annotations field of tag annotations
Annotations for the pod and services. Athena applies extra annotations coming from the network or internally.
Observations field of tag observe
Observations to be observed for the Workload.
ScalingMode field of tag scaling-mode
ScalingMode determines how the network should be scaled according to the slices.