sysadmin.su
279 subscribers
296 photos
30 videos
230 files
2.15K links
Админам/sre/devops’ам будет интересно!
Download Telegram
Forwarded from Sysadmin Tools 🇺🇦
Давеча попросил человека перенести полностью репы с одной VCS в другую, к примеру с github в gitlab. Сейчас смотрю, а там не перенос, а просто коммит без веток и всего прочего. Думаю сделаю пост:
Как сделать полный перенос репозитория на другой сервер #vcs #git #github #gitlab #bitbucket

# Клонируем исходный репозиторий без рабочего каталога (--bare)
git clone --bare https://github.com/exampleuser/old-repository.git

cd old-repository.git
# Делаем mirror-push(будут скопированы все ветки и тэги) в новый репозиторий
git push --mirror https://github.com/exampleuser/new-repository.git

cd ..
# Удаляем папку с репозиторием
rm -rf old-repository.git
Forwarded from Админим с Буквой (bykva)
Собираем helm-чарт в gitlab-ci и пушим в docker registry

Используем экспериментальную фичу с oci-registry в которую научился хелм. Это значит что мы можем чарты теперь просто пушить рядом с контейнерами докера с таким же именованием и тегированием.

deploy_helm:
stage: deploy
image: docker:18-dind
services:
- docker:18-dind
environment: { name: production }
tags: [docker]
only:
refs: [master]
script:
- export CHART_VERSION=$(grep version Chart.yaml | awk '{print $2}')
- chmod 400 $DOCKERCONFIG
- mkdir registry
- alias helm='docker run -v $(pwd)/regisry:/root/.cache/helm/registry -v $(pwd):/apps -v ${DOCKERCONFIG}:/root/.docker/config.json -e DOCKER_CONFIG="/root/.docker" -e HELM_REGISTRY_CONFIG="/root/.docker/config.json" -e HELM_EXPERIMENTAL_OCI=1 alpine/helm'
- helm chart save . registry.company.com/helm/charts/debezium:${CHART_VERSION}
- helm chart push registry.company.com/helm/charts/debezium:${CHART_VERSION}

Структура репозитория - файлы чарта и .gitlab-ci.yml. После запуска деплоя создается воркер - докер с поддержкой docker-in-docker. Мы качаем публичный контейнер хелма на альпине. Все пробросы нужны для того чтобы хелм внутри докера умел ходить в регистри и сохранять промежуточный кэш для докер регистри. Помещаю его в "алиас" команды хелма для того чтобы логически отделить запуск хелма и запуск докера. последние 2 строки - сохранить чарт в локальный кэш и подготовить для пуша в регистри и собственно запушить. Чтобы всё это работало нужно подготовить docker config.json с готовыми параметрами пользователя для доступа к докер регистри и сохранить его в переменные джобы как файл.

#helm
#gitlab
#docker
Forwarded from Админим с Буквой (bykva)
В догонку к CI о сборке чарта, CI для деплоя это чарта

в этом деплое помимо докер конфига требуется еще сделать кубконфиг, в который поместить токен админа неймспейса (1 ci = 1 app = 1 admin = 1 ns). Здесь часть сниппета, остальное что пропущено абсолютно симметрично предыдущему посту.

```
  script:
- chmod 400 $DOCKERCONFIG
- chmod 400 $KUBECONFIG
- mkdir registry
- alias helm='docker run -v ${KUBECONFIG}:/root/.kube/config -v $(pwd)/regisry:/root/.cache/helm/registry -v $(pwd):/apps -v ${DOCKERCONFIG}:/root/.docker/config.json -e DOCKER_CONFIG="/root/.docker" -e HELM_REGISTRY_CONFIG="/root/.docker/config.json" -e HELM_EXPERIMENTAL_OCI=1 alpine/helm'
- helm chart pull company.com/helm/charts/debezium:$chart_version
- helm chart export rcompany.com/helm/charts/debezium:$chart_version
- helm upgrade --install -f .......
```

#helm
#gitlab
#kubernetes