mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 15:22:37 +03:00
homework 13.1: complete task 1
fix and improve project
This commit is contained in:
@@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: testing-app
|
||||||
|
name: testing-app
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: dannecron/netology-devops-k8s-app:frontend-latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: netology-frontend
|
||||||
|
- image: dannecron/netology-devops-k8s-app:backend-latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: netology-backend
|
||||||
|
env:
|
||||||
|
- name: DATABASE_URL
|
||||||
|
value: "postgres://pg_user:pg_passwd@postgres:5432/news"
|
||||||
|
terminationGracePeriodSeconds: 30
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: testing-app
|
||||||
|
db-kind: postgresql
|
||||||
|
name: testing-db
|
||||||
|
namespace: default
|
||||||
|
|
||||||
|
spec:
|
||||||
|
serviceName: postgres
|
||||||
|
replicas: 1
|
||||||
|
podManagementPolicy: "Parallel"
|
||||||
|
updateStrategy:
|
||||||
|
type: "RollingUpdate"
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
db-kind: postgresql
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
db-kind: postgresql
|
||||||
|
specs:
|
||||||
|
volumes: []
|
||||||
|
terminationGracePeriodSeconds: 60
|
||||||
|
containers:
|
||||||
|
- name: postgres
|
||||||
|
image: postgres:13-alpine
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
ports:
|
||||||
|
- name: postgres
|
||||||
|
containerPort: 5432
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 256Mi
|
||||||
|
env:
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
value: pg_user
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
value: pg_passwd
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
value: news
|
||||||
|
- name: PGDATA
|
||||||
|
value: /var/lib/postgresql/data
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/postgresql/data
|
||||||
|
name: postgres
|
||||||
|
volumeClaimTemplates:
|
||||||
|
- metadata:
|
||||||
|
name: postgres
|
||||||
|
spec:
|
||||||
|
accessModes: [ "ReadWriteOnce" ]
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
@@ -17,9 +17,12 @@
|
|||||||
Директория с проектом приложения: [project](/src/homework/13-kubernates-config/project).
|
Директория с проектом приложения: [project](/src/homework/13-kubernates-config/project).
|
||||||
|
|
||||||
В первую очередь необходимо собрать образы приложения и опубликовать их в `registry`,
|
В первую очередь необходимо собрать образы приложения и опубликовать их в `registry`,
|
||||||
который будет доступен из кластера. Например, [hub.docker.com](https://hub.docker.com/)
|
который будет доступен из кластера. Например, [hub.docker.com](https://hub.docker.com/).
|
||||||
|
|
||||||
// todo
|
Для этой цели создан репозиторий [dannecron/netology-devops-k8s-app](https://hub.docker.com/repository/docker/dannecron/netology-devops-k8s-app)
|
||||||
|
и собраны два тега: `frontend-latest` и `backend-latest`.
|
||||||
|
|
||||||
|
Итоговая конфигурация для деплоя приложения в кластер k8s будет выглядеть следующим образом: [testing/deployment.yml](./config/testing/deployment.yml).
|
||||||
|
|
||||||
### Задание 2
|
### Задание 2
|
||||||
|
|
||||||
|
|||||||
9
src/homework/13-kubernates-config/project/Makefile
Normal file
9
src/homework/13-kubernates-config/project/Makefile
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
IMAGE_NAME=dannecron/netology-devops-k8s-app
|
||||||
|
|
||||||
|
build-backend:
|
||||||
|
cd ./backend && docker build -t ${IMAGE_NAME}:backend-latest . \
|
||||||
|
&& docker push ${IMAGE_NAME}:backend-latest
|
||||||
|
|
||||||
|
build-frontend:
|
||||||
|
cd ./frontend && docker build -t ${IMAGE_NAME}:frontend-latest . \
|
||||||
|
&& docker push ${IMAGE_NAME}:frontend-latest
|
||||||
@@ -4,11 +4,11 @@ RUN mkdir /app && python -m pip install pipenv
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ADD Pipfile /app/Pipfile
|
COPY Pipfile /app/Pipfile
|
||||||
ADD Pipfile.lock /app/Pipfile.lock
|
COPY Pipfile.lock /app/Pipfile.lock
|
||||||
|
|
||||||
RUN pipenv install
|
RUN pipenv install
|
||||||
|
|
||||||
ADD main.py /app/main.py
|
COPY main.py /app/main.py
|
||||||
|
|
||||||
CMD pipenv run uvicorn main:app --reload --host 0.0.0.0 --port 9000
|
CMD pipenv run uvicorn main:app --reload --host 0.0.0.0 --port 9000
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ services:
|
|||||||
frontend:
|
frontend:
|
||||||
build: ./frontend
|
build: ./frontend
|
||||||
ports:
|
ports:
|
||||||
- 8000:80
|
- "8000:80"
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
build: ./backend
|
build: ./backend
|
||||||
links:
|
links:
|
||||||
- db
|
- db
|
||||||
ports:
|
ports:
|
||||||
- 9000:9000
|
- "9000:9000"
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: postgres:13-alpine
|
image: postgres:13-alpine
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
BASE_URL=http://localhost:9000
|
BASE_URL=http://netology-backend:9000
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
FROM node:lts-buster as builder
|
FROM node:16-buster as builder
|
||||||
|
|
||||||
RUN mkdir /app
|
RUN mkdir /app
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ADD package.json /app/package.json
|
COPY package.json /app/package.json
|
||||||
ADD package-lock.json /app/package-lock.json
|
COPY package-lock.json /app/package-lock.json
|
||||||
|
|
||||||
RUN npm i
|
RUN npm i
|
||||||
|
|
||||||
ADD . /app
|
COPY . /app
|
||||||
|
|
||||||
RUN npm run build && rm -rf /app/node_modules
|
RUN npm run build && rm -rf /app/node_modules
|
||||||
|
|
||||||
@@ -21,4 +21,4 @@ COPY --from=builder /app/ /app
|
|||||||
|
|
||||||
RUN mv /app/markup/* /app && rm -rf /app/markup
|
RUN mv /app/markup/* /app && rm -rf /app/markup
|
||||||
|
|
||||||
ADD demo.conf /etc/nginx/conf.d/default.conf
|
COPY demo.conf /etc/nginx/conf.d/default.conf
|
||||||
|
|||||||
Reference in New Issue
Block a user