From 4c88ac69f277b8ee45686b24f9651adcf965991a Mon Sep 17 00:00:00 2001
From: Matthew Mosesohn <mmosesohn@mirantis.com>
Date: Wed, 6 Sep 2017 09:36:54 +0300
Subject: [PATCH] Use kubectl apply instead of create/replace (#1610)

Disable checks for existing resources to speed up execution.
---
 library/kube.py | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/library/kube.py b/library/kube.py
index 77f7e6e35..52f6a235d 100644
--- a/library/kube.py
+++ b/library/kube.py
@@ -139,7 +139,7 @@ class KubeManager(object):
         if check and self.exists():
             return []
 
-        cmd = ['create']
+        cmd = ['apply']
 
         if not self.filename:
             self.module.fail_json(msg='filename required to create')
@@ -150,10 +150,7 @@ class KubeManager(object):
 
     def replace(self):
 
-        if not self.force and not self.exists():
-            return []
-
-        cmd = ['replace']
+        cmd = ['apply']
 
         if self.force:
             cmd.append('--force')
@@ -271,7 +268,7 @@ def main():
     manager = KubeManager(module)
     state = module.params.get('state')
     if state == 'present':
-        result = manager.create()
+        result = manager.create(check=False)
 
     elif state == 'absent':
         result = manager.delete()
@@ -283,11 +280,7 @@ def main():
         result = manager.stop()
 
     elif state == 'latest':
-        if manager.exists():
-            manager.force = True
-            result = manager.replace()
-        else:
-            result = manager.create(check=False)
+        result = manager.replace()
 
     else:
         module.fail_json(msg='Unrecognized state %s.' % state)
-- 
GitLab