chore: add ingress + configmap tasks
diff --git a/atmosphere/tasks/kubernetes/v1.py b/atmosphere/tasks/kubernetes/v1.py
index 4fbca09..771bbe9 100644
--- a/atmosphere/tasks/kubernetes/v1.py
+++ b/atmosphere/tasks/kubernetes/v1.py
@@ -21,6 +21,32 @@
)
+class ApplyConfigMapTask(base.ApplyKubernetesObjectTask):
+ def __init__(self, namespace: str, name: str, data: str):
+ self._data = data
+
+ super().__init__(
+ kind=pykube.ConfigMap,
+ namespace=namespace,
+ name=name,
+ requires=set(["namespace"]),
+ )
+
+ def generate_object(self) -> pykube.ConfigMap:
+ return pykube.ConfigMap(
+ self.api,
+ {
+ "apiVersion": self._obj_kind.version,
+ "kind": self._obj_kind.kind,
+ "metadata": {
+ "name": self._obj_name,
+ "namespace": self._obj_namespace,
+ },
+ "data": self._data,
+ },
+ )
+
+
class ApplyServiceTask(base.ApplyKubernetesObjectTask):
def __init__(self, namespace: str, name: str, labels: dict, spec: dict):
self._labels = labels
@@ -73,3 +99,40 @@
"stringData": self._data,
},
)
+
+
+class ApplyIngressTask(base.ApplyKubernetesObjectTask):
+ def __init__(
+ self,
+ namespace: str,
+ name: str,
+ spec: dict,
+ annotations: dict = {},
+ labels: dict = {},
+ ):
+ self._annotations = annotations
+ self._labels = labels
+ self._spec = spec
+
+ super().__init__(
+ kind=pykube.Ingress,
+ namespace=namespace,
+ name=name,
+ requires=set(["namespace"]),
+ )
+
+ def generate_object(self) -> pykube.Ingress:
+ return pykube.Ingress(
+ self.api,
+ {
+ "apiVersion": self._obj_kind.version,
+ "kind": self._obj_kind.kind,
+ "metadata": {
+ "name": self._obj_name,
+ "namespace": self._obj_namespace,
+ "annotations": self._annotations,
+ "labels": self._labels,
+ },
+ "spec": self._spec,
+ },
+ )