Skip to content

Commit

Permalink
Merge pull request #94 from isard-vdi/release/1.1.0-rc1
Browse files Browse the repository at this point in the history
Release 1.1.0 rc1
  • Loading branch information
NefixEstrada committed Feb 3, 2019
2 parents 3c735f9 + d17f2ab commit 0bfcd32
Show file tree
Hide file tree
Showing 117 changed files with 3,388 additions and 1,902 deletions.
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
TAG=1.0
TAG_DEVEL=1.1
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,5 @@ csv/

#Wizard disable
install/.wizard

known_hosts
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

All notable changes to this project will be documented in this file.

## [1.1.0-rc1] - 2019-02-03

This is the first release candidate for the 1.1.0 version. The changelog is going to be updated after the release (approximately in a week [2019-02-10]). Check the [pull request](https://github.com/isard-vdi/isard/pull/94) for more information.

## [1.0.1] - 2018-12-27

### Fixed
Expand Down
29 changes: 29 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Contributing

## New feature

1. Fork the `isard-vdi/isard` repository
2. Clone **your** Isard fork and move (if you already have your fork clonned, make sure you have the latest changes: `git fetch upstream`)
3. Add the upstream remote: `git remote add upstream https://github.com/isard-vdi/isard`

1. Initialize Git Flow: `git flow init`
2. Create the feature: `git flow feature start <feature name>`
3. Work and commit it
4. Publish the feature branch: `git flow feature publish <feature name>`
5. Create a pull request from `your username/isard` `feature/<feature name>` to `isard-vdi/isard` `develop` branch



## New release

1. Clone the `isard-vdi/isard` repository
2. Create the release: `git flow release start X.X.X`
3. Publish the release branch: `git flow publish release X.X.X`
4. Create a pull request from the `isard-vdi/isard` `release/X.X.X` to `isard-vdi/isard` `master`
5. Update the Changelog, the `docker-compose.yml` file...
6. Merge the release to master
7. Create a new release to GitHub using as description the Changelog for the version
8. Pull the changes to the local `isard-vdi/isard` clone
9. Change to the new version tag: `git checkout X.X.X`
10. Build the Docker images and push them to Docker Hub

11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Isard**VDI**

<img align="right" src="src/webapp/static/img/isard.png" alt="IsardVDI Logo" width="150px;">

[![](https://img.shields.io/github/release/isard-vdi/isard.svg)](https://github.com/isard-vdi/isard/releases) [![](https://img.shields.io/badge/docker--compose-ready-blue.svg)](https://github.com/isard-vdi/isard/blob/master/docker-compose.yml) [![](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://isardvdi.readthedocs.io/en/latest/) [![](https://img.shields.io/badge/license-AGPL%20v3.0-brightgreen.svg)](https://github.com/isard-vdi/isard/blob/master/LICENSE)

Open Source KVM Virtual Desktops based on KVM Linux and dockers.

- Engine that monitors hypervisors and domains (desktops)
Expand Down Expand Up @@ -47,7 +51,7 @@ It will create a template from that desktop as it was now. You can create as man

In Updates menu you will have access to different resources you can download from our IsardVDI updates server.

![Main admin screen](docs/images/main.png?raw=true "Main admin")
![Main admin screen](https://isardvdi.readthedocs.io/en/latest/images/main.png)

## Documentation

Expand All @@ -67,3 +71,8 @@ Go to [IsardVDI Project website](http://www.isardvdi.com/)

### Support/Contact
Please send us an email to info@isardvdi.com if you have any questions or fill in an issue.

### Social Networks
Mastodon: [@isard@fosstodon.org](https://fosstodon.org/@isard)
Twitter: [@isard_vdi](https://twitter.com/isard_vdi)

51 changes: 51 additions & 0 deletions build-docker-images.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash

# Check that the version number was provided
if [ -z "$1" ]; then
echo "You need to specify a IsardVDI version! e.g. '1.1.0'"
exit 1
fi

if [ $1 = "-f" ]; then
force=1
if [ -z "$2" ]; then
echo "You need to specify a IsardVDI version with -f option! e.g. '1.1.0'"
exit 1
fi
version=$2
else
force=0
version=$1
fi

MAJOR=${version:0:1}
MINOR=${version:0:3}
PATCH=$version

# If a command fails, the whole script is going to stop
set -e

# Checkout to the specified version tag
if [ force = 1 ]; then
git checkout $1 > /dev/null
fi

# Array containing all the images to build
images=(
#alpine-pandas
#grafana
nginx
hypervisor
app
)

# Build all the images and tag them correctly
for image in "${images[@]}"; do
echo -e "\n\n\n"
echo "Building $image"
echo -e "\n\n\n"
cmd="docker build -f dockers/$image/Dockerfile -t isard/$image:latest -t isard/$image:$MAJOR -t isard/$image:$MINOR -t isard/$image:$PATCH ."
echo $cmd
$cmd
done

160 changes: 68 additions & 92 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,97 +1,73 @@
version: '2'
version: "3.5"
services:
# Will take long time to build, better get dockerhub already build
# isard-alpine-pandas:
# image: isard/alpine-pandas:1.0.0
# build:
# context: .
# dockerfile: dockers/alpine-pandas/Dockerfile
isard-database:
restart: always
image: rethinkdb
hostname: isard-database
volumes:
- "/opt/isard/database:/data"
expose:
- "28015"
networks:
main:
aliases:
- rethinkdb
isard-database:
container_name: isard-database
volumes:
- "/opt/isard/database:/data"
- "/etc/localtime:/etc/localtime:ro"
networks:
- isard_network
image: rethinkdb
restart: unless-stopped
logging:
driver: none

isard-nginx:
restart: always
image: isard/nginx:1.0.0
build:
context: .
dockerfile: dockers/nginx/Dockerfile
ports:
- "80:80"
- "443:443"
volumes:
- "/opt/isard/certs/default:/etc/nginx/external"
- "/opt/isard/logs/nginx:/var/log/nginx"
hostname: isard-nginx
links:
- "isard-app"
networks:
main:
aliases:
- isard-nginx

isard-hypervisor:
restart: always
image: isard/hypervisor:1.0.0
build:
context: .
dockerfile: dockers/hypervisor/Dockerfile
hostname: isard-hypervisor
ports:
- "5900-5949:5900-5949"
- "55900-55949:55900-55949"
expose:
- "22"
privileged: true
volumes:
- "sshkeys:/root/.ssh"
- "/opt/isard:/isard"
- "/opt/isard/certs/default:/etc/pki/libvirt-spice"
networks:
main:
aliases:
- isard-hypervisor
command: /usr/bin/supervisord -c /etc/supervisord.conf
isard-nginx:
container_name: isard-nginx
volumes:
- "/opt/isard/certs/default:/etc/nginx/external"
- "/opt/isard/logs/nginx:/var/log/nginx"
- "/etc/localtime:/etc/localtime:ro"
ports:
- "80:80"
- "443:443"
networks:
- isard_network
image: isard/nginx:1.1.0-rc1
restart: unless-stopped
depends_on:
- isard-app

isard-hypervisor:
container_name: isard-hypervisor
volumes:
- "sshkeys:/root/.ssh"
- "/opt/isard:/isard"
- "/opt/isard/certs/default:/etc/pki/libvirt-spice"
- "/etc/localtime:/etc/localtime:ro"
ports:
- "5900-5949:5900-5949"
- "55900-55949:55900-55949"
networks:
- isard_network
image: isard/hypervisor:1.1.0-rc1
privileged: true
restart: unless-stopped

isard-app:
restart: always
image: isard/app:1.0.0
build:
context: .
dockerfile: dockers/app/Dockerfile
links:
- "isard-database"
- "isard-hypervisor"
hostname: isard-app
volumes:
- "sshkeys:/root/.ssh"
- "/opt/isard/certs:/certs"
- "/opt/isard/logs:/isard/logs"
- "/opt/isard/database/wizard:/isard/install/wizard"
- "/opt/isard/backups:/isard/backups"
- "/opt/isard/uploads:/isard/uploads"
expose:
- "5000"
environment:
PYTHONUNBUFFERED: 0
extra_hosts:
- "isard-engine:127.0.0.1"
networks:
main:
aliases:
- isard-app
command: /usr/bin/supervisord -c /etc/supervisord.conf
isard-app:
container_name: isard-app
volumes:
- "sshkeys:/root/.ssh"
- "/opt/isard/certs:/certs"
- "/opt/isard/logs:/isard/logs"
- "/opt/isard/database/wizard:/isard/install/wizard"
- "/opt/isard/backups:/isard/backups"
- "/opt/isard/uploads:/isard/uploads"
- "/etc/localtime:/etc/localtime:ro"
extra_hosts:
- "isard-engine:127.0.0.1"
networks:
- isard_network
image: isard/app:1.1.0-rc1
restart: unless-stopped
depends_on:
- isard-database
- isard-hypervisor

networks:
main:
volumes:
sshkeys:
sshkeys:

networks:
isard_network:
external: false
name: isard_network
3 changes: 1 addition & 2 deletions dockers/alpine-pandas/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
FROM alpine:latest
FROM alpine:3.8
MAINTAINER isard <info@isard.com>

RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk update
RUN apk add --no-cache python3 && \
python3 -m ensurepip && \
Expand Down
27 changes: 12 additions & 15 deletions dockers/app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,30 +1,27 @@
FROM isard/alpine-pandas:1.0.0
FROM isard/alpine-pandas:latest
MAINTAINER isard <info@isard.com>

RUN apk add --no-cache git yarn py3-libvirt py3-paramiko py3-lxml py3-xmltodict py3-pexpect py3-openssl py3-bcrypt py3-gevent py3-flask py3-flask-login py3-netaddr py3-requests curl

RUN mkdir /isard
ADD ./src /isard
RUN apk add --no-cache bash yarn py3-libvirt py3-paramiko py3-lxml py3-pexpect py3-openssl py3-bcrypt py3-gevent py3-flask py3-netaddr py3-requests curl openssh-client

COPY dockers/app/requirements.pip3 /requirements.pip3
RUN pip3 install --no-cache-dir -r requirements.pip3

RUN mv /isard/isard.conf.docker /isard/isard.conf

RUN mkdir -p /root/.ssh
RUN echo "Host isard-hypervisor \
StrictHostKeyChecking no" >/root/.ssh/config
RUN chmod 600 /root/.ssh/config

RUN apk add --update bash
RUN apk add yarn
RUN apk add openssh-client

RUN apk add supervisor
RUN apk add --no-cache supervisor
RUN mkdir -p /var/log/supervisor
COPY dockers/app/supervisord.conf /etc/supervisord.conf

EXPOSE 5000

COPY dockers/app/certs.sh /
CMD /usr/bin/supervisord -c /etc/supervisord.conf
#CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
#CMD ["sh", "/init.sh"]
COPY dockers/app/add-hypervisor.sh /

RUN mkdir /isard
ADD ./src /isard
RUN mv /isard/isard.conf.docker /isard/isard.conf

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
Loading

0 comments on commit 0bfcd32

Please sign in to comment.