An open API service indexing awesome lists of open source software.

https://github.com/victorock/coprhd-docker


https://github.com/victorock/coprhd-docker

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Description

The goal of this repository is to:

- Create CoprHDDevkit as docker image with all dependencies.

- Make possible the build of CoprHD-Controller services inside a container.

- Create CoprHD-Controller as docker image(s).

- Make the deployment of CoprHD-Controller easy.

## Architecture

Systemd is used inside of containers to start/stop All-In-One CoprHD-Controller.

Usage of docker patterns and best practices.

## Requirements

- Configuration Environment Variables : IP, NETMASK, GATEWAY, VIP, HOSTNAME, COUNT

### Containers

- victorock/coprhd-base

- victorock/coprhd-controller

- victorock/coprhd-docker-volume-plugin

### Howto

1- Create CoprHD-Base as Datastore to store persistent Data.
*Thankfully to docker layers, the usage of disk space is optimized*

```
docker create \
-v /data \
-h coprhd-base \
-n coprhd-base \
-d coprhd-base:latest
```
*Replace latest by any valable CoprHD version*

2- Launch CoprHD Controller with proper environment variables and use volumes from coprhd-datastore to store persistent Data.
*Thankfully to docker layers, the usage of disk space is optimized*

```
docker run -it \
--net=host \
--privileged \
--volumes-from coprhd-base \
-h coprhd-controller1 \
-n coprhd-controller1 \
-e IP= \
-e NETMASK= \
-e GATEWAY= \
-e VIP= \
-e HOSTNAME=coprhd-controller1 \
-e COUNT= \
-d coprhd-controller:latest
```
*Replace latest by any valable CoprHD version*

3- Trigger /scripts/configure to setup network and start CoprHD services.

```
docker exec -it \
coprhd-controller1 \
/scripts/configure
```

4- Launch CoprHD Docker Volume Plugin

```
docker run -it \
--net=host \
--privileged \
--volumes-from coprhd-base \
-h coprhd-docker-volume-plugin \
-n coprhd-docker-volume-plugin \
-e COPRHD= \
-e USERNAME= \
-e PASSWORD= \
-d coprhd-docker-volume-plugin:latest
```
*Replace latest by any valable CoprHD version*

5- Configure your Docker host to user CoprHD as Volume Plugin

```
mkdir -p /etc/docker/plugins
cat > /etc/docker/plugins/coprhd.json << EOF
{
"Name": "coprhd",
"Addr": "http://localhost:8000"
}
EOF
```

### Content:

- base/ Contains the Dockerfile to create CoprHDDevKit baseline as coprhd:base docker image with all dependencies to build CoprHD-Controller.

- controller/ Contains the Dockerfile and scripts to build/install CoprHD as coprhd:controller docker image.

- docker-volume-plugin/ Containers the Dockerfile of experimental Docker Volume Plugin APIs for CoprHD.

# Release Notes

- 0.1: Initial Version
- 0.2: Download configure scripts instead of entire repository.
- 0.2: Normalization with : Build -> Install -> Configure (User Exec)

# Versioning Howto

- Update VERSION variable in base/Dockerfile

- Update coprhd-base: in controller/Dockerfile

- Update coprhd-base: in docker-volume-plugin/Dockerfile

# TODO:

- Use Docker network Overlay instead of --net=host

- Decouple CoprHD-Controller services as different containers that can scale separately.

- Make possible the deployment of CoprHD-Controller services through container orchestration:

1- Docker Compose

2- Cloud Foundry

# Licensing

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

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.

# Support

Please file bugs and issues at the Github issues page. For more general discussions you can contact the Dell EMC Code team.
The code and documentation are released with no warranties or SLAs and are intended to be supported through a community driven process.