# Functions
CreateLinuxDeploy will create a deployment for a given image with a name in a namespace --overrides='{ "spec":{"template":{"spec": {"nodeSelector":{"beta.kubernetes.io/os":"linux"}}}}}'.
CreateLinuxDeployDeleteIfExists will create a deployment, deleting any pre-existing deployment with the same name.
CreateLinuxDeployIfNotExist first checks if a deployment already exists, and return it if so If not, we call CreateLinuxDeploy.
CreateWindowsDeploy will create a deployment for a given image with a name in a namespace.
CreateWindowsDeployDeleteIfExist first checks if a deployment already exists according to a naming pattern If a pre-existing deployment is found matching that pattern, it is deleted.
CreateWindowsDeployIfNotExist first checks if a deployment already exists, and return it if so If not, we call CreateWindowsDeploy.
Get returns a deployment from a name and namespace.
GetAll will return all deployments in a given namespace.
GetAllByPrefix will return all pods in a given namespace that match a prefix.
RunLinuxDeploy will create a deployment that runs a bash command in a pod --overrides=' "spec":{"template":{"spec": {"nodeSelector":{"beta.kubernetes.io/os":"linux"}}}}}'.
RunLinuxDeployDeleteIfExists will create a deployment that runs a bash command in a pod, deleting any pre-existing deployment with the same name.
# Structs
Container holds information like image, pull policy, name, etc...
Deployment repesentes a kubernetes deployment.
List holds a list of deployments returned from kubectl get deploy.
Metadata holds information like labels, name, and namespace.
Spec holds information the deployment strategy and number of replicas.
Template is used for fetching the deployment spec -> containers.
TemplateSpec holds the list of containers for a deployment, the dns policy, and restart policy.