INTO-CPS-Association / DTaaS

:factory: :left_right_arrow: :busts_in_silhouette: Digital Twin as a Service
https://into-cps-association.github.io/DTaaS/
Other
110 stars 55 forks source link

Gitlab integration into installation #892

Open prasadtalasila opened 3 weeks ago

prasadtalasila commented 3 weeks ago

The new development in react client is pushing towards integrating Gitlab CI/CD integration. Thus there is a need to integrate gitlab and gitlab runner into the standard installation setup. A suggested integration structure is

new-installation

Of the given figure, the gitlab and runner containers are to be put into one docker compose package. The rest of containers need to be put into another docker compose package. The task on putting rest of containers into one docker compose is already complete. Only the gitlab and runner integration is pending.

prasadtalasila commented 3 weeks ago

@aryanpingle this issue tracks your tasks. Please comment here if you require any clarification.

aryanpingle commented 3 weeks ago

gitlab.js currently uses the configuration in gitlab.yml, so I'm thinking we can just use the DTaaS/docker/.env file with a new compose.gitlab.yml file like so:

# docker run -d \
#   --hostname ${gitlabConfig.hostname} \
#   --env EXTERNAL_URL=${gitlabConfig.url} \
#   --publish ${gitlabConfig.port}:80 \
#   --name gitlab \
#   --restart always \
#   --volume ${gitlabConfig.homedir}/config:/etc/gitlab:Z \
#   --volume ${gitlabConfig.homedir}/logs:/var/log/gitlab:Z \
#   --volume ${gitlabConfig.homedir}/data:/var/opt/gitlab:Z \
#   --shm-size 256m \
#   gitlab/gitlab-ce:16.4.1-ce.0

version: '3'
services:
  gitlab:
    image: gitlab/gitlab-ce:16.4.1-ce.0
    hostname: ${SERVER_DNS}
    restart: always
    volumes:
      - ${VAGRANT_GITLAB_DIR}/config:/etc/gitlab:Z
      - ${VAGRANT_GITLAB_DIR}/logs:/var/log/gitlab:Z
      - ${VAGRANT_GITLAB_DIR}/data:/var/opt/gitlab:Z
    shm_size: "256m"
    ports:
      - "8969:80" # from gitlab.yml
    environment:
      - EXTERNAL_URL=${SERVER_DNS}/gitlab

gitlab.yml contains this:

homedir: "/home/vagrant/DTaaS/deploy/services/gitlab" #no spaces in the path

Should we be using ${DTAAS_DIR}/deploy/services/gitlab instead? If not, we can just declare it (and port 8969) as a variable in this .env file

aryanpingle commented 3 weeks ago

To clarify, compose.gitlab.yml is a temporary file to be used with docker-compose from the terminal, just until we create the local GitLab runner

prasadtalasila commented 3 weeks ago

@aryanpingle

Should we be using ${DTAAS_DIR}/deploy/services/gitlab instead? If not, we can just declare it (and port 8969) as a variable in this .env file?

Let us put the gitlab compose file in docker directory existing at top-level (not the deploy/docker directory). Please place the required gitlab config files into docker/gitlab directory.

prasadtalasila commented 2 weeks ago

@aryanpingle The installation figure needs a bit of correction. The updated figure is:

DTaaS-install