Spaces:
Runtime error
Runtime error
from typing import Dict, Optional | |
from kubernetes.client.models.v1_object_meta import V1ObjectMeta | |
from pydantic import BaseModel, Field, ConfigDict | |
class ObjectMeta(BaseModel): | |
""" | |
ObjectMeta is metadata that all persisted resources must have, | |
which includes all objects users must create. | |
- https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#objectmeta-v1-meta | |
""" | |
resource_type: str = "ObjectMeta" | |
# Name must be unique within a namespace. Is required when creating resources, | |
# although some resources may allow a client to request the generation of an appropriate name automatically. | |
# Name is primarily intended for creation idempotence and configuration definition. | |
# Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names | |
name: Optional[str] = None | |
# Namespace defines the space within which each name must be unique. | |
# An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. | |
# Not all objects are required to be scoped to a namespace - | |
# the value of this field for those objects will be empty. Must be a DNS_LABEL. | |
# Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces | |
namespace: Optional[str] = None | |
# Map of string keys and values that can be used to organize and categorize (scope and select) objects. | |
# May match selectors of replication controllers and services. | |
# More info: http://kubernetes.io/docs/user-guide/labels | |
labels: Optional[Dict[str, str]] = None | |
# Annotations is an unstructured key value map stored with a resource that may be set by external tools | |
# to store and retrieve arbitrary metadata. They are not queryable and should be preserved when | |
# modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations | |
annotations: Optional[Dict[str, str]] = None | |
# The name of the cluster which the object belongs to. This is used to distinguish resources with same name | |
# and namespace in different clusters. This field is not set anywhere right now and apiserver is going | |
# to ignore it if set in create or update request. | |
cluster_name: Optional[str] = Field(None, alias="clusterName") | |
def get_k8s_object(self) -> V1ObjectMeta: | |
# Return a V1ObjectMeta object | |
# https://github.com/kubernetes-client/python/blob/master/kubernetes/client/models/v1_object_meta.py | |
_v1_object_meta = V1ObjectMeta( | |
name=self.name, | |
namespace=self.namespace, | |
labels=self.labels, | |
annotations=self.annotations, | |
) | |
return _v1_object_meta | |
model_config = ConfigDict(arbitrary_types_allowed=True) | |