mirror of
https://github.com/gryf/boxpy.git
synced 2026-01-02 00:02:38 +01:00
Added examples.
This commit is contained in:
19
README.rst
19
README.rst
@@ -13,7 +13,6 @@ I've wrote this little tool just to not click myself to death using web browser
|
|||||||
for downloading cloud images, and going through VirtualBox GUI (or figuring out
|
for downloading cloud images, and going through VirtualBox GUI (or figuring out
|
||||||
weird named options for ``vboxmanage`` ;P)
|
weird named options for ``vboxmanage`` ;P)
|
||||||
|
|
||||||
|
|
||||||
Perhaps other distros would be supported in the future.
|
Perhaps other distros would be supported in the future.
|
||||||
|
|
||||||
|
|
||||||
@@ -33,7 +32,16 @@ Requirements
|
|||||||
How to run it
|
How to run it
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
First, make sure you fulfill the requirements, than you can issue:
|
First, make sure you fulfill the requirements; either by using packages from
|
||||||
|
your operating system, or by using virtualenv for Python requirements, i.e.:
|
||||||
|
|
||||||
|
.. code:: shell-session
|
||||||
|
|
||||||
|
$ python -m virtualenv .venv
|
||||||
|
$ . .venv/bin/activate
|
||||||
|
(.venv) $ pip install requirements.txt
|
||||||
|
|
||||||
|
than you can issue:
|
||||||
|
|
||||||
.. code:: shell-session
|
.. code:: shell-session
|
||||||
|
|
||||||
@@ -47,7 +55,9 @@ or simply link it somewhere in the path:
|
|||||||
$ chmod +x ~/bin/boxpy
|
$ chmod +x ~/bin/boxpy
|
||||||
|
|
||||||
and now you can issue some command. There are four command for simple managing
|
and now you can issue some command. There are four command for simple managing
|
||||||
VMs, maybe some other will be available in the future. Who knows.
|
VMs, maybe some other will be available in the future. Who knows. For
|
||||||
|
virtualenv it's a little more complicated, so using pyyaml from package
|
||||||
|
repository is preferred.
|
||||||
|
|
||||||
For your convenience there is a bash completion for each command, so you can
|
For your convenience there is a bash completion for each command, so you can
|
||||||
use it ad-hoc, or place on your ``.bashrc`` or whatever:
|
use it ad-hoc, or place on your ``.bashrc`` or whatever:
|
||||||
@@ -123,6 +133,9 @@ key is not provided.
|
|||||||
Moreover, there will be some tools installed and simple vim config
|
Moreover, there will be some tools installed and simple vim config
|
||||||
initialized, just to make you an idea, what could be done with it.
|
initialized, just to make you an idea, what could be done with it.
|
||||||
|
|
||||||
|
You can find some real world examples of the yaml cloud-init files that I use
|
||||||
|
in examples directory.
|
||||||
|
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
|||||||
177
examples/kuryr_multinode_master.yaml
Normal file
177
examples/kuryr_multinode_master.yaml
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
#cloud-config
|
||||||
|
packages:
|
||||||
|
- ccze
|
||||||
|
- exuberant-ctags
|
||||||
|
- flake8
|
||||||
|
- git-review
|
||||||
|
- htop
|
||||||
|
- ipython3
|
||||||
|
- jq
|
||||||
|
- mc
|
||||||
|
- python-apsw
|
||||||
|
- python3-flake8
|
||||||
|
- python3-jedi
|
||||||
|
- python3-pip
|
||||||
|
- rlwrap
|
||||||
|
- silversearcher-ag
|
||||||
|
- tmate
|
||||||
|
- tmux
|
||||||
|
- vim-nox
|
||||||
|
write_files:
|
||||||
|
- path: /etc/netplan/80-second.yaml
|
||||||
|
permissions: '0644'
|
||||||
|
content: |
|
||||||
|
network:
|
||||||
|
version: 2
|
||||||
|
ethernets:
|
||||||
|
enp0s8:
|
||||||
|
dhcp4: false
|
||||||
|
match:
|
||||||
|
name: enp0s8
|
||||||
|
addresses:
|
||||||
|
- 192.168.10.10/24
|
||||||
|
- path: /tmp/local.conf
|
||||||
|
permissions: '0644'
|
||||||
|
owner: ubuntu:ubuntu
|
||||||
|
content: |
|
||||||
|
[[local|localrc]]
|
||||||
|
disable_all_services
|
||||||
|
|
||||||
|
# temporary testing stuff
|
||||||
|
|
||||||
|
# crio:
|
||||||
|
#CONTAINER_ENGINE=crio
|
||||||
|
#CRIO_VERSION="1.20.2"
|
||||||
|
|
||||||
|
# kubeadm
|
||||||
|
#K8S_VERSION=1.20.2-00
|
||||||
|
#enable_service k8s-master
|
||||||
|
#enable_service k8s-node
|
||||||
|
#enable_service container
|
||||||
|
|
||||||
|
disable_service tls-proxy
|
||||||
|
|
||||||
|
# Cinder
|
||||||
|
disable_service c-api
|
||||||
|
disable_service c-bak
|
||||||
|
disable_service c-sch
|
||||||
|
disable_service c-vol
|
||||||
|
disable_service cinder
|
||||||
|
|
||||||
|
# Coredns
|
||||||
|
disable_service coredns
|
||||||
|
|
||||||
|
# Dstat (started to fail recently)
|
||||||
|
disable_service dstat
|
||||||
|
|
||||||
|
# ETCD
|
||||||
|
enable_service etcd3
|
||||||
|
|
||||||
|
# Glance
|
||||||
|
enable_service g-api
|
||||||
|
enable_service g-reg
|
||||||
|
|
||||||
|
# Horizon
|
||||||
|
disable_service horizon
|
||||||
|
|
||||||
|
# Keystone
|
||||||
|
enable_service key
|
||||||
|
|
||||||
|
# Kubernetes
|
||||||
|
# ==========
|
||||||
|
#
|
||||||
|
# Kubernetes is run from the hyperkube docker image
|
||||||
|
# If you already have a Kubernetes deployment, you can use it instead and omit
|
||||||
|
# enabling the Kubernetes service (except Kubelet, which must be run by
|
||||||
|
# devstack so that it uses our development CNI driver.
|
||||||
|
#
|
||||||
|
# The default is, again, for devstack to run the Kubernetes services:
|
||||||
|
enable_service kubernetes-master
|
||||||
|
# enable_service kubernetes-worker
|
||||||
|
|
||||||
|
# kuryr
|
||||||
|
enable_service kuryr-kubernetes
|
||||||
|
enable_service kuryr-daemon
|
||||||
|
|
||||||
|
# mysql.
|
||||||
|
enable_service mysql
|
||||||
|
|
||||||
|
# Nova services
|
||||||
|
enable_service n-api
|
||||||
|
enable_service n-api-meta
|
||||||
|
enable_service n-cond
|
||||||
|
enable_service n-cpu
|
||||||
|
enable_service n-sch
|
||||||
|
enable_service neutron
|
||||||
|
enable_service o-api
|
||||||
|
enable_service o-cw
|
||||||
|
enable_service o-hk
|
||||||
|
enable_service o-hm
|
||||||
|
enable_service octavia
|
||||||
|
|
||||||
|
# Placement API
|
||||||
|
enable_service placement-api
|
||||||
|
enable_service placement-client
|
||||||
|
|
||||||
|
# Neutron services
|
||||||
|
enable_service q-agt
|
||||||
|
enable_service q-dhcp
|
||||||
|
enable_service q-l3
|
||||||
|
enable_service q-meta
|
||||||
|
enable_service q-svc
|
||||||
|
enable_service rabbit
|
||||||
|
disable_service s-account
|
||||||
|
disable_service s-container
|
||||||
|
disable_service s-object
|
||||||
|
disable_service s-proxy
|
||||||
|
enable_service tempest
|
||||||
|
enable_service tls-proxy
|
||||||
|
|
||||||
|
# Vars
|
||||||
|
ADMIN_PASSWORD="secretadmin"
|
||||||
|
DATABASE_PASSWORD="secretdatabase"
|
||||||
|
ETCD_USE_RAMDISK="True"
|
||||||
|
#IMAGE_URLS+=",http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
|
||||||
|
KURYR_ENABLED_HANDLERS="vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer"
|
||||||
|
KURYR_EP_DRIVER_OCTAVIA_PROVIDER="amphora"
|
||||||
|
KURYR_K8S_API_PORT="6443"
|
||||||
|
KURYR_K8S_CLOUD_PROVIDER="False"
|
||||||
|
KURYR_K8S_CONTAINERIZED_DEPLOYMENT="True"
|
||||||
|
KURYR_K8S_MULTI_WORKER_TESTS="True"
|
||||||
|
KURYR_SG_DRIVER="policy"
|
||||||
|
KURYR_SUBNET_DRIVER="namespace"
|
||||||
|
LOGFILE="/opt/stack/logs/devstacklog.txt"
|
||||||
|
LOG_COLOR="False"
|
||||||
|
OCTAVIA_AMP_IMAGE_FILE="/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2"
|
||||||
|
OCTAVIA_AMP_IMAGE_NAME="test-only-amphora-x64-haproxy-ubuntu-bionic"
|
||||||
|
OCTAVIA_AMP_IMAGE_SIZE="3"
|
||||||
|
RABBIT_PASSWORD="secretrabbit"
|
||||||
|
RECLONE="no"
|
||||||
|
SERVICE_PASSWORD="secretservice"
|
||||||
|
SERVICE_TOKEN="password"
|
||||||
|
TEMPEST_PLUGINS="/opt/stack/kuryr-tempest-plugin"
|
||||||
|
USE_PYTHON3="True"
|
||||||
|
|
||||||
|
LIBS_FROM_GIT=cinder,devstack,devstack-gate,devstack-plugin-container,glance,keystone,kuryr-kubernetes,kuryr-tempest-plugin,neutron,nova,octavia,placement,python-octaviaclient,requirements,swift,tempest
|
||||||
|
|
||||||
|
# enabled plugins
|
||||||
|
enable_plugin devstack-plugin-container https://opendev.org/openstack/devstack-plugin-container
|
||||||
|
#enable_plugin kuryr-kubernetes https://opendev.org/openstack/kuryr-kubernetes
|
||||||
|
enable_plugin kuryr-kubernetes https://github.com/gryf/kuryr-kubernetes kubeadm-multinode
|
||||||
|
enable_plugin kuryr-tempest-plugin https://opendev.org/openstack/kuryr-tempest-plugin
|
||||||
|
enable_plugin neutron https://opendev.org/openstack/neutron
|
||||||
|
enable_plugin octavia https://opendev.org/openstack/octavia
|
||||||
|
runcmd:
|
||||||
|
- [su, -, ubuntu, -c, "git clone https://github.com/gryf/vmstrap"]
|
||||||
|
- [su, -, ubuntu, -c, "vmstrap/bootstrap.sh"]
|
||||||
|
- [su, -, ubuntu, -c, "echo 'export HOST_IP=192.168.10.10' >> .bashrc"]
|
||||||
|
- [su, -, ubuntu, -c, "cp /tmp/local.conf /home/ubuntu/devstack/"]
|
||||||
|
debug:
|
||||||
|
verbose: true
|
||||||
|
boxpy_data:
|
||||||
|
key: vm
|
||||||
|
cpus: 4
|
||||||
|
memory: 16GB
|
||||||
|
disk_size: 50GB
|
||||||
|
advanced:
|
||||||
|
nic2: intnet
|
||||||
135
examples/kuryr_multinode_worker.yaml
Normal file
135
examples/kuryr_multinode_worker.yaml
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
#cloud-config
|
||||||
|
packages:
|
||||||
|
- ccze
|
||||||
|
- exuberant-ctags
|
||||||
|
- flake8
|
||||||
|
- git-review
|
||||||
|
- htop
|
||||||
|
- ipython3
|
||||||
|
- jq
|
||||||
|
- mc
|
||||||
|
- python-apsw
|
||||||
|
- python3-flake8
|
||||||
|
- python3-jedi
|
||||||
|
- python3-pip
|
||||||
|
- rlwrap
|
||||||
|
- silversearcher-ag
|
||||||
|
- tmate
|
||||||
|
- tmux
|
||||||
|
- vim-nox
|
||||||
|
write_files:
|
||||||
|
- path: /etc/netplan/80-second.yaml
|
||||||
|
permissions: '0644'
|
||||||
|
content: |
|
||||||
|
network:
|
||||||
|
version: 2
|
||||||
|
ethernets:
|
||||||
|
enp0s8:
|
||||||
|
dhcp4: false
|
||||||
|
match:
|
||||||
|
name: enp0s8
|
||||||
|
addresses:
|
||||||
|
- 192.168.10.11/24
|
||||||
|
- path: /tmp/local.conf
|
||||||
|
permissions: '0644'
|
||||||
|
owner: ubuntu:ubuntu
|
||||||
|
content: |
|
||||||
|
[[local|localrc]]
|
||||||
|
disable_all_services
|
||||||
|
|
||||||
|
# temporary testing stuff
|
||||||
|
|
||||||
|
# crio:
|
||||||
|
#CONTAINER_ENGINE=crio
|
||||||
|
#CRIO_VERSION="1.20.2"
|
||||||
|
|
||||||
|
# kubeadm
|
||||||
|
#K8S_VERSION=1.20.2-00
|
||||||
|
#enable_service k8s-master
|
||||||
|
#enable_service k8s-node
|
||||||
|
#enable_service container
|
||||||
|
|
||||||
|
disable_service tls-proxy
|
||||||
|
|
||||||
|
# Cinder
|
||||||
|
disable_service c-bak
|
||||||
|
disable_service c-vol
|
||||||
|
|
||||||
|
# Dstat (started to fail recently)
|
||||||
|
disable_service dstat
|
||||||
|
|
||||||
|
# Horizon
|
||||||
|
disable_service horizon
|
||||||
|
|
||||||
|
# Kubernetes
|
||||||
|
# ==========
|
||||||
|
#
|
||||||
|
# Kubernetes is run from the hyperkube docker image
|
||||||
|
# If you already have a Kubernetes deployment, you can use it instead and omit
|
||||||
|
# enabling the Kubernetes service (except Kubelet, which must be run by
|
||||||
|
# devstack so that it uses our development CNI driver.
|
||||||
|
#
|
||||||
|
# The default is, again, for devstack to run the Kubernetes services:
|
||||||
|
enable_service kubernetes-worker
|
||||||
|
|
||||||
|
# kuryr
|
||||||
|
enable_service kuryr-daemon
|
||||||
|
disable_service kuryr-kubernetes
|
||||||
|
|
||||||
|
enable_service n-cpu
|
||||||
|
|
||||||
|
# Placement API
|
||||||
|
enable_service placement-client
|
||||||
|
|
||||||
|
# Neutron services
|
||||||
|
enable_service q-agt
|
||||||
|
disable_service tempest
|
||||||
|
disable_service tls-proxy
|
||||||
|
|
||||||
|
# Vars
|
||||||
|
ADMIN_PASSWORD="secretadmin"
|
||||||
|
DATABASE_HOST="192.168.10.10"
|
||||||
|
DATABASE_PASSWORD="secretdatabase"
|
||||||
|
GLANCE_HOSTPORT="192.168.10.10:9292"
|
||||||
|
IPV4_ADDRS_SAFE_TO_USE="10.1.0.0/20"
|
||||||
|
KURYR_ENABLED_HANDLERS="vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer"
|
||||||
|
KURYR_FORCE_IMAGE_BUILD="True"
|
||||||
|
KURYR_EP_DRIVER_OCTAVIA_PROVIDER="amphora"
|
||||||
|
KURYR_K8S_API_PORT="6443"
|
||||||
|
KURYR_K8S_CLOUD_PROVIDER="False"
|
||||||
|
KURYR_K8S_CONTAINERIZED_DEPLOYMENT="True"
|
||||||
|
KURYR_SG_DRIVER="policy"
|
||||||
|
KURYR_SUBNET_DRIVER="namespace"
|
||||||
|
LOGFILE="/opt/stack/logs/devstacklog.txt"
|
||||||
|
LOG_COLOR="False"
|
||||||
|
RABBIT_HOST="192.168.10.10"
|
||||||
|
RABBIT_PASSWORD="secretrabbit"
|
||||||
|
RECLONE="no"
|
||||||
|
SERVICE_HOST="192.168.10.10"
|
||||||
|
SERVICE_PASSWORD="secretservice"
|
||||||
|
SERVICE_TOKEN="password"
|
||||||
|
TEMPEST_PLUGINS="/opt/stack/kuryr-tempest-plugin"
|
||||||
|
USE_PYTHON3="True"
|
||||||
|
|
||||||
|
LIBS_FROM_GIT=cinder,devstack,devstack-gate,devstack-plugin-container,glance,keystone,kuryr-kubernetes,kuryr-tempest-plugin,neutron,nova,octavia,placement,python-octaviaclient,requirements,swift,tempest
|
||||||
|
|
||||||
|
# enabled plugins
|
||||||
|
enable_plugin devstack-plugin-container https://opendev.org/openstack/devstack-plugin-container
|
||||||
|
#enable_plugin kuryr-kubernetes https://opendev.org/openstack/kuryr-kubernetes
|
||||||
|
enable_plugin kuryr-kubernetes https://github.com/gryf/kuryr-kubernetes kubeadm-multinode
|
||||||
|
enable_plugin kuryr-tempest-plugin https://opendev.org/openstack/kuryr-tempest-plugin
|
||||||
|
enable_plugin neutron https://opendev.org/openstack/neutron
|
||||||
|
enable_plugin octavia https://opendev.org/openstack/octavia
|
||||||
|
runcmd:
|
||||||
|
- [su, -, ubuntu, -c, "git clone https://github.com/gryf/vmstrap"]
|
||||||
|
- [su, -, ubuntu, -c, "vmstrap/bootstrap.sh"]
|
||||||
|
- [su, -, ubuntu, -c, "echo 'export HOST_IP=192.168.10.11' >> .bashrc"]
|
||||||
|
- [su, -, ubuntu, -c, "cp /tmp/local.conf /home/ubuntu/devstack/"]
|
||||||
|
boxpy_data:
|
||||||
|
key: vm
|
||||||
|
cpus: 4
|
||||||
|
memory: 16GB
|
||||||
|
disk_size: 50GB
|
||||||
|
advanced:
|
||||||
|
nic2: intnet
|
||||||
|
port: 2223
|
||||||
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
pyyaml>=5.4.1
|
||||||
Reference in New Issue
Block a user