tikhonow / russky-app-2022

Some application to demonstrate DevOps work

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

russky-app-2022

Some application to demonstrate DevOps work

  • Run tests
    make test
  • Run linters & prettify
    make plint
  • Run server
    make run

Cheatsheets

Docker

Login

Instruction (get token by link):

docker login --username oauth --password <token> cr.yandex

Build

docker build -t cr.yandex/<registry id>/russky-app-2022 .
docker push cr.yandex/<registry id>/russky-app-2022

Run on VM

  • Go to VM vis ssh
    ssh <vm>
  • Install docker
    sudo apt install docker.io
  • Configure docker to work without sudo (instruction)
    sudo usermod -aG docker $USER
  • Login into docker on VM
    docker login --username oauth --password <token> cr.yandex
  • Run docker image with auto-restart
    # simple run
    docker run -it -p 8080:8080 --pull always cr.yandex/crphntksaqh2dho7ale3/russky-app-2022
    # daemonized run with auto-restart
    docker run -it -p 8080:8080 --pull always -d --restart unless-stopped cr.yandex/crphntksaqh2dho7ale3/russky-app-2022

Start ELK

sudo sysctl -w vms.tf.max_map_count=262144

or https://stackoverflow.com/questions/42889241/how-to-increase-vm-max-map-count

Prepare CI/CD

By deploy instruction (login instruction - link)

  1. List service accounts
yc iam service-account --folder-id <folder_id> list
  1. Generate service-account key
yc iam key create --folder-id  <folder_id> --service-account-name <sa name> --output key.json
  1. Put secrets in GitHub:

    • CONTAINER_REGISTRY_ID == <registry_id>
    • CONTAINER_REGISTRY_TOKEN = <получить по ссылке >
    • YC_SA_KEY_JSON with content of key.json
    • YC_INSTANCE_GROUP_ID = <instance_group_id>

TODO

  • ELK alerts

About

Some application to demonstrate DevOps work

License:MIT License


Languages

Language:Python 84.6%Language:HTML 6.0%Language:Makefile 3.7%Language:CSS 2.7%Language:Dockerfile 1.8%Language:Shell 1.3%