otupy.profiles.xbom.data.pod.Pod

class Pod(pod: object = None, namespace: str = None)

Bases: Record

Kubernetes pod

A pod is the logical unit in Kubernetes to run one or more containers. Other orchestration tool does not have this concept.

The concrete implementation of a Kubernetes Pod is a network namespace (in Linux). More than one containers can be hosted inside a Pod, each sharing the same network interface but with its own pid and filesystem namespaces. In this respect, the Pod does not provide totally isolated environments like other virtualisation models (i.e., virtual machines), because for containers inside the same Pod there is an overlapping of the network namespace. Indeed, the Pod is more a management unit than a true isolation environment. However, since multiple containers in the same Pod are often used as sidecars for network operations (e.g., TLS/SSL proxy), we consider the Pod as a lightweight virtualised Host, which is necessary to maintain consistency with the Host-ExecutionEnvironment hierarchy we are implementing.

As any other Host, the Pod is expected to have internal subsystems for the network, filesystems, etc.

Methods

as_cyclonedx

Convert Pod to CycloneDX component format.

fromdict

Builds instance from dictionary

todict

Converts to dictionary

Attributes

namespace

Namespace where the pod is instantiated

__init__(pod: object = None, namespace: str = None)
as_cyclonedx() Component

Convert Pod to CycloneDX component format.

Returns:

Component: CycloneDX Component representation.

classmethod fromdict(dic, e)

Builds instance from dictionary

It is used during deserialization to create an otupy instance from the text message. It takes an Encoder instance that is used to recursively build instances of the inner objects (the Encoder provides standard methods to create instances of base objects like strings, integers, boolean).

Parameters:
  • dic – The intermediary dictionary representation from which the object is built.

  • e – The Encoder that is being used.

Returns:

An instance of this class initialized from the dictionary values.

namespace: str = None

Namespace where the pod is instantiated

todict(e)

Converts to dictionary

It is used to convert this object to an intermediary representation during serialization. It takes an Encoder argument that is used to recursively serialize inner data and structures (the Encoder provides standard methods for converting base types to dictionaries)..

Parameters:

e – The Encoder that is being used.

Returns:

A dictionary compliants to the Language Specification’s serialization rules.