Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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
Exemplo n.º 3
0
Arquivo: app.py Projeto: dsoper2/KUBaM
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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