24 changed files with 298 additions and 163 deletions
-
2.editorconfig
-
14.gitlab-ci.yml
-
14Makefile
-
2app/config/packages/cache.yaml
-
6app/config/packages/dev/web_profiler.yaml
-
26app/config/packages/framework.yaml
-
28app/config/packages/nelmio_api_doc.yaml
-
10app/config/packages/routing.yaml
-
6app/config/packages/test/web_profiler.yaml
-
6app/config/packages/twig.yaml
-
6app/config/routes.yaml
-
8app/config/routes/annotations.yaml
-
8app/config/routes/dev/web_profiler.yaml
-
6app/config/routes/framework.yaml
-
12app/config/routes/nelmio_api_doc.yaml
-
44app/config/services.yaml
-
8devops/docker/Dockerfile
-
1devops/k8s/0_ConfigMap/.gitignore
-
55devops/k8s/0_ConfigMap/nginx-dev.yaml
-
1devops/k8s/0_Secret/.gitignore
-
22devops/k8s/1_Service/nginx.yaml
-
87devops/k8s/2_Deployment/notification-provider.yaml
-
40docker-compose-local.yml
-
49docker-compose.yml
@ -1,12 +1,12 @@ |
|||
--- |
|||
variables: |
|||
DOCKER_BUILD_TEST_BUILD_FILE: devops/docker/php/Dockerfile |
|||
DOCKER_BUILD_TEST_TARGET: test |
|||
DOCKER_RELEASE_BUILD_FILE: devops/docker/php/Dockerfile |
|||
DOCKER_RELEASE_BUILD_TARGET: test |
|||
DOCKER_BUILD_TEST_BUILD_FILE: devops/docker/Dockerfile |
|||
DOCKER_BUILD_TEST_TARGET: test |
|||
DOCKER_RELEASE_BUILD_FILE: devops/docker/Dockerfile |
|||
DOCKER_RELEASE_BUILD_TARGET: test |
|||
|
|||
include: |
|||
- project: infra/kernel/ci-templates |
|||
ref: master |
|||
file: /${CI_PROJECT_PATH}.yml |
|||
- project: infra/kernel/ci-templates |
|||
ref: master |
|||
file: /${CI_PROJECT_PATH}.yml |
|||
... |
@ -1,18 +1,12 @@ |
|||
MAKEFLAGS += --silent |
|||
.PHONY: * |
|||
|
|||
restart-local: |
|||
docker-compose -f docker-compose-local.yml pull |
|||
docker-compose -f docker-compose-local.yml down |
|||
docker-compose -f docker-compose-local.yml up -d --build |
|||
apply: |
|||
kubectl apply --recursive=true --filename=devops/k8s |
|||
|
|||
restart: |
|||
docker-compose -f docker-compose.yml pull |
|||
docker-compose -f docker-compose.yml down |
|||
docker-compose -f docker-compose.yml up -d |
|||
docker-compose -f docker-compose.yml up -d --build |
|||
|
|||
cleanup: |
|||
docker system prune --all --force |
|||
docker system prune --volumes --force |
|||
|
|||
.DEFAULT_GOAL := restart |
|||
.DEFAULT_GOAL := apply |
@ -1,4 +1,4 @@ |
|||
--- |
|||
framework: |
|||
cache: |
|||
cache: |
|||
... |
@ -1,8 +1,8 @@ |
|||
--- |
|||
web_profiler: |
|||
toolbar: true |
|||
intercept_redirects: false |
|||
toolbar: true |
|||
intercept_redirects: false |
|||
|
|||
framework: |
|||
profiler: { only_exceptions: false } |
|||
profiler: { only_exceptions: false } |
|||
... |
@ -1,20 +1,20 @@ |
|||
--- |
|||
framework: |
|||
secret: '%env(APP_SECRET)%' |
|||
http_method_override: false |
|||
secret: '%env(APP_SECRET)%' |
|||
http_method_override: false |
|||
|
|||
session: |
|||
handler_id: null |
|||
cookie_secure: auto |
|||
cookie_samesite: lax |
|||
storage_factory_id: session.storage.factory.native |
|||
session: |
|||
handler_id: null |
|||
cookie_secure: auto |
|||
cookie_samesite: lax |
|||
storage_factory_id: session.storage.factory.native |
|||
|
|||
php_errors: |
|||
log: true |
|||
php_errors: |
|||
log: true |
|||
|
|||
when@test: |
|||
framework: |
|||
test: true |
|||
session: |
|||
storage_factory_id: session.storage.factory.mock_file |
|||
framework: |
|||
test: true |
|||
session: |
|||
storage_factory_id: session.storage.factory.mock_file |
|||
... |
@ -1,17 +1,17 @@ |
|||
--- |
|||
nelmio_api_doc: |
|||
documentation: |
|||
servers: |
|||
- url: https://notification-provider.fedy95.com |
|||
description: server API over HTTPS |
|||
- url: http://127.0.0.1:8054 |
|||
description: localhost API over HTTP |
|||
info: |
|||
title: notification-provider |
|||
description: notification-provider api doc |
|||
version: 0.0.1 |
|||
areas: |
|||
default: |
|||
path_patterns: |
|||
- ^/api/v1 |
|||
documentation: |
|||
servers: |
|||
- url: https://notification-provider.fedy95.com |
|||
description: server API over HTTPS |
|||
- url: http://127.0.0.1:8054 |
|||
description: localhost API over HTTP |
|||
info: |
|||
title: notification-provider |
|||
description: notification-provider api doc |
|||
version: 0.0.1 |
|||
areas: |
|||
default: |
|||
path_patterns: |
|||
- ^/api/v1 |
|||
... |
@ -1,10 +1,10 @@ |
|||
--- |
|||
framework: |
|||
router: |
|||
utf8: true |
|||
router: |
|||
utf8: true |
|||
|
|||
when@prod: |
|||
framework: |
|||
router: |
|||
strict_requirements: null |
|||
framework: |
|||
router: |
|||
strict_requirements: null |
|||
... |
@ -1,8 +1,8 @@ |
|||
--- |
|||
web_profiler: |
|||
toolbar: false |
|||
intercept_redirects: false |
|||
toolbar: false |
|||
intercept_redirects: false |
|||
|
|||
framework: |
|||
profiler: { collect: false } |
|||
profiler: { collect: false } |
|||
... |
@ -1,8 +1,8 @@ |
|||
--- |
|||
twig: |
|||
default_path: '%kernel.project_dir%/templates' |
|||
default_path: '%kernel.project_dir%/templates' |
|||
|
|||
when@test: |
|||
twig: |
|||
strict_variables: true |
|||
twig: |
|||
strict_variables: true |
|||
... |
@ -1,6 +1,6 @@ |
|||
--- |
|||
app.swagger_ui: |
|||
path: /api/doc/{area} |
|||
methods: GET |
|||
defaults: { _controller: nelmio_api_doc.controller.swagger_ui, area: default } |
|||
path: /api/doc/{area} |
|||
methods: GET |
|||
defaults: { _controller: nelmio_api_doc.controller.swagger_ui, area: default } |
|||
... |
@ -1,9 +1,9 @@ |
|||
--- |
|||
controllers: |
|||
resource: ../../src/Controller/ |
|||
type: annotation |
|||
resource: ../../src/Controller/ |
|||
type: annotation |
|||
|
|||
kernel: |
|||
resource: ../../src/Kernel.php |
|||
type: annotation |
|||
resource: ../../src/Kernel.php |
|||
type: annotation |
|||
... |
@ -1,9 +1,9 @@ |
|||
--- |
|||
web_profiler_wdt: |
|||
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' |
|||
prefix: /_wdt |
|||
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' |
|||
prefix: /_wdt |
|||
|
|||
web_profiler_profiler: |
|||
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' |
|||
prefix: /_profiler |
|||
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' |
|||
prefix: /_profiler |
|||
... |
@ -1,6 +1,6 @@ |
|||
--- |
|||
when@dev: |
|||
_errors: |
|||
resource: '@FrameworkBundle/Resources/config/routing/errors.xml' |
|||
prefix: /_error |
|||
_errors: |
|||
resource: '@FrameworkBundle/Resources/config/routing/errors.xml' |
|||
prefix: /_error |
|||
... |
@ -1,11 +1,11 @@ |
|||
--- |
|||
app.swagger: |
|||
path: /api/doc.json |
|||
methods: GET |
|||
defaults: { _controller: nelmio_api_doc.controller.swagger } |
|||
path: /api/doc.json |
|||
methods: GET |
|||
defaults: { _controller: nelmio_api_doc.controller.swagger } |
|||
|
|||
app.swagger_ui: |
|||
path: /api/doc |
|||
methods: GET |
|||
defaults: { _controller: nelmio_api_doc.controller.swagger_ui } |
|||
path: /api/doc |
|||
methods: GET |
|||
defaults: { _controller: nelmio_api_doc.controller.swagger_ui } |
|||
... |
@ -1,29 +1,29 @@ |
|||
--- |
|||
parameters: |
|||
app.mattermost.url: '%env(resolve:MATTERMOST_URL)%' |
|||
app.mattermost.uri: '%env(resolve:MATTERMOST_URI)%' |
|||
app.mattermost.channel_name: '%env(resolve:MATTERMOST_CHANNEL_NAME)%' |
|||
app.mattermost.bot.name: '%env(resolve:MATTERMOST_BOT_NAME)%' |
|||
app.mattermost.bot.icon: '%env(resolve:MATTERMOST_BOT_ICON)%' |
|||
app.mattermost.url: '%env(resolve:MATTERMOST_URL)%' |
|||
app.mattermost.uri: '%env(resolve:MATTERMOST_URI)%' |
|||
app.mattermost.channel_name: '%env(resolve:MATTERMOST_CHANNEL_NAME)%' |
|||
app.mattermost.bot.name: '%env(resolve:MATTERMOST_BOT_NAME)%' |
|||
app.mattermost.bot.icon: '%env(resolve:MATTERMOST_BOT_ICON)%' |
|||
|
|||
services: |
|||
_defaults: |
|||
autowire: true |
|||
autoconfigure: true |
|||
_defaults: |
|||
autowire: true |
|||
autoconfigure: true |
|||
|
|||
App\: |
|||
resource: '../src/' |
|||
exclude: |
|||
- '../src/DependencyInjection/' |
|||
- '../src/Entity/' |
|||
- '../src/Kernel.php' |
|||
- '../src/Tests/' |
|||
App\: |
|||
resource: '../src/' |
|||
exclude: |
|||
- '../src/DependencyInjection/' |
|||
- '../src/Entity/' |
|||
- '../src/Kernel.php' |
|||
- '../src/Tests/' |
|||
|
|||
App\Service\Mattermost\MattermostService: |
|||
arguments: |
|||
$mattermostUrl: '%app.mattermost.url%' |
|||
$mattermostUri: '%app.mattermost.uri%' |
|||
$channelName: '%app.mattermost.channel_name%' |
|||
$botName: '%app.mattermost.bot.name%' |
|||
$botIcon: '%app.mattermost.bot.icon%' |
|||
App\Service\Mattermost\MattermostService: |
|||
arguments: |
|||
$mattermostUrl: '%app.mattermost.url%' |
|||
$mattermostUri: '%app.mattermost.uri%' |
|||
$channelName: '%app.mattermost.channel_name%' |
|||
$botName: '%app.mattermost.bot.name%' |
|||
$botIcon: '%app.mattermost.bot.icon%' |
|||
... |
@ -0,0 +1 @@ |
|||
app-dev.yml |
@ -0,0 +1,55 @@ |
|||
--- |
|||
apiVersion: v1 |
|||
kind: ConfigMap |
|||
metadata: |
|||
name: notification-provider-nginx-configmap0-dev |
|||
namespace: default |
|||
labels: |
|||
tier: notification-provider |
|||
component: nginx |
|||
environment: dev |
|||
data: |
|||
default.conf: | |
|||
server { |
|||
root /var/www/localhost/public; |
|||
error_log /var/log/nginx/localhost-error.log; |
|||
access_log /var/log/nginx/localhost-access.log; |
|||
|
|||
location / { |
|||
try_files $uri /index.php$is_args$args; |
|||
} |
|||
|
|||
location ~ \.php { |
|||
fastcgi_split_path_info ^(.+\.php)(/.+)$; |
|||
fastcgi_pass 127.0.0.1:9000; |
|||
include fastcgi_params; |
|||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
|||
fastcgi_param DOCUMENT_ROOT $document_root; |
|||
internal; |
|||
} |
|||
location ~ \.php$ { |
|||
return 404; |
|||
} |
|||
} |
|||
nginx.conf: | |
|||
user nginx; |
|||
worker_processes auto; |
|||
error_log /var/log/nginx/error.log warn; |
|||
pid /var/run/nginx.pid; |
|||
events { |
|||
worker_connections 1024; |
|||
} |
|||
http { |
|||
include /etc/nginx/mime.types; |
|||
default_type application/octet-stream; |
|||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' |
|||
'$status $body_bytes_sent "$http_referer" ' |
|||
'"$http_user_agent" "$http_x_forwarded_for"'; |
|||
access_log /var/log/nginx/access.log main; |
|||
sendfile on; |
|||
#tcp_nopush on; |
|||
keepalive_timeout 65; |
|||
#gzip on; |
|||
include /etc/nginx/conf.d/default.conf; |
|||
} |
|||
... |
@ -0,0 +1 @@ |
|||
gitlab-docker.yaml |
@ -0,0 +1,22 @@ |
|||
--- |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: notification-provider-nginx-service-dev |
|||
namespace: default |
|||
labels: |
|||
tier: notification-provider |
|||
component: nginx |
|||
environment: dev |
|||
spec: |
|||
selector: |
|||
app: notification-provider |
|||
tier: notification-provider |
|||
type: NodePort |
|||
ports: |
|||
- name: http |
|||
protocol: TCP |
|||
port: 80 |
|||
targetPort: 80 |
|||
nodePort: 30036 |
|||
... |
@ -0,0 +1,87 @@ |
|||
--- |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: notification-provider |
|||
namespace: default |
|||
labels: |
|||
tier: notification-provider |
|||
environment: dev |
|||
spec: |
|||
replicas: 1 |
|||
selector: |
|||
matchLabels: |
|||
app: notification-provider |
|||
tier: notification-provider |
|||
strategy: |
|||
rollingUpdate: |
|||
maxSurge: 1 |
|||
maxUnavailable: 0 |
|||
type: RollingUpdate |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: notification-provider |
|||
tier: notification-provider |
|||
spec: |
|||
volumes: |
|||
- name: shared-files |
|||
emptyDir: { } |
|||
- name: notification-provider-app-configmap0-dev |
|||
configMap: |
|||
defaultMode: 0664 |
|||
name: notification-provider-app-configmap0-dev |
|||
- name: notification-provider-nginx-configmap0-dev |
|||
configMap: |
|||
defaultMode: 0664 |
|||
name: notification-provider-nginx-configmap0-dev |
|||
containers: |
|||
- name: php |
|||
image: gitlab-registry.fedy95.com:5002/dev/notification-provider:latest |
|||
resources: |
|||
requests: |
|||
cpu: "125m" |
|||
memory: "64Mi" |
|||
limits: |
|||
cpu: "250m" |
|||
memory: "128Mi" |
|||
volumeMounts: |
|||
- name: shared-files |
|||
mountPath: /var/www/localhost |
|||
- name: notification-provider-app-configmap0-dev |
|||
mountPath: /var/www/localhost/.env |
|||
subPath: .env |
|||
lifecycle: |
|||
postStart: |
|||
exec: |
|||
command: |
|||
- "/bin/sh" |
|||
- "-c" |
|||
- > |
|||
cp -rp /app/* /var/www/localhost |
|||
|
|||
- name: nginx |
|||
image: nginx:1.21-alpine |
|||
resources: |
|||
requests: |
|||
cpu: "125m" |
|||
memory: "64Mi" |
|||
limits: |
|||
cpu: "250m" |
|||
memory: "128Mi" |
|||
volumeMounts: |
|||
- name: shared-files |
|||
mountPath: /var/www/localhost |
|||
- name: notification-provider-app-configmap0-dev |
|||
mountPath: /var/www/localhost/.env |
|||
subPath: .env |
|||
- name: notification-provider-nginx-configmap0-dev |
|||
mountPath: /etc/nginx/nginx.conf |
|||
subPath: nginx.conf |
|||
- name: notification-provider-nginx-configmap0-dev |
|||
mountPath: /etc/nginx/conf.d/default.conf |
|||
subPath: default.conf |
|||
restartPolicy: Always |
|||
imagePullSecrets: |
|||
- name: gitlab-docker |
|||
... |
@ -1,40 +0,0 @@ |
|||
--- |
|||
version: "3.4" |
|||
|
|||
networks: |
|||
monitoring_monitor-net: |
|||
external: true |
|||
|
|||
services: |
|||
app: |
|||
build: |
|||
context: . |
|||
dockerfile: devops/docker/php/Dockerfile |
|||
target: local |
|||
restart: always |
|||
|
|||
environment: |
|||
COMPOSER_MEMORY_LIMIT: "-1" |
|||
PHP_IDE_CONFIG: "serverName=notification-provider_app" |
|||
volumes: |
|||
- ${HOME}/.composer:${HOME}/.composer |
|||
- ./app:/var/www/localhost |
|||
expose: |
|||
- "9000" |
|||
networks: |
|||
- monitoring_monitor-net |
|||
|
|||
nginx: |
|||
image: nginx:1.21-alpine |
|||
restart: always |
|||
|
|||
depends_on: |
|||
- app |
|||
volumes: |
|||
- ./app:/var/www/localhost |
|||
- ./devops/docker/nginx/etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf |
|||
ports: |
|||
- "8054:80" |
|||
networks: |
|||
- monitoring_monitor-net |
|||
... |
@ -1,25 +1,40 @@ |
|||
--- |
|||
version: "3.4" |
|||
|
|||
networks: |
|||
monitoring_monitor-net: |
|||
external: true |
|||
|
|||
services: |
|||
app: |
|||
image: gitlab-registry.fedy95.com:5002/dev/notification-provider:latest |
|||
restart: always |
|||
app: |
|||
build: |
|||
context: . |
|||
dockerfile: devops/docker/Dockerfile |
|||
target: local |
|||
restart: always |
|||
|
|||
volumes: |
|||
- ./env/app/app.env:/var/www/localhost/.env |
|||
expose: |
|||
- "9000" |
|||
environment: |
|||
COMPOSER_MEMORY_LIMIT: "-1" |
|||
PHP_IDE_CONFIG: "serverName=notification-provider_app" |
|||
volumes: |
|||
- ${HOME}/.composer:${HOME}/.composer |
|||
- ./app:/var/www/localhost |
|||
expose: |
|||
- "9000" |
|||
networks: |
|||
- monitoring_monitor-net |
|||
|
|||
nginx: |
|||
image: nginx:1.21-alpine |
|||
restart: always |
|||
nginx: |
|||
image: nginx:1.21-alpine |
|||
restart: always |
|||
|
|||
depends_on: |
|||
- app |
|||
volumes: |
|||
- ./app:/var/www/localhost |
|||
- ./devops/docker/nginx/etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf |
|||
ports: |
|||
- "8054:80" |
|||
depends_on: |
|||
- app |
|||
volumes: |
|||
- ./app:/var/www/localhost |
|||
- ./devops/docker/nginx/etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf |
|||
ports: |
|||
- "8054:80" |
|||
networks: |
|||
- monitoring_monitor-net |
|||
... |
Write
Preview
Loading…
Cancel
Save
Reference in new issue