Creating Resources#
Create a Pod#
Create a new Pod
.
from kr8s.objects import Pod
pod = Pod({
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "my-pod",
},
"spec": {
"containers": [{"name": "pause", "image": "gcr.io/google_containers/pause",}]
},
})
pod.create()
from kr8s.asyncio.objects import Pod
pod = await Pod({
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "my-pod",
},
"spec": {
"containers": [{"name": "pause", "image": "gcr.io/google_containers/pause",}]
},
})
await pod.create()
Create a Secret#
Create a Secret
with several keys.
from base64 import b64encode
from kr8s.objects import Secret
secret = Secret({
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "mysecret",
},
"type": "Opaque",
"data": {
"password": b64encode("s33msi4".encode()).decode(),
"username": b64encode("jane".encode()).decode(),
},
})
secret.create()
from base64 import b64encode
from kr8s.asyncio.objects import Secret
secret = await Secret({
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "mysecret",
},
"type": "Opaque",
"data": {
"password": b64encode("s33msi4".encode()).decode(),
"username": b64encode("jane".encode()).decode(),
},
})
await secret.create()
Validate a Pod#
Validate the schema of a Pod
before creating it.
Hint
kr8s
does not perform client-side validation of object schemas, instead it behaves like kubectl
and relies on server-side validation. However, if you have the kubernetes-validate
package installed you can easily check it yourself.
import kubernetes_validate
from kr8s.objects import Pod
pod = Pod({
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "my-pod",
},
"spec": {
"containers": [{"name": "pause", "image": "gcr.io/google_containers/pause",}]
},
})
kubernetes_validate.validate(pod.raw, "1.28")
pod.create()
import kubernetes_validate
from kr8s.asyncio.objects import Pod
pod = await Pod({
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "my-pod",
},
"spec": {
"containers": [{"name": "pause", "image": "gcr.io/google_containers/pause",}]
},
})
kubernetes_validate.validate(pod.raw, "1.28")
await pod.create()
See also
If willthames/kubernetes-validate#23 is accepted we can pass the Pod directly to kubernetes_validate.validate()
.