diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index fc10e490a13e5ae936fcb6a3812d7a16632cfdde..0000000000000000000000000000000000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,47 +0,0 @@ -services: - mongodb: - image: mongo:latest - container_name: mongodb - ports: - - "27017:27017" - environment: - - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME} - - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} - - MONGO_INITDB_DATABASE=todo-app - - todo-app-1: - build: - context: . - dockerfile: Dockerfile - container_name: todo-app-1 - ports: - - "3001:3000" - depends_on: - - mongodb - environment: - - MONGO_URI=${MONGO_URI} - - PORT=3000 - - todo-app-2: - build: - context: . - dockerfile: Dockerfile - container_name: todo-app-2 - ports: - - "3002:3000" - depends_on: - - mongodb - environment: - - MONGO_URI=${MONGO_URI} - - nginx: - image: nginx:latest - container_name: nginx - ports: - - "80:80" - depends_on: - - todo-app-1 - - todo-app-2 - volumes: - - "./nginx.conf:/etc/nginx/nginx.conf:ro" - - "/var/log/nginx/access.log:/var/log/nginx/access.log" diff --git a/mongodb-deployment.yml b/mongodb-deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..58fa9fd3868e6c8a8d8e0d673ad6d11d994936fd --- /dev/null +++ b/mongodb-deployment.yml @@ -0,0 +1,44 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mongo-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mongodb + labels: + app: mongodb +spec: + replicas: 1 + selector: + matchLabels: + app: mongodb + template: + metadata: + labels: + app: mongodb + spec: + containers: + - name: mongodb + image: mongo:latest + ports: + - containerPort: 27017 + env: + - name: MONGO_INITDB_ROOT_USERNAME + value: mongoAdmin + - name: MONGO_INITDB_ROOT_PASSWORD + value: someRandomPassword123$ + volumeMounts: + - name: mongo-data + mountPath: /data/db + volumes: + - name: mongo-data + persistentVolumeClaim: + claimName: mongo-pvc diff --git a/mongodb-service.yml b/mongodb-service.yml new file mode 100644 index 0000000000000000000000000000000000000000..00a4a7d1d973c6a75875b6ee9f5197eb0523c2c2 --- /dev/null +++ b/mongodb-service.yml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: mongodb +spec: + ports: + - port: 27017 + targetPort: 27017 + selector: + app: mongodb diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index 737504acce61070255d2d0cc490601f3219f2163..0000000000000000000000000000000000000000 --- a/nginx.conf +++ /dev/null @@ -1,38 +0,0 @@ -events { - # Set the maximum number of simultaneous connections that can be opened by a worker process - worker_connections 1024; -} - -http { - # Define an upstream group for load balancing the todo-app services - upstream todo-app { - ip_hash; - server todo-app-1:3000; # First server in the upstream group - server todo-app-2:3000; # Second server in the upstream group - } - - # Define a custom log format for capturing upstream request details - log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $request ' - '"$status" $body_bytes_sent ' - '"$http_referer" "$http_user_agent" ' - '"$gzip_ratio" ' - '${host} $request_uri ' - '$upstream_addr '; - - server { - listen 80; # Listen on port 80 for incoming HTTP requests - location / { - # Proxy requests to the upstream todo-app group - proxy_pass http://todo-app; - proxy_http_version 1.1; # Use HTTP/1.1 for proxying - proxy_set_header Upgrade $http_upgrade; # Set the Upgrade header - proxy_set_header Connection 'upgrade'; # Set the Connection header to upgrade - proxy_set_header Host $host; # Forward the original Host header - proxy_cache_bypass $http_upgrade; # Bypass cache for upgraded requests - # Log access requests using the defined upstream log format - access_log /var/log/nginx/access.log upstreamlog; - } - } -} - - diff --git a/todo-app-deployment.yml b/todo-app-deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..ef1d8dde10c0b1beafae05aefd5dd659ab9fb60b --- /dev/null +++ b/todo-app-deployment.yml @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: todo-app + labels: + app: todo-app +spec: + replicas: 2 + selector: + matchLabels: + app: todo-app + template: + metadata: + labels: + app: todo-app + spec: + containers: + - name: todo-app + image: todo-app:latest + imagePullPolicy: IfNotPresent + ports: + - containerPort: 3000 + env: + - name: MONGO_URI + value: mongodb://mongoAdmin:someRandomPassword123$@mongodb:27017/todo-app?authSource=admin diff --git a/todo-app-service.yml b/todo-app-service.yml new file mode 100644 index 0000000000000000000000000000000000000000..1fe97a5cd0d86545d29d708680813591bcb12d13 --- /dev/null +++ b/todo-app-service.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: todo-app +spec: + ports: + - port: 3000 + targetPort: 3000 + selector: + app: todo-app + type: NodePort