checkpoint 2 part 1 finished, needs to be properly tested

This commit is contained in:
Tiago Sousa 2023-12-07 12:35:17 +00:00
parent ce3ea05831
commit c3f67d4582
14 changed files with 306 additions and 26 deletions

View file

@ -0,0 +1,50 @@
---
- name: Get MySQL Service Info
kubernetes.core.k8s_info:
api_version: v1
kind: Service
name: mysql-service
namespace: default
register: service_info
- name: Extract ClusterIP from MySQL service
set_fact:
cluster_ip: "{{ service_info.resources[0].spec.clusterIP }}"
- name: Print ClusterIP
debug:
var: cluster_ip
- name: Create ConfigMap for laravelio
kubernetes.core.k8s:
name: laravelio-config
namespace: default
definition:
apiVersion: v1
kind: ConfigMap
metadata:
name: laravelio-config
data:
DB_HOST: "{{ cluster_ip }}"
DB_DATABASE: laravelio
DB_USERNAME: laraveliouser
DB_PASSWORD: "123456"
- name: Create laravelio Deployment
kubernetes.core.k8s:
namespace: default
state: present
src: roles/laravelio_deploy/templates/laravelio-deployment.yml
- name: Create laravelio Service
kubernetes.core.k8s:
namespace: default
state: present
src: roles/laravelio_deploy/templates/laravelio-service.yml
wait: yes
- name: Seed database
kubernetes.core.k8s_exec:
namespace: default
pod: laravelio
command: "php artisan db:seed"
when: seed_database is defined and seed_database == "true"

View file

@ -0,0 +1,29 @@
---
# Deployment for Laravelio
apiVersion: apps/v1
kind: Deployment
metadata:
name: laravelio-deployment
labels:
app: laravelio
tier: app
spec:
selector:
matchLabels:
app: laravelio
strategy:
type: Recreate
template:
metadata:
labels:
app: laravelio
tier: app
spec:
containers:
- name: laravelio
image: crispyjeasus/laravelio:latest
envFrom: # The variables below could be set on a ConfigMap object
- configMapRef:
name: laravelio-config
ports:
- containerPort: 8000

View file

@ -0,0 +1,16 @@
---
# Service for exposing Laravel
apiVersion: v1
kind: Service
metadata:
name: laravelio-service # logical name of the service, which will also become the DNS name of the service when it is created.
labels:
app: laravelio
tier: app
spec:
type: LoadBalancer
selector:
app: laravelio
ports:
- port: 30000
targetPort: 8000