summaryrefslogtreecommitdiffstats
path: root/ansible/library
diff options
context:
space:
mode:
authorPaul McGoldrick <paul.mcgoldrick@att.com>2017-09-28 10:03:38 -0700
committerPaul McGoldrick <paul.mcgoldrick@att.com>2017-09-28 10:14:09 -0700
commitf52ddcb67f75aeb6bd72fecfd4a133ae1eb56666 (patch)
tree898aca33908fa491bfe541ba8f3b40124562d147 /ansible/library
parent066d65126779abf924dd9175da56d2d43991dbff (diff)
initial seed code commit VVP-3
Change-Id: I6c9fede9b75ebaf1bcba2ad14f09f021fea63d21 Signed-off-by: Paul McGoldrick <paul.mcgoldrick@att.com>
Diffstat (limited to 'ansible/library')
-rwxr-xr-xansible/library/kubectl_apply_manifest.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/ansible/library/kubectl_apply_manifest.py b/ansible/library/kubectl_apply_manifest.py
new file mode 100755
index 0000000..75c68cb
--- /dev/null
+++ b/ansible/library/kubectl_apply_manifest.py
@@ -0,0 +1,73 @@
+# -*- encoding: utf-8 -*-
+# ============LICENSE_START=======================================================
+# org.onap.vvp/engagementmgr
+# ===================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the “License”);
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#!/usr/bin/python
+import os
+from ansible.module_utils.basic import AnsibleModule
+
+
+def kubectl_apply_manifest(module, manifest, kubeconfig):
+ kubectl_path = module.get_bin_path('kubectl', required=True)
+ args = [kubectl_path, '--kubeconfig', kubeconfig, 'apply', '-f', manifest]
+ return module.run_command(args)
+
+
+def main():
+ module = AnsibleModule(
+ argument_spec=dict(
+ manifest=dict(required=True),
+ kubeconfig=dict(default=os.environ['KUBECONFIG'])
+ ),
+ )
+
+ manifest = module.params['manifest']
+ kubeconfig = module.params['kubeconfig']
+
+ if kubeconfig is None:
+ msg = "Could not apply manifest, kubeconfig not specified"
+ module.fail_json(msg=msg)
+
+ rc, stdout, stderr = kubectl_apply_manifest(module, manifest, kubeconfig)
+ if rc == 0:
+ module.exit_json(changed=True, stdout=stdout)
+ else:
+ msg = "Could not apply manifest"
+ module.fail_json(msg=msg + " " + stderr)
+
+if __name__ == "__main__":
+ main()