pykube - RollingUpdater scale replicas

1/8/2017

Utilising the pykube module https://github.com/kelproject/pykube

Does anyone know how to utilise the RollingUpdate#scale_up functions to increase deployment replicas?

I'm struggling to work out how to do it from the code base.

-- eggsy84
kubernetes
python

3 Answers

4/25/2017

@eggsy84's answer will work but not elegant because you don't need to check all Deployment to update.

Here's the practical example if you want to update with pykube.

import pykube
import operator

api = pykube.HTTPClient(pykube.KubeConfig.from_file("~/.kube/config"))

name = "ms-999-ear2-071625"
deployment_obj = {
          "apiVersion": "extensions/v1beta1",
          "kind": "Deployment",
          "metadata": {
              "name": name,
          }
      }

deployment = pykube.Deployment(api, deployment_obj)
deployment.update()
deployment.replicas = 2
deployment.update()
-- tobe
Source: StackOverflow

1/8/2017

Managed to work this out - to increase replicas to 3 you would do something like the following:

deployments = pykube.Deployment.objects(kubernetesApi).filter(namespace="my-namespace")

for dp in deployments:
    if dp.obj["metadata"]["name"] == "my-deployment":
        dp.replicas = 3
        pykube.Deployment(kubernetesApi, dp.obj).update()
-- eggsy84
Source: StackOverflow

7/19/2017

The method as following is simpler:

import pykube
import operator

api = pykube.HTTPClient(pykube.KubeConfig.from_file("/root/.kube/config"))

deployment = pykube.Deployment.objects(api).filter(namespace="kube-system").get(name="test-busybox")

deployment.replicas = 1
deployment.update()
-- cleverlzc
Source: StackOverflow