Se añaden las pruebas de readyness y liveness para la app final y un volumen...

Se añaden las pruebas de readyness y liveness para la app final y un volumen para almacenar todo lo de activestorage
parent f283f64b
apiVersion: v1
kind: PersistentVolume
metadata:
name: rails-storage
labels:
app: rails-app
component: active-storage
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
gcePersistentDisk:
pdName: rails-activestorage-disk
fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rails-activestorage-claim
labels:
app: rails-app
spec:
accessModes:
- ReadWriteOnce
storageClassName: ""
resources:
requests:
storage: 10Gi
selector:
matchLabels:
app: rails-app
component: active-storage
\ No newline at end of file
......@@ -11,7 +11,7 @@ spec:
spec:
initContainers:
- name: setup-database
image: eu.gcr.io/wdps-prj-terraform-e8b60c97/cool-app:v.0.2
image: eu.gcr.io/wdps-prj-terraform-e8b60c97/cool-app:v.0.4
command: ["rails","db:create"]
envFrom:
- configMapRef:
......@@ -20,15 +20,15 @@ spec:
- name: "MYSQL_USER"
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: username
- name: "MYSQL_PASSWORD"
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: password
- name: schema-migration
image: eu.gcr.io/wdps-prj-terraform-e8b60c97/cool-app:v.0.2
image: eu.gcr.io/wdps-prj-terraform-e8b60c97/cool-app:v.0.4
command: ["rails","db:migrate"]
envFrom:
- configMapRef:
......@@ -37,16 +37,16 @@ spec:
- name: "MYSQL_USER"
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: username
- name: "MYSQL_PASSWORD"
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: password
containers:
- name: demo
image: eu.gcr.io/wdps-prj-terraform-e8b60c97/cool-app:v.0.2
image: eu.gcr.io/wdps-prj-terraform-e8b60c97/cool-app:v.0.4
command: ["foreman","start","-f","Procfile.dev"]
envFrom:
- configMapRef:
......@@ -55,16 +55,37 @@ spec:
- name: "MYSQL_USER"
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: username
- name: "MYSQL_PASSWORD"
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: password
ports:
- containerPort: 5000
name: foreman-port
volumeMounts:
- name: activestorage
mountPath: /app/storage
livenessProbe:
httpGet:
path: /monitoring/alive
port: foreman-port
initialDelaySeconds: 30
timeoutSeconds: 5
periodSeconds: 15
readinessProbe:
httpGet:
path: /monitoring/ready
port: foreman-port
initialDelaySeconds: 15
timeoutSeconds: 5
periodSeconds: 15
volumes:
- name: activestorage
persistentVolumeClaim:
claimName: rails-activestorage-claim
#Montar el Liveness
---
apiVersion: v1
......
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
name: mysql-rails-secret
type: Opaque
data:
password: ZG51ZWhFUkZBRWFjbmV4dTQ4MzdxNDE4M2U=
......
......@@ -4,6 +4,7 @@ metadata:
name: rails-database
labels:
app: rails-app
component: database
spec:
capacity:
storage: 10Gi
......@@ -28,4 +29,5 @@ spec:
storage: 10Gi
selector:
matchLabels:
app: rails-app
\ No newline at end of file
app: rails-app
component: database
\ No newline at end of file
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mysql-server
name: mysql-server-rails
labels:
app: database
spec:
......@@ -19,17 +19,17 @@ spec:
- name: "MYSQL_ROOT_PASSWORD"
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: root
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: username
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
name: mysql-rails-secret
key: password
- name: MYSQL_DATABASE
valueFrom:
......
......@@ -21,6 +21,19 @@ class PostsController < ApplicationController
def edit
end
def alive
render text: "alive!", status: :ok
end
def ready
@posts = Post.all
unless @posts.nil?
render text: "Ready!", status: :ok
else
render text: "Wait...", status: :unprocessable_entity
end
end
# POST /posts
# POST /posts.json
def create
......
Rails.application.routes.draw do
resources :posts
match '/monitoring/alive', to: 'posts#alive', via: 'get', as: :alive
match '/monitoring/ready', to: 'posts#ready', via: 'get', as: :ready
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
root "posts#index"
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment