def main(): global handle parser = argparse.ArgumentParser( description= "Connect to UCS and create Kubernetes Infrastructure. We will create several resources on your UCS domain that will help us install Kubernetes." ) parser.add_argument("user", help='The user account to log into UCS: e.g.: admin') parser.add_argument("password", help='The password to connect to UCS: e.g.: cisco123') parser.add_argument("server", help='UCS Manager: e.g: 192.168.3.1') parser.add_argument('-d', "--delete", help='Deletes kubernetes resources from UCS', action="store_true") parser.add_argument( '-o', "--org", type=str, default='root', help= 'The organization you want these resources created under: e.g: root') args = parser.parse_args() org = args.org # loging handle = UCSSession.login(args.user, args.password, args.server) if handle == "": sys.exit(1) # see what's up with the org. if org == "": org = "org-root" else: # verify org exists. if UCSUtil.query_org(handle, org) == False: UCSUtil.create_org(handle, org) org = "org-root/org-" + org if args.delete == False: UCSNet.createKubeNetworking(handle, org) UCSServer.createKubeServers(handle, org) # destroy the UCS stuff we just created. else: print "Are you sure you want to delete the UCS Kubernetes infrastructure?" print "Running servers will be deleted, no work will be saved or recoverable." print "If this are in production, this could be really bad, and you might lose your job" val = raw_input("If you are really sure, please type: 'yes': ") if val == 'yes': UCSServer.deleteKubeServers(handle, org) UCSNet.deleteKubeNetworking(handle, org) else: print "cool. No harm done." UCSSession.logout(handle)
def make_ucs(): err, msg, handle = login() if err != 0: return not_logged_in(msg) #TODO: make so we can specify orgs in kubam. Right now its hard coded. err, msg = UCSUtil.create_org(handle, "kubam") if err != 0: logout(handle) return err, msg err, msg, net_settings = YamlDB.get_ucs_network(KUBAM_CFG) selected_vlan = "" if "vlan" in net_settings: selected_vlan = net_settings["vlan"] if selected_vlan == "": logout(handle) return 1, "No vlan selected in UCS configuration." err, msg = UCSNet.createKubeNetworking(handle, "org-root/org-kubam", selected_vlan) if err != 0: logout(handle) return err, msg # get the selected servers, and hosts. err, msg, hosts = YamlDB.get_hosts(KUBAM_CFG) err, msg, servers = YamlDB.get_ucs_servers(KUBAM_CFG) err, msg, kubam_ip = YamlDB.get_kubam_ip(KUBAM_CFG) err, msg = UCSServer.createKubeServers(handle, "org-root/org-kubam", hosts, servers, kubam_ip) if err != 0: logout(handle) return err, msg logout(handle) return err, msg
def make_ucs(): err, msg, handle = login() if err != 0: return not_logged_in(msg) err, msg, full_org = get_full_org(handle) if err != 0: return err, msg err, msg, net_settings = YamlDB.get_ucs_network(KUBAM_CFG) selected_vlan = "" if "vlan" in net_settings: selected_vlan = net_settings["vlan"] if selected_vlan == "": logout(handle) return 1, "No vlan selected in UCS configuration." err, msg = UCSNet.createKubeNetworking(handle, full_org, selected_vlan) if err != 0: logout(handle) return err, msg # get the selected servers, and hosts. err, msg, hosts = YamlDB.get_hosts(KUBAM_CFG) err, msg, servers = YamlDB.get_ucs_servers(KUBAM_CFG) err, msg, kubam_ip = YamlDB.get_kubam_ip(KUBAM_CFG) err, msg = UCSServer.createKubeServers(handle, full_org, hosts, servers, kubam_ip) if err != 0: logout(handle) return err, msg logout(handle) return err, msg
def get_networks(): err, msg, handle = login() if err != 0: return not_logged_in(msg) vlans = UCSNet.listVLANs(handle) logout(handle) err, msg, net_hash = YamlDB.get_network(KUBAM_CFG) err, msg, net_settings = YamlDB.get_ucs_network(KUBAM_CFG) selected_vlan = "" if "vlan" in net_settings: selected_vlan = net_settings["vlan"] return jsonify({'vlans': [{"name": vlan.name, "id": vlan.id, "selected": (vlan.name == selected_vlan)} for vlan in vlans], 'network' : net_hash}), 200
def destroy(): app.logger.info("Deleting deployment") err, msg, handle = login() if err != 0: return not_logged_in(msg) err, msg, hosts = YamlDB.get_hosts(KUBAM_CFG) if err != 0: return jsonify({'error': msg}), 400 if len(hosts) == 0: return jsonify({"status": "no servers deployed"}), 200 err, msg = UCSServer.deleteKubeServers(handle, "org-root/org-kubam", hosts) if err != 0: return jsonify({'error': msg}), 400 err, msg = UCSNet.deleteKubeNetworking(handle, "org-root/org-kubam") if err != 0: return jsonify({'error': msg}), 400 return jsonify({"status": "ok"}), 201