Git Product home page Git Product logo

vagrantenv's People

Contributors

dependabot[bot] avatar theodore86 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

dverbeeck

vagrantenv's Issues

Integration of automated (ruby or python) tests

Currently the project is only supports static code analysis / linting through the tox/pre-commit combo, unit or integration testing of the project libraries is a pending task but some parts of the project (e.g. ansible filter plugins) are unit tested (e.g pytest framework).

Purpose of this task is to integrate pytest testing framework into tox.ini. Will not be part of the pre-commit framework (limited to linting activities). In the future a nice feature will be to abstract the ruby or python testing activities through an common tool which will be triggered again through the tox automation project.

Migrate circleCI to Github Workflows

Migrate CI to Github Actions.

Based on GH Dockerfile docs i need to rewrite the Dockerfile
to set root as default user and install all the packages inside the root workspace, moreover i WORKDIR is not working as expected with the GITHUB_WORKSPACE as a result:

  • keep circleCI for CI purposes
  • GH for all other activities

Introduce automated taging and releasing of software

Script to tag and release the software starting from the v2.0.4 version (semantic).

Example:

tox -e release -- -v v2.0.5

The [testenv:release] environment will execute an python or bash script to release the software with an new release tag.

Remove python2.7 support and update ansible to the latest version

Need to clean python2.7, support only for python3+

  • README.md
  • ansible provisioner
    • vagrant.yaml
    • system packages
  • Project documentation
  • Update base box to Ubuntu-22.04

Currently python2.7 is being used for provisioning purposes, development or testing on the sandbox can be made using python3

In order to proceed with this issue the installation of the ansible will be made by:

  • a separate shell provisioner (bootstrap.sh) will bring up the ansible cm tool.
    • update system
    • install python3-pip python3-dev, python3-setuptools and ansible (through requirements.txt)
  • local ansible provisioner will be used only for the actual ansible playbook execution.
  • Update documentation and software releasing

Update vagrant to version 2.2.19

Purpose of this task is to migrate to the latest vagrant version: 2.2.19

  • Update tools/linux
  • Update tools/windows/
  • Update vagrant ansible provisioner

Virtualbox and vagrant provision script

Create an provisioning bash script under tools/linux to install the virtualbox and vagrant packages - OS-agnostic.

Script can be verified and tested in the respective linux containers.

References:

How to install pacapt:

$ sudo wget -O /usr/local/bin/pacapt https://github.com/icy/pacapt/raw/ng/pacapt
$ sudo chmod 755 /usr/local/bin/pacapt
$ sudo ln -sv /usr/local/bin/pacapt /usr/local/bin/pacman || true

Kyml ansible role

A nice kubernetes manifest manipulation tool Kyml, ansible role to automate the installation

Change tags to skip_tags for ansible provisioner

Purpose of this issue is to change the :tags: option in vagrant.yaml to :skip_tags:, better to exclude rather than include tasks per tag, seems that the existing list of tools is getting bigger, readability issue in vagrant,yaml.

Ansible Helm provisioner

Ansible role/task file for helm provisioning, required for chart deployments along side with kubectl

Wrap linting inside docker container

Execute project linters using the Dockerfile for CI. Until now only tox -e linters can be performed which requires tox to be installed on the host or guest machine, using the Dockerfile we can achieve better portability.

  • Create an wrapper for the following command:
docker run --rm -v $PWD:/app \
  -e PRE_COMMIT_HOME:/app/.cache
  -w /app theodore86:vagrantenv-ci:0.0.4 tox

Bind mounts sets the permissions of the user host inside the container, in such case we need to adjust the permissions before and after the mounting of project inside the container.

Re-organize ansible tasks to roles

Purpose of this task is to convert the existing ansible provisioner tasks to ansible roles, re-organize the existing directory layout, create roles instead of variable and task files, better scalability in the future whenever an new provisioning tool is needed to be added.

References

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.