Gitlab Installation WSL2 + Docker + Kubernetes + Helm 3

Hits: 842

helm create gitlab gitlab/gitlab
kubectl create namespace gitlab

gitlab/values.yaml

## GitLab Edition
### ref: https://about.gitlab.com/products/
### - CE - Community Edition
### - EE - Enterprise Edition - (requires license issued by GitLab Inc)
###
edition: CE
#
### GitLab CE image
### ref: https://hub.docker.com/r/gitlab/gitlab-ce/tags/
###
ceImage: gitlab/gitlab-ce:9.1.2-ce.0

certmanager-issuer:
  email: me@myserver.com

## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
## ref: https://docs.gitlab.com/ce/install/requirements.html#storage
##
persistence:
  ## This volume persists generated configuration files, keys, and certs.
  ##
  gitlabEtc:
    enabled: true
    size: 1Gi
    ## If defined, volume.beta.kubernetes.io/storage-class: <storageClass>
    ## Default: volume.alpha.kubernetes.io/storage-class: default
    ##
    # storageClass:
    accessMode: ReadWriteOnce
  ## This volume is used to store git data and other project files.
  ## ref: https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory
  ##
  gitlabData:
    enabled: true
    size: 10Gi
    ## If defined, volume.beta.kubernetes.io/storage-class: <storageClass>
    ## Default: volume.alpha.kubernetes.io/storage-class: default
    ##
    # storageClass:
    accessMode: ReadWriteOnce
  gitlabRegistry:
    enabled: true
    size: 10Gi
    ## If defined, volume.beta.kubernetes.io/storage-class: <storageClass>
    ## Default: volume.alpha.kubernetes.io/storage-class: default
    ##
    # storageClass:

  postgresql:
    persistence:
      # storageClass:
      size: 10Gi
  ## Configuration values for the Redis dependency.
  ## ref: https://github.com/kubernetes/charts/blob/master/stable/redis/README.md
  ##
  redis:
    persistence:
      # storageClass:
      size: 10Gi


externalUrl: 'https://gitlab.local'

omnibusConfigRuby: |
  # This is example config of what you may already have in your omnibusConfigRuby object
  unicorn['worker_processes'] = 2;
  gitlab_rails['trusted_proxies'] = ["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"];

  registry_external_url 'https://containerregistry.local';

  # These are the settings needed to support proxied SSL
  nginx['listen_port'] = 80
  nginx['listen_https'] = false
  nginx['proxy_set_headers'] = {
    "X-Forwarded-Proto" => "https",
    "X-Forwarded-Ssl" => "on"
  }
  registry_nginx['listen_port'] = 80
  registry_nginx['listen_https'] = false
  registry_nginx['proxy_set_headers'] = {
    "X-Forwarded-Proto" => "https",
    "X-Forwarded-Ssl" => "on"
  }

ingress:
  enabled: true
  annotations:
   kubernetes.io/ingress.class: nginx
   # kubernetes.io/tls-acme: 'true' Annotation used for letsencrypt support

  hosts:
    - gitlab.local
    - containerregistry.local

    ## gitlab Ingress TLS configuration
    ## Secrets must be created in the namespace, and is not done for you in this chart

#    tls:
#      - secretName: gitlab-tls
#        hosts:
#          - gitlab.local
#          - containerregistry.local
helm install --namespace=gitlab gitlab -f values.yaml gitlab/gitlab

Create Docker Image with Tag from .tar file and push in Private Docker Registery

Hits: 1507

Create Docker Image from .tar file

$ docker load --input my-dockerized-app-0.0.1.tar

Create a tag.

Before tag creating, i will learn my source image/newly created docker image ID for the tag creating command..

 $ docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

we can find that via “docker image ls”, but put the grep command, because i want only the same name having images seen, what I as grep argument given.

$ docker image ls | grep my-docker
my-dockerized-app                        0.0.1       c0f32faf4320   1 minute ago      

And now i can create a new tag for local or for private docker registry

Option 1. Tag for Only Local Using

$ docker tag c0f32faf4320 my-dockerized-app:0.0.1

Option 2. Tag for Local and over Local/Open Registry

$ docker tag c0f32faf4320 docker.d8devs.com/apps/my-dockerized-app:0.0.1
$ docker push docker.d8devs.com/apps/my-dockerized-app:0.0.1

Example Usage:

in docker-compose.yml

version: '3'
services:
    frontend:
        image: my-dockerized-app:0.0.1
......
.....
....

for Kubernetes deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-deployment
  labels:
    app: app-test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: app-test
  template:
    metadata:
      labels:
        app: app-test
    spec:
      containers:
      - name: frontend
        image: my-dockerized-app:0.0.1 // or docker.d8devs.com/apps/my-dockerized-app:0.0.1 (dont forget use the imagePullSecrets for privat Registry)

SSH Connection without Password

Hits: 226

    ~ ssh-copy-id yoursshusername@yourservername.com
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/c/Users/USER/.ssh/id_ed25519.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
sshyoursshusername@yourservername.com's password: <<---HERE IS YOUR SSH PASSWORD QUESTION ONE TIME -->

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'yoursshusername@yourservername.com'"
and check to make sure that only the key(s) you wanted were added.
Continue reading “SSH Connection without Password”

ERROR: for db Cannot start service db:

Hits: 240

Error response from daemon: You cannot remove a running container 03bfa4d8781318d096d8bf91fbe5375c11912ce0f427e2059891cdad7ade25e0. Stop the container before attempting removal or force remove

ERROR: for db Cannot start service db: driver failed programming external connectivity on endpoint

Fix Method 1;

docker container ls
docker stop 

Fix Method 2;

docker rm $(docker ps -a -q)