def test_update_resource_quota(self): name = self.name namespace = self.name create_namespace = Popen(["kubectl", "create", "namespace", namespace], stdout=PIPE) request = """ apiVersion: v1 kind: ResourceQuota metadata: name: {} spec: hard: cpu: "20" memory: 1Gi persistentvolumeclaims: "10" pods: "10" replicationcontrollers: "20" resourcequotas: "1" secrets: "10" services: "5" """.format(name) filename = "/tmp/{}.yaml".format(name) with salt.utils.files.fopen(filename, "w") as f: f.write(salt.utils.stringutils.to_str(request)) create = Popen( [ "kubectl", "--namespace={}".format(namespace), "create", "-f", filename ], stdout=PIPE, ) # wee need to give kubernetes time save data in etcd time.sleep(0.2) quota = {"cpu": "10", "memory": "2Gi"} res = k8s.create_resource_quota( namespace, quota, name=name, apiserver_url="http://127.0.0.1:8080", update=True, ) proc = Popen( [ "kubectl", "--namespace={}".format(namespace), "get", "quota", name, "-o", "json", ], stdout=PIPE, ) kubectl_out = salt.utils.json.loads(proc.communicate()[0]) limit = kubectl_out.get("spec").get("hard").get("memory") self.assertEqual("2Gi", limit)
def test_create_resource_quota(self): name = self.name namespace = self.name create_namespace = Popen(["kubectl", "create", "namespace", namespace], stdout=PIPE) quota = { "cpu": "20", "memory": "1Gi" } res = k8s.create_resource_quota(namespace, quota, name=name, apiserver_url="http://127.0.0.1:8080") proc = Popen(["kubectl", "--namespace={0}".format(namespace), "get", "quota", name, "-o", "json"], stdout=PIPE) kubectl_out = salt.utils.json.loads(proc.communicate()[0]) self.assertTrue(isinstance(kubectl_out, dict))
def test_create_resource_quota(self): name = self.name namespace = self.name create_namespace = Popen(["kubectl", "create", "namespace", namespace], stdout=PIPE) quota = { "cpu": "20", "memory": "1Gi" } res = k8s.create_resource_quota(namespace, quota, name=name, apiserver_url="http://127.0.0.1:8080") proc = Popen(["kubectl", "--namespace={0}".format(namespace), "get", "quota", name, "-o", "json"], stdout=PIPE) kubectl_out = json.loads(proc.communicate()[0]) self.assertTrue(isinstance(kubectl_out, dict))
def test_update_resource_quota(self): name = self.name namespace = self.name create_namespace = Popen(["kubectl", "create", "namespace", namespace], stdout=PIPE) request = """ apiVersion: v1 kind: ResourceQuota metadata: name: {0} spec: hard: cpu: "20" memory: 1Gi persistentvolumeclaims: "10" pods: "10" replicationcontrollers: "20" resourcequotas: "1" secrets: "10" services: "5" """.format(name) filename = "/tmp/{0}.yaml".format(name) with open(filename, 'w') as f: f.write(request) create = Popen(["kubectl", "--namespace={0}".format(namespace), "create", "-f", filename], stdout=PIPE) # wee need to give kubernetes time save data in etcd time.sleep(0.2) quota = { "cpu": "10", "memory": "2Gi" } res = k8s.create_resource_quota(namespace, quota, name=name, apiserver_url="http://127.0.0.1:8080", update=True) proc = Popen(["kubectl", "--namespace={0}".format(namespace), "get", "quota", name, "-o", "json"], stdout=PIPE) kubectl_out = json.loads(proc.communicate()[0]) limit = kubectl_out.get("spec").get("hard").get("memory") self.assertEqual("2Gi", limit)