Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
e3904a3
init
SergeyLadutko May 24, 2020
8f4a239
test jenkins
SergeyLadutko May 25, 2020
0a167df
test jenkins
SergeyLadutko May 25, 2020
6771e2b
test ci
SergeyLadutko May 25, 2020
5eff7c5
test ci
SergeyLadutko May 25, 2020
3a716db
test ci
SergeyLadutko May 25, 2020
8a9744e
test ci
SergeyLadutko May 25, 2020
c4c6d6a
test ci
SergeyLadutko May 25, 2020
43051a7
test ci
SergeyLadutko May 25, 2020
f37ac35
test ci
SergeyLadutko May 25, 2020
3e7f007
test ci
SergeyLadutko May 25, 2020
fdb47de
test ci
SergeyLadutko May 25, 2020
6c51b3d
test ci
SergeyLadutko May 25, 2020
dd88722
test ci
SergeyLadutko May 25, 2020
1daf11d
test ci
SergeyLadutko May 25, 2020
72d8850
test ci
SergeyLadutko May 25, 2020
c66a226
test ci
SergeyLadutko May 25, 2020
bc3778a
test ci
SergeyLadutko May 25, 2020
8855832
test ci
SergeyLadutko May 25, 2020
4cccf53
test ci
SergeyLadutko May 25, 2020
5a01c5b
test ci
SergeyLadutko May 25, 2020
5515418
test ci
SergeyLadutko May 25, 2020
b0139e1
test ci
SergeyLadutko May 25, 2020
2e33c0b
test ci
SergeyLadutko May 25, 2020
fb0b504
test ci
SergeyLadutko May 25, 2020
66eaead
test ci
SergeyLadutko May 25, 2020
877af25
test ci
SergeyLadutko May 25, 2020
3b40f35
test ci
SergeyLadutko May 25, 2020
7d20207
test ci
SergeyLadutko May 25, 2020
956bf94
test ci
SergeyLadutko May 25, 2020
99fffed
test ci
SergeyLadutko May 25, 2020
8ae048e
test ci
SergeyLadutko May 25, 2020
ed73218
test ci
SergeyLadutko May 25, 2020
82aea17
test ci
SergeyLadutko May 25, 2020
8e6faa2
test ci
SergeyLadutko May 25, 2020
62fbc18
test ci
SergeyLadutko May 25, 2020
c6e30a5
test ci
SergeyLadutko May 25, 2020
477e78f
test ci
SergeyLadutko May 25, 2020
7bab608
test ci
SergeyLadutko May 25, 2020
0a4f8cc
test ci
SergeyLadutko May 25, 2020
771edc9
test ci
SergeyLadutko May 25, 2020
9f8b4f8
test ci
SergeyLadutko May 25, 2020
7cb21f9
test ci
SergeyLadutko May 25, 2020
3333dfa
test ci
SergeyLadutko May 25, 2020
e30afd4
test ci
SergeyLadutko May 25, 2020
890b1bb
test ci
SergeyLadutko May 25, 2020
18770b1
test ci
SergeyLadutko May 25, 2020
695cbf2
test ci
SergeyLadutko May 25, 2020
2d99738
test ci
SergeyLadutko May 25, 2020
e95c6c8
update
SergeyLadutko May 25, 2020
571a76a
update
SergeyLadutko May 25, 2020
03d1866
update
SergeyLadutko May 25, 2020
1691572
update
SergeyLadutko May 25, 2020
45f8fb2
update
SergeyLadutko May 25, 2020
6aadc0d
update
SergeyLadutko May 25, 2020
3bc3e9f
update
SergeyLadutko May 25, 2020
5e88884
update
SergeyLadutko May 25, 2020
d6faa75
update
SergeyLadutko May 25, 2020
0a75cbe
update
SergeyLadutko May 25, 2020
bfec31d
update
SergeyLadutko May 25, 2020
63c63ed
update CI
SergeyLadutko May 27, 2020
482d3b1
update CI
SergeyLadutko May 27, 2020
584976f
update CI
SergeyLadutko May 27, 2020
4207c31
update CI
SergeyLadutko May 27, 2020
ccecbb7
update CI
SergeyLadutko May 27, 2020
81dd3c3
update CI
SergeyLadutko May 27, 2020
0bc0a48
update CI
SergeyLadutko May 27, 2020
9121183
update CI
SergeyLadutko May 27, 2020
306b00f
update CI
SergeyLadutko May 27, 2020
2e73d35
update CI
SergeyLadutko May 27, 2020
1f82a05
update CI
SergeyLadutko May 27, 2020
f38d2d5
update CI
SergeyLadutko May 27, 2020
a359614
update CI
SergeyLadutko May 27, 2020
347d8ff
update CI
SergeyLadutko May 27, 2020
9e4b542
update CI
SergeyLadutko May 27, 2020
8c63ddb
update CI
SergeyLadutko May 27, 2020
5ca7eb7
update CI
SergeyLadutko May 27, 2020
038909e
update CI
SergeyLadutko May 27, 2020
906b496
update CI
SergeyLadutko May 27, 2020
7899306
update CI
SergeyLadutko May 27, 2020
95e8c45
update CI
SergeyLadutko May 27, 2020
e172b12
update CI
SergeyLadutko May 27, 2020
b494dec
update CI
SergeyLadutko May 27, 2020
4c02da6
update CI
SergeyLadutko May 27, 2020
8fb3892
update CI
SergeyLadutko May 27, 2020
f3b00ea
update CI
SergeyLadutko May 27, 2020
a0a6668
update CI
SergeyLadutko May 27, 2020
2dd8919
update CI
SergeyLadutko May 27, 2020
79ec61a
update CI
SergeyLadutko May 27, 2020
2ec714e
update CI
SergeyLadutko May 27, 2020
d6d3a0b
update CI
SergeyLadutko May 27, 2020
bbef5b2
update CI
SergeyLadutko May 27, 2020
e159649
update CI
SergeyLadutko May 27, 2020
3bc67e3
update CI
SergeyLadutko May 27, 2020
b42ace1
Update
SergeyLadutko May 27, 2020
200e1eb
Update
SergeyLadutko May 27, 2020
fe844a5
update
SergeyLadutko May 27, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 49 additions & 0 deletions .github/workflows/HOMEWORK8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@

name: Deploy in kubernetes

on:
push:
branches: [ Hometask_8 ]

jobs:
security_tes:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
command: test ./SergeyLadutko/Hometask_8/

build_and_push:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Login to DockerHub Registry
run: echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
- name: Create tag
run: |
TAG=`echo $GITHUB_REF| sed 's/\//\ /g' | awk '{print $3}'`
echo $TAG
sed -i "s|latest|"$TAG"|g" SergeyLadutko/Hometask_8/kubernetes/deployment.yml
sed -i "s|TEST|"$GITHUB_SHA"|g" SergeyLadutko/Hometask_8/kubernetes/deployment.yml
cat ./SergeyLadutko/Hometask_8/kubernetes/deployment.yml
- name: Build the tagged Docker image
run: docker build -t sergeyladutko/kuber:TAG ./SergeyLadutko/Hometask_8/
- name: Push the tagged Docker image
run: docker push sergeyladutko/kuber:TAG

deploy_kubernetes:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: Deploy to cluster
uses: steebchen/kubectl@master
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
KUBECTL_VERSION: "1.15"
with:
args: apply -f ./SergeyLadutko/Hometask_8/kubernetes/deployment.yml

20 changes: 20 additions & 0 deletions SergeyLadutko/Hometask_8/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM node:10-alpine

RUN apk add --update \
curl \
&& rm -rf /var/cache/apk/*

RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app

WORKDIR /home/node/app

COPY package*.json ./

USER node

RUN npm install

COPY --chown=node:node . .

EXPOSE 8080
ENTRYPOINT [ "node", "app.js" ]
108 changes: 108 additions & 0 deletions SergeyLadutko/Hometask_8/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Kubernetes

[![N|Solid](https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png)](https://kubernetes.io)

[![Build Status](https://travis-ci.org/joemccann/dillinger.svg?branch=master)](https://travis-ci.org/joemccann/dillinger)

### Command

kubernetes command
```sh
$ kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1
```
запуск имеджа + replicaset
```sh
$ kubectl expose rc kubia --type=LoadBalancer --name kubia-http
```
добавления к нашему имеджу лоадбалансера
```sh
$ kubectl explain pods
```
для вывода описания манифеста для пода
```sh
$ kubectl get po kubia-manual -o yaml
```
описание пода девопс
```sh
$ kubectl get po --show-labels
```
вывод инф о pods с метками
```sh
$ kubectl get po -L creation_method,env
```
с конкретными метками
```sh
$ kubectl label po kubia-manual creation_method=manual
```
дать метку меток
```sh
$ kubectl label po kubia-manual-v2 env=debug --overwrite
```
изменить метку
```sh
$ kubectl get po -l creation_method=manual
```
вывести под с конкретной меткой
```sh
$ kubectl get po -l env
```
вывести с любым значением метки или же не имеют такую метку '!env'
```sh
$ kubectl get svc --all-namespaces
```
посмотреть во всех нэймспэсах
```sh
$ kubectl delete po -l rel=canary
```
удаление всех подов с конкретными метками

```sh
$ kubectl logs mypod --previous
```
вывести логи удаленного контейнера
```sh
$ kubectl scale rc kubia --replicas=10
```
изменить количство подов
```sh
$ kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
```
узнать ip node
```sh
$ kubectl get endpoints
```
обновить имедж на лету
```sh
$ kubectl set image deployment my-deployment `*=nginx:1.13`
```
узнать все endpoints
откатить на старый деплоймент
```sh
$ kubectl rollout undo deployment my-deployment
```
посмотреть историю отката
```sh
kubectl rollout history deployment deployment_name
```
откатиться на канкретную ревизию

```sh
kubectl rollout undo deployment deployment_name --to-revision=1
```
статус компанентов
```sh
$ kubectl get componentstatuses
```
вынести порт на локал хост
```sh
$ kubectl port-forward pod_name 8000:80
```

###HELM

[![N|Solid](https://d33wubrfki0l68.cloudfront.net/d9a3dd9398904a13c211c703709d7ad7daaef72f/3f473/images/kubernetes-helm.png)](https://https://helm.sh/)


```sh
$ helm upgrade test-deploy --install ./test-helm/ --set "TEST=test125"
```
18 changes: 18 additions & 0 deletions SergeyLadutko/Hometask_8/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const express = require('express');
const app = express();
const router = express.Router();
const db = require('./db');
const sharks = require('./routes/sharks');

const path = __dirname + '/views/';
const port = 8080;

app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(express.urlencoded({ extended: true }));
app.use(express.static(path));
app.use('/sharks', sharks);

app.listen(port, function () {
console.log('Example app listening on port 8080!')
})
29 changes: 29 additions & 0 deletions SergeyLadutko/Hometask_8/controllers/sharks.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
const path = require('path');
const Shark = require('../models/sharks');

exports.index = function (req, res) {
res.sendFile(path.resolve('views/sharks.html'));
};

exports.create = function (req, res) {
var newShark = new Shark(req.body);
console.log(req.body);
newShark.save(function (err) {
if(err) {
res.status(400).send('Unable to save shark to database');
} else {
res.redirect('/sharks/getshark');
}
});
};

exports.list = function (req, res) {
Shark.find({}).exec(function (err, sharks) {
if (err) {
return res.send(500, err);
}
res.render('getshark', {
sharks: sharks
});
});
};
25 changes: 25 additions & 0 deletions SergeyLadutko/Hometask_8/db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const mongoose = require('mongoose');

const {
MONGO_USERNAME,
MONGO_PASSWORD,
MONGO_HOSTNAME,
MONGO_PORT,
MONGO_DB
} = process.env;

const options = {
useNewUrlParser: true,
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 500,
connectTimeoutMS: 10000,
};

const url = `mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_HOSTNAME}:${MONGO_PORT}/${MONGO_DB}?authSource=admin`;

mongoose.connect(url, options).then( function() {
console.log('MongoDB is connected');
})
.catch( function(err) {
console.log(err);
});
33 changes: 33 additions & 0 deletions SergeyLadutko/Hometask_8/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
version: '3'

services:
shark:
build: .
# image: shark:1
environment:
- MONGO_USERNAME=test
- MONGO_PASSWORD=test
- MONGO_HOSTNAME=mongodb
- MONGO_PORT=27017
- MONGO_DB=test
# command: ./wait-for.sh mongodb:27017 -- node ./app.js
ports:
- "1234:8080"
restart: always

mongodb:
image: mongo:latest
environment:
- MONGO_INITDB_ROOT_USERNAME=test
- MONGO_INITDB_ROOT_PASSWORD=test
logging:
driver: none
ports:
- "26977:27017"
volumes:
- mongodb:/data/db
command: --wiredTigerCacheSizeGB 6
restart: always

volumes:
mongodb:
10 changes: 10 additions & 0 deletions SergeyLadutko/Hometask_8/kubernetes/configmap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: shark-config
namespace: default
data:
MONGO_USERNAME: test
MONGO_HOSTNAME: mongodb
MONGO_PORT: '27017'
MONGO_DB: test
63 changes: 63 additions & 0 deletions SergeyLadutko/Hometask_8/kubernetes/deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
apiVersion: v1
kind: Service
metadata:
name: sharks
spec:
sessionAffinity: ClientIP
selector:
app: sharks
ports:
- port: 80
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sharks-deployment
labels:
app: sharks
spec:
replicas: 1
selector:
matchLabels:
app: sharks
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
app: sharks
spec:
imagePullSecrets:
- name: regcred
containers:
- name: sharks
envFrom:
- configMapRef:
name: shark-config
- secretRef:
name: mysecret
env:
- name: RELOADENV
value: TEST
image: sergeyladutko/kuber:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome
initialDelaySeconds: 3
periodSeconds: 3
readinessProbe:
exec:
command:
- curl
- mongodb:27017
12 changes: 12 additions & 0 deletions SergeyLadutko/Hometask_8/kubernetes/ing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
spec:
rules:
- host: shark.sergeyladutko.xyz
http:
paths:
- backend:
serviceName: sharks
servicePort: 80
Loading