homework 13.1: complete task 1

fix and improve project
This commit is contained in:
2022-11-30 10:36:17 +07:00
parent 3939c0a437
commit 0a94c5f7b4
7 changed files with 107 additions and 13 deletions

View File

@@ -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

View File

@@ -17,9 +17,12 @@
Директория с проектом приложения: [project](/src/homework/13-kubernates-config/project).
В первую очередь необходимо собрать образы приложения и опубликовать их в `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

View 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

View File

@@ -4,11 +4,11 @@ RUN mkdir /app && python -m pip install pipenv
WORKDIR /app
ADD Pipfile /app/Pipfile
ADD Pipfile.lock /app/Pipfile.lock
COPY Pipfile /app/Pipfile
COPY Pipfile.lock /app/Pipfile.lock
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

View File

@@ -4,14 +4,14 @@ services:
frontend:
build: ./frontend
ports:
- 8000:80
- "8000:80"
backend:
build: ./backend
links:
- db
ports:
- 9000:9000
- "9000:9000"
db:
image: postgres:13-alpine

View File

@@ -1 +1 @@
BASE_URL=http://localhost:9000
BASE_URL=http://netology-backend:9000

View File

@@ -1,15 +1,15 @@
FROM node:lts-buster as builder
FROM node:16-buster as builder
RUN mkdir /app
WORKDIR /app
ADD package.json /app/package.json
ADD package-lock.json /app/package-lock.json
COPY package.json /app/package.json
COPY package-lock.json /app/package-lock.json
RUN npm i
ADD . /app
COPY . /app
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
ADD demo.conf /etc/nginx/conf.d/default.conf
COPY demo.conf /etc/nginx/conf.d/default.conf