Как создать автоматически масштабируемый gitlab runner со статическим публичным адресом в облаке Google - PullRequest
0 голосов
/ 10 июля 2019

У меня запущена версия gitlab CE в Google Cloud Platform.

Цель: я хочу заранее знать, какой IP будет использовать бегун, чтобы я мог внести белый список в брандмауэр серверов, на которых я хочу развернуть.

Предлагаемое решение: Я решил, что шлюз Google NAT должен решить эту проблему.Пока я не могу понять, как это сделать.Я создал NAT Я установил NAT IP на ручной (для получения статического IP)

Не работает: я попытался запустить тестовое задание с dig +short myip.opendns.com @resolver1.opendns.com, полагая, что это скажет мне, какой публичный IP-адрес он использует, ипросто использует публичный адрес текущего участника.

Дополнительные попытки: я попытался добавить google-use-internal-ip-only=true в конфигурацию.Это не позволило экземплярам получить общедоступный IP-адрес, однако также помешало бегуну Gitlab общаться с бегунами, которых он запускал.Я пытался читать Google Cloud Docs.Я не понимаю, как я должен это настроить.

[[runners]]
  name = "Local runner using docker-machine CoreOS instances"
  url = "https://XXXXXXX.com/ci"
  token = "XXXXXXXX"
  executor = "docker+machine"
  environment = ["DOCKER_DRIVER=overlay"]
  [runners.docker]
    tls_verify = false
    image = "docker:latest"
    privileged = true
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache", "/mnt/cache" ]
    shm_size = 0
  [runners.cache]
    Type = "s3"
    ServerAddress = "XXXXXXX.com:9005"
    AccessKey = "XXXXXX"
    SecretKey = "XXXXXXXX"
    BucketName = "runner-cache"
    Shared = true
  [runners.machine]
    IdleCount = 1
    IdleTime = 600
    MachineDriver = "google"
    MachineName = "auto-scale-%s"
    MachineOptions = ["google-project=gitlab-ci-jobs", "google-zone=us-east1-b", "google-machine-image=https://www.googleapis.com/compute/v1/projects/coreos-cloud/global/images/family/coreos-stable", "google-machine-type=n1-standard-4", "google-disk-size=200", "google-disk-type=pd-ssd", "engine-registry-mirror=https://git.bitbean.com:6000", "google-scopes=https://www.googleapis.com/auth/devstorage.read_write,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write"]
    OffPeakTimezone = ""
    OffPeakIdleCount = 0
    OffPeakIdleTime = 0

Я также открыт для других решений.Как другие организации разрешают своим бегунам CI / CD получать доступ к своим собственным серверам с целью развертывания на них новых артефактов?

...