• Stars
    star
    439
  • Rank 99,247 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 8 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Management tool for libvirt/aws/gcp/kubevirt/openstack/ovirt/vsphere/packet

kcli repository

CI Copr

Screenshot

Demo!

Description

This tool is meant to interact with existing virtualization providers (libvirt, KubeVirt, oVirt, OpenStack, VMware vSphere, GCP and AWS) and to easily deploy and customize VMs from cloud images.

You can also interact with those VMs (list, info, ssh, start, stop, delete, console, serialconsole, add/delete disk, add/delete nic, ...).

Furthermore, you can deploy VMs using predefined profiles, several at once using plan files or entire products for which plans were already created for you.

Refer to the documentation for more information

Quick Start

curl -s https://raw.githubusercontent.com/karmab/kcli/main/install.sh | bash

Deploy your first vm with:

kcli download image centos7
kcli create vm -i centos7 myvm
kcli list vm
# wait 5-10 seconds for vm to grab an ip
kcli ssh myvm
kcli delete vm

What you can do

  • Interact with all the virtualization providers using a single tool
  • Declare all your objects (VM, containers, networks, ansible playbooks, ...) in a single yaml plan file with a simple syntax
  • Customize a plan deployment using parameters and Jinja templating
  • Adjust VMs from a plan (memory, CPU, flavor, disks and NICs) to match what's defined in the plans
  • Inject all configuration with cloud-init/Ignition or the equivalent in cloud providers
  • Use profiles to launch VMs with same hardware characteristics
  • Launch a plan from an URL
  • Share your plan or use existing ones from Github repo as products
  • Use the existing plans to deploy Kubernetes, OpenShift, OpenStack, oVirt, kubevirt, ...
  • Use the existing cloud images for each distribution
  • Easily share private keys between your VMs
  • Handle dns entries for the VMs
  • Automatically subscribe your RHEL VMs
  • Get a push button notification when a vm has finished its deployment
  • Alternatively use web UI to do the same

Contributors

See contributors on GitHub

Copyright

Copyright 2017-2019 Karim Boumedhel

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 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.

Problems?

Open an issue or join us on slack

Mc Fly!!!

karmab

More Repositories

1

samplecontroller

a demo of how to run a python custom controller with crd on kubernetes
Python
74
star
2

aicli

assisted-installer-cli helper tool
Python
39
star
3

kcli-plan-samples

collection of plans to showcase kcli features
Shell
19
star
4

kcli-openshift4-baremetal

deploy baremetal ipi using a dedicated vm
Shell
17
star
5

tasty

yum like utility to interact with olm operators
Go
16
star
6

ovirt

script to create ovirt/rhev-m virtual machines and register them in cobbler for autoinstall
Python
16
star
7

autolabeller

Python
13
star
8

nuages

self service on top of ovirt,libvirt,vsphere,foreman and cobbler
JavaScript
11
star
9

audisp-simple

auditd plugin to concatenate audit messages by serial and convert uid to usernames in messages prior to sending them to syslog
Python
8
star
10

kcli-openshift4

Deploy openshift4 everywhere using kcli with openshift installer
Python
7
star
11

iowa

Install Openstack With Ansible
Python
4
star
12

nickyabbot

Troll Bot
Python
4
star
13

spacewalk-proxy-get

populate spacewalk-proxy bypassing squid for a given package or an entire channel
Python
3
star
14

ansible-kcli-modules

ansible modules for kcli
Python
3
star
15

metal3-demo

Shell
3
star
16

openshaft

playbooks to generate openstack containers
Shell
2
star
17

kcli-controller

k8s controller using kcli library to create machines
Python
2
star
18

matternotify

sends a message in mattermost
Python
2
star
19

istio-openshift-initializer

Python
2
star
20

satellite

satellite.py script
Python
2
star
21

agent-based-ansible

a playbook to deploy openshift using agent based workflow
Python
2
star
22

vsphere

jython script to interact with vsphere
Python
2
star
23

mazut

openstack installer based on puppet with foreman support
Puppet
1
star
24

ansible-aicli-modules

Ansible aicli modules
Python
1
star
25

foreman

python foreman bindings POC ( DEPRECATED)
Python
1
star
26

kcli-plan-satellite

a plan to deploy satellite
Shell
1
star
27

openshift-tekton-pipeline

kubevirt-pipeline
1
star
28

AD

interacts with an Active Directory (LDAP side)
Python
1
star
29

fiaas

Floating ip as a service
Go
1
star
30

argocd-cnf

test argocd for deploying cnf
Shell
1
star
31

kcli-plan-openshift4-upi

run a disconnected registry vm and publish live isos for baremetal install
Shell
1
star
32

terraform-provider-kcli

POC of a terraform provider for kcli using grpc
Go
1
star
33

tekton-kubevirt-demo

A simple demo of how to deploy vms and containers together from a pipeline
1
star
34

openstuck

basic openstack testing
Python
1
star
35

kcli-jenkins-demo

how to call kcli from jenkins by creating jenkinsfile from plan
Shell
1
star