1
0
mirror of https://github.com/gryf/boxpy.git synced 2026-01-02 00:02:38 +01:00

Added examples.

This commit is contained in:
2021-05-10 20:07:52 +02:00
parent a770c0bbae
commit e84b967d8d
4 changed files with 329 additions and 3 deletions

View File

@@ -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
------- -------

View 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

View 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
View File

@@ -0,0 +1 @@
pyyaml>=5.4.1