From 7a54f886ff8ee890272f4d79eaae11af8a364635 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 6 Feb 2024 17:06:45 +0000 Subject: [PATCH 01/23] initial state --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 08407749..a2c82222 100644 --- a/README.md +++ b/README.md @@ -13,15 +13,15 @@ Welcome to the Web App DevOps Project repo! This application allows you to effic ## Features - **Order List:** View a comprehensive list of orders including details like date UUID, user ID, card number, store code, product code, product quantity, order date, and shipping date. - + ![Screenshot 2023-08-31 at 15 48 48](https://github.com/maya-a-iuga/Web-App-DevOps-Project/assets/104773240/3a3bae88-9224-4755-bf62-567beb7bf692) - **Pagination:** Easily navigate through multiple pages of orders using the built-in pagination feature. - + ![Screenshot 2023-08-31 at 15 49 08](https://github.com/maya-a-iuga/Web-App-DevOps-Project/assets/104773240/d92a045d-b568-4695-b2b9-986874b4ed5a) - **Add New Order:** Fill out a user-friendly form to add new orders to the system with necessary information. - + ![Screenshot 2023-08-31 at 15 49 26](https://github.com/maya-a-iuga/Web-App-DevOps-Project/assets/104773240/83236d79-6212-4fc3-afa3-3cee88354b1a) - **Data Validation:** Ensure data accuracy and completeness with required fields, date restrictions, and card number validation. @@ -53,10 +53,12 @@ To run the application, you simply need to run the `app.py` script in this repos - **Database:** The application employs an Azure SQL Database as its database system to store order-related data. -## Contributors +## Contributors -- [Maya Iuga]([https://github.com/yourusername](https://github.com/maya-a-iuga)) +- [Maya Iuga](<[https://github.com/yourusername](https://github.com/maya-a-iuga)>) ## License This project is licensed under the MIT License. For more details, refer to the [LICENSE](LICENSE) file. + +## Robin Winters Azure End-to-End DevOps Pipeline Project From df60a2dd38abcb633b2fcdc92808e9fe45076085 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 6 Feb 2024 17:14:38 +0000 Subject: [PATCH 02/23] delivery-date column add --- app.py | 5 +- templates/orders.html | 180 ++++++++++++++++++++++++++---------------- 2 files changed, 114 insertions(+), 71 deletions(-) diff --git a/app.py b/app.py index 50f4e29d..aeeb67fc 100644 --- a/app.py +++ b/app.py @@ -46,6 +46,7 @@ class Order(Base): product_quantity = Column('Product Quantity', Integer) order_date = Column('Order Date', DateTime) shipping_date = Column('Shipping Date', DateTime) + delivery_date = Column('Delivery Date', DateTime) # define routes # route to display orders @@ -85,6 +86,7 @@ def add_order(): product_quantity = request.form.get('product_quantity') order_date = request.form.get('order_date') shipping_date = request.form.get('shipping_date') + delivery_date = request.form['delivery_date'] # Create a session to interact with the database session = Session() @@ -98,7 +100,8 @@ def add_order(): product_code=product_code, product_quantity=product_quantity, order_date=order_date, - shipping_date=shipping_date + shipping_date=shipping_date, + delivery_date=delivery_date ) # Add the new order to the session and commit to the database diff --git a/templates/orders.html b/templates/orders.html index 9372e2d0..9c58f4ba 100644 --- a/templates/orders.html +++ b/templates/orders.html @@ -1,82 +1,122 @@ - + Order Management - - - + + +
-

Fictional Company Name

+

Fictional Company Name

- - + +
- +
-
-

Order List

- - - - - - - - - - - - - - - {% for order in orders %} - - - - - - - - - - - {% endfor %} - -
Date UUIDUser IDCard NumberStore CodeProduct CodeProduct QuantityOrder DateShipping Date
{{ order.date_uuid }}{{ order.user_id }}{{ order.card_number }}{{ order.store_code }}{{ order.product_code }}{{ order.product_quantity }}{{ order.order_date }}{{ order.shipping_date }}
- -
- - + From 9674fa9812397bae67beece003b66e6368b610b9 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 6 Feb 2024 17:24:49 +0000 Subject: [PATCH 03/23] Revert "delivery-date column add" This reverts commit df60a2dd38abcb633b2fcdc92808e9fe45076085. --- app.py | 5 +- templates/orders.html | 180 ++++++++++++++++-------------------------- 2 files changed, 71 insertions(+), 114 deletions(-) diff --git a/app.py b/app.py index aeeb67fc..50f4e29d 100644 --- a/app.py +++ b/app.py @@ -46,7 +46,6 @@ class Order(Base): product_quantity = Column('Product Quantity', Integer) order_date = Column('Order Date', DateTime) shipping_date = Column('Shipping Date', DateTime) - delivery_date = Column('Delivery Date', DateTime) # define routes # route to display orders @@ -86,7 +85,6 @@ def add_order(): product_quantity = request.form.get('product_quantity') order_date = request.form.get('order_date') shipping_date = request.form.get('shipping_date') - delivery_date = request.form['delivery_date'] # Create a session to interact with the database session = Session() @@ -100,8 +98,7 @@ def add_order(): product_code=product_code, product_quantity=product_quantity, order_date=order_date, - shipping_date=shipping_date, - delivery_date=delivery_date + shipping_date=shipping_date ) # Add the new order to the session and commit to the database diff --git a/templates/orders.html b/templates/orders.html index 9c58f4ba..9372e2d0 100644 --- a/templates/orders.html +++ b/templates/orders.html @@ -1,122 +1,82 @@ - + Order Management - - - + + +
-

Fictional Company Name

+

Fictional Company Name

- - + +
- +
-
-

Order List

- - - - - - - - - - - - - - - - {% for order in orders %} - - - - - - - - - - - - {% endfor %} - -
Date UUIDUser IDCard NumberStore CodeProduct CodeProduct QuantityOrder DateShipping DateDelivery Date
{{ order.date_uuid }}{{ order.user_id }}{{ order.card_number }}{{ order.store_code }}{{ order.product_code }}{{ order.product_quantity }}{{ order.order_date }}{{ order.shipping_date }}{{ order.delivery_date }}
- -
- + From b603792b2a4bbd5637cb335d9c1ab137cc60c191 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 6 Feb 2024 17:29:37 +0000 Subject: [PATCH 04/23] documentation - README.md updated --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a2c82222..03a7035f 100644 --- a/README.md +++ b/README.md @@ -62,3 +62,6 @@ To run the application, you simply need to run the `app.py` script in this repos This project is licensed under the MIT License. For more details, refer to the [LICENSE](LICENSE) file. ## Robin Winters Azure End-to-End DevOps Pipeline Project + +1. _delivery-date column:_ delivery_date added to both backend (app.py) and frontend (order.html) files. +2. _removed delivery-date column:_ delivery_date removed from both backend (app.py) and frontend (order.html) files. From 77a572472a53adb7ee1a4fea8a2e7b9bcb26331e Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 6 Feb 2024 18:34:27 +0000 Subject: [PATCH 05/23] Dockerfile create --- Dockerfile | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..b99f6912 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +# TODO: Step 1 - Use an official Python runtime as a parent image. You can use `python:3.8-slim`. +FROM python:3.8-slim +# TODO: Step 2 - Set the working directory in the container +WORKDIR /app.py +# TODO: Step 3 Copy the application files in the container +COPY . /app +# Install system dependencies and ODBC driver +RUN apt-get update && apt-get install -y \ + unixodbc unixodbc-dev odbcinst odbcinst1debian2 libpq-dev gcc && \ + apt-get install -y gnupg && \ + apt-get install -y wget && \ + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \ + wget -qO- https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list && \ + apt-get update && \ + ACCEPT_EULA=Y apt-get install -y msodbcsql18 && \ + apt-get purge -y --auto-remove wget && \ + apt-get clean + +# Install pip and setuptools +RUN pip install --upgrade pip setuptools + +# TODO: Step 4 - Install Python packages specified in requirements.txt +RUN pip install --no-cache-dir -r requirements.txt +# TODO: Step 5 - Expose port +EXPOSE 5000 +# TODO: Step 6 - Define Startup Command +CMD ["python", "app.py"] \ No newline at end of file From 2bb3946ab4bcced5cd50999c24726b43afe323a8 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 6 Feb 2024 20:16:42 +0000 Subject: [PATCH 06/23] Dockerfile bug fixed and web-app-image created --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b99f6912..53a970ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ # TODO: Step 1 - Use an official Python runtime as a parent image. You can use `python:3.8-slim`. FROM python:3.8-slim # TODO: Step 2 - Set the working directory in the container -WORKDIR /app.py +WORKDIR /app # TODO: Step 3 Copy the application files in the container -COPY . /app +COPY . . # Install system dependencies and ODBC driver RUN apt-get update && apt-get install -y \ unixodbc unixodbc-dev odbcinst odbcinst1debian2 libpq-dev gcc && \ From 0ba8070f78e63dbf939b93c2c5eb88c43e036f1e Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 6 Feb 2024 20:42:18 +0000 Subject: [PATCH 07/23] Readme.md updated docker info add --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 03a7035f..e20b40b2 100644 --- a/README.md +++ b/README.md @@ -65,3 +65,14 @@ This project is licensed under the MIT License. For more details, refer to the [ 1. _delivery-date column:_ delivery_date added to both backend (app.py) and frontend (order.html) files. 2. _removed delivery-date column:_ delivery_date removed from both backend (app.py) and frontend (order.html) files. + +### Containerization + +1. Dockerfile created based on python:3.8-slim +2. Docker image builded. + **imagename:** web-app-image + **imagetag:** 1.0 +3. Image pushed to Docker Hub + +- Image can be seen from the link below +- https://hub.docker.com/repository/docker/robinwinters/web-app-image/general From 3c7a312dd6da3be15ab24122afb75c82d87b18b9 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Wed, 7 Feb 2024 15:31:31 +0000 Subject: [PATCH 08/23] aks-terraform modules setup --- .../networking-module/.terraform.lock.hcl | 21 ++++++ aks-terraform/networking-module/main.tf | 65 +++++++++++++++++++ aks-terraform/networking-module/output.tf | 25 +++++++ aks-terraform/networking-module/variables.tf | 18 +++++ 4 files changed, 129 insertions(+) create mode 100644 aks-terraform/networking-module/.terraform.lock.hcl create mode 100644 aks-terraform/networking-module/main.tf create mode 100644 aks-terraform/networking-module/output.tf create mode 100644 aks-terraform/networking-module/variables.tf diff --git a/aks-terraform/networking-module/.terraform.lock.hcl b/aks-terraform/networking-module/.terraform.lock.hcl new file mode 100644 index 00000000..49223d74 --- /dev/null +++ b/aks-terraform/networking-module/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "3.90.0" + hashes = [ + "h1:8exKO4IgZ9qLImDCAig+cKgONFUV/gW6pIlXc9CnPVk=", + "zh:194a4342620958403beabf4d57d552133ca6ac18eef3027d6d1a98846b52f8ab", + "zh:1d8ee378aaa793e3288c9328e056763c98d0f2e8560357296bc3446fbd3b1b9d", + "zh:24aba7903e912570e36edb03f79c68028d3e254175947b588c96521f09f89df4", + "zh:27f91fbeef9d04c6382014b6c32883a96dbe91cf7a4fa07a97be5d6b03991f95", + "zh:59eeaa2f50f698bab6f36ada0e865d6b624625ff5d76309334b3c3aa366cb692", + "zh:732af42d18fa222ee88f7f97c0898d4955ae48fde5456e22af3b8f5d324c6b41", + "zh:766034eac5e6a66cf3631580956dd584b1c2e6134167302fc8b95d6b42ebf08b", + "zh:a5b2ec52abfc3fb154047af45ea692c98c646c2b5c336b12b6341a49be95025c", + "zh:bdd72f85d770fa4a2e6ebf542858341d3df7e858a4d70c0f94df758721bcd811", + "zh:e9f15f2399c667c24b3daf8a843f1cadd13bc619becf6362b46c3216b17009b1", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + "zh:f73b1ec8b372bc1480ca0d93e78914f1c9cebe81395f20273d7bc99579b84809", + ] +} diff --git a/aks-terraform/networking-module/main.tf b/aks-terraform/networking-module/main.tf new file mode 100644 index 00000000..cd8b42ba --- /dev/null +++ b/aks-terraform/networking-module/main.tf @@ -0,0 +1,65 @@ +# Create the Azure Resource Group for networking resources +resource "azurerm_resource_group" "networking" { + name = var.resource_group_name + location = var.location +} + +# Define the Virtual Network (VNet) for the AKS cluster +resource "azurerm_virtual_network" "aks_vnet" { + name = "aks-vnet" + address_space = var.vnet_address_space + location = azurerm_resource_group.networking.location + resource_group_name = azurerm_resource_group.networking.name +} + +# Define subnets within the VNet for control plane and worker nodes +resource "azurerm_subnet" "control_plane_subnet" { + name = "aks-subnet-control-plane" + resource_group_name = azurerm_resource_group.networking.name + virtual_network_name = azurerm_virtual_network.aks_vnet.name + address_prefixes = ["10.0.1.0/24"] +} + +resource "azurerm_subnet" "worker_node_subnet" { + name = "aks-node-subnet" + resource_group_name = azurerm_resource_group.networking.name + virtual_network_name = azurerm_virtual_network.aks_vnet.name + address_prefixes = ["10.0.2.0/24"] +} + +# Define Network Security Group (NSG) for the AKS subnet +resource "azurerm_network_security_group" "aks_nsg" { + name = "aks-nsg" + location = azurerm_resource_group.networking.location + resource_group_name = azurerm_resource_group.networking.name +} + +# Allow inbound traffic to kube-apiserver (TCP/443) from your public IP address +resource "azurerm_network_security_rule" "kube_apiserver" { + name = "aks-kubi-api-server" + priority = 1001 + direction = "Inbound" + access = "Allow" + protocol = "Tcp" + source_port_range = "*" + destination_port_range = "443" + source_address_prefix = "150.143.254.11" + destination_address_prefix = "*" + resource_group_name = azurerm_resource_group.networking.name + network_security_group_name = azurerm_network_security_group.aks_nsg.name +} + +# Allow inbound traffic for SSH (TCP/22) - Optional +resource "azurerm_network_security_rule" "ssh" { + name = "aks-ssh" + priority = 1002 + direction = "Inbound" + access = "Allow" + protocol = "Tcp" + source_port_range = "*" + destination_port_range = "22" + source_address_prefix = "150.143.254.11" + destination_address_prefix = "*" + resource_group_name = azurerm_resource_group.networking.name + network_security_group_name = azurerm_network_security_group.aks_nsg.name +} diff --git a/aks-terraform/networking-module/output.tf b/aks-terraform/networking-module/output.tf new file mode 100644 index 00000000..14d2da4b --- /dev/null +++ b/aks-terraform/networking-module/output.tf @@ -0,0 +1,25 @@ +output "vnet_id" { + description = "ID of the Virtual Network (VNet)." + value = azurerm_virtual_network.aks_vnet.id +} + +output "control_plane_subnet_id" { + description = "ID of the control plane subnet." + value = azurerm_subnet.control_plane_subnet.id +} + +output "worker_node_subnet_id" { + description = "ID of the worker node subnet." + value = azurerm_subnet.worker_node_subnet.id +} + +output "resource_group_name" { + description = "Name of the Azure Resource Group for networking resources." + value = azurerm_resource_group.networking.name +} + +# Define more output variables as needed... +output "aks_nsg_id" { + description = "ID of the Network Security Group (NSG) for AKS." + value = azurerm_network_security_group.aks_nsg.id +} diff --git a/aks-terraform/networking-module/variables.tf b/aks-terraform/networking-module/variables.tf new file mode 100644 index 00000000..d26938e1 --- /dev/null +++ b/aks-terraform/networking-module/variables.tf @@ -0,0 +1,18 @@ +variable "resource_group_name" { + description = "The Azure resource group where the networking resources will be created in" + type = string + default = "azure-devops-project-resource-group" + +} + +variable "location" { + description = "The Azure region where the networking resources will be deployed." + type = string + default = "UK South" +} + +variable "vnet_address_space" { + description = "Address space for the Virtual Network (VNet)." + type = list(string) + default = ["10.0.0.0/16"] +} From 10f0f9c8aff0e0d7071d2212cd6077de4b6125cd Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Wed, 7 Feb 2024 16:06:43 +0000 Subject: [PATCH 09/23] terraform documentation --- .DS_Store | Bin 0 -> 6148 bytes .gitignore | 2 ++ README.md | 46 ++++++++++++++++++++++++++++++++++++++++ aks-terraform/.DS_Store | Bin 0 -> 6148 bytes 4 files changed, 48 insertions(+) create mode 100644 .DS_Store create mode 100644 .gitignore create mode 100644 aks-terraform/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c24bb85fc06f039a35800e9bdfbc883eb3393c1b GIT binary patch literal 6148 zcmeHK&ubGw6n>M&WYbc}L7^96!E22%l|u0n)8tT44_(oNO59Dhx^%M>vzw+80y&EQ zD}q=5lKwBA^m{W?*iE#jA}aI3%=c#Iee>gEXC^~LqB9-dC#n;XgTz?gMD`2gc1~+n zGBwN-s*j99n&9Wt$y&6nunJfO{x$`8?`~tio>EG8DZhUu_VMT_mV+Rc0itk3h>yUF zAI7d`2D5Z*nBRhN9Hm*ac_B(0Ol5nC3(J(~Fs~1r+l(UYUCc{*5J>B5coLaxWGoQEio4f8_>tM0#&JSAf zAMEWf7B%PAoqG?D`={|Jk)N;vn84YkY}?=^e1>y{HfP=>iDmK@QQSiXDvt4MAblw6 zMqkn1(6YfJ+N3T?8bEbEFHb0>=HSe}8RwQE+ueD}`QHTP?~vkF)R{(S}bd~lH%+Xj~!)zN`WJpq7a zR4aqeZwcnO2HOUg8qoq1nhMlZVV)R5(^2o5xVFKiMolMS9v{MtEX)f4H6s2Ej20% kGIJd(hp*xtBxPuG*#Wi5gg5S?}0MkWN@(m;-aUem^LN+9&2y6K_Usw9V|I8r215k(s$xjGnw&gqZI zHNT{Pr+u@#E)8x&LZFl|1G8^-cV=Y0k@tg$)M%1y5%r14gEDq{X#OBP&$=KTH_`CN@INxZwR=htouXPa<<%1_+;sC6FC?I_;Q(q`O$_Er~lloe@d0tNs&}0HnbC7&+Co* z>(l9QXRzUK4|iu9{&aT;`_=Z&Y}WJEo^QVXFh0%C3VmVNAcg;fkyVFt_y*$^Tzw78 zBG<(Uyyuzb83cs^VL%wTKLc)M@mB7iN-_uo!oUM#fY%2f${09oEt;hRjky8<`50*g zHXjc;#&;MvY%O92qHHM8hAMZ(P&ORnzVizlwiazTDR=o$?#asCP?UK(^83b}RA5nB zVL%wT&cKrG_Idw*_xJn%^&sg91H! Date: Thu, 8 Feb 2024 14:49:59 +0000 Subject: [PATCH 10/23] aks-cluster modules completed, and initialized --- .../aks-cluster-module/.terraform.lock.hcl | 21 +++++++ aks-terraform/aks-cluster-module/main.tf | 21 +++++++ aks-terraform/aks-cluster-module/output.tf | 14 +++++ aks-terraform/aks-cluster-module/variables.tf | 59 +++++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 aks-terraform/aks-cluster-module/.terraform.lock.hcl create mode 100644 aks-terraform/aks-cluster-module/main.tf create mode 100644 aks-terraform/aks-cluster-module/output.tf create mode 100644 aks-terraform/aks-cluster-module/variables.tf diff --git a/aks-terraform/aks-cluster-module/.terraform.lock.hcl b/aks-terraform/aks-cluster-module/.terraform.lock.hcl new file mode 100644 index 00000000..49223d74 --- /dev/null +++ b/aks-terraform/aks-cluster-module/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "3.90.0" + hashes = [ + "h1:8exKO4IgZ9qLImDCAig+cKgONFUV/gW6pIlXc9CnPVk=", + "zh:194a4342620958403beabf4d57d552133ca6ac18eef3027d6d1a98846b52f8ab", + "zh:1d8ee378aaa793e3288c9328e056763c98d0f2e8560357296bc3446fbd3b1b9d", + "zh:24aba7903e912570e36edb03f79c68028d3e254175947b588c96521f09f89df4", + "zh:27f91fbeef9d04c6382014b6c32883a96dbe91cf7a4fa07a97be5d6b03991f95", + "zh:59eeaa2f50f698bab6f36ada0e865d6b624625ff5d76309334b3c3aa366cb692", + "zh:732af42d18fa222ee88f7f97c0898d4955ae48fde5456e22af3b8f5d324c6b41", + "zh:766034eac5e6a66cf3631580956dd584b1c2e6134167302fc8b95d6b42ebf08b", + "zh:a5b2ec52abfc3fb154047af45ea692c98c646c2b5c336b12b6341a49be95025c", + "zh:bdd72f85d770fa4a2e6ebf542858341d3df7e858a4d70c0f94df758721bcd811", + "zh:e9f15f2399c667c24b3daf8a843f1cadd13bc619becf6362b46c3216b17009b1", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + "zh:f73b1ec8b372bc1480ca0d93e78914f1c9cebe81395f20273d7bc99579b84809", + ] +} diff --git a/aks-terraform/aks-cluster-module/main.tf b/aks-terraform/aks-cluster-module/main.tf new file mode 100644 index 00000000..d1094a3b --- /dev/null +++ b/aks-terraform/aks-cluster-module/main.tf @@ -0,0 +1,21 @@ +resource "azurerm_kubernetes_cluster" "aks_cluster" { + name = var.aks_cluster_name + location = var.cluster_location + resource_group_name = var.resource_group_name + dns_prefix = var.dns_prefix + kubernetes_version = var.kubernetes_version + + default_node_pool { + name = "default" + node_count = 1 + vm_size = "Standard_DS2_v2" + enable_auto_scaling = true + min_count = 1 + max_count = 3 + } + + service_principal { + client_id = var.service_principal_client_id + client_secret = var.service_principal_client_secret + } +} diff --git a/aks-terraform/aks-cluster-module/output.tf b/aks-terraform/aks-cluster-module/output.tf new file mode 100644 index 00000000..e4e9e97f --- /dev/null +++ b/aks-terraform/aks-cluster-module/output.tf @@ -0,0 +1,14 @@ +output "aks_cluster_name" { + description = "Name of the AKS cluster." + value = azurerm_kubernetes_cluster.aks_cluster.name +} + +output "aks_cluster_id" { + description = "ID of the AKS cluster." + value = azurerm_kubernetes_cluster.aks_cluster.id +} + +output "aks_kubeconfig" { + description = "Kubeconfig file for accessing the AKS cluster." + value = azurerm_kubernetes_cluster.aks_cluster.kube_config_raw +} diff --git a/aks-terraform/aks-cluster-module/variables.tf b/aks-terraform/aks-cluster-module/variables.tf new file mode 100644 index 00000000..f69678e0 --- /dev/null +++ b/aks-terraform/aks-cluster-module/variables.tf @@ -0,0 +1,59 @@ +# aks-cluster/variables.tf + +variable "aks_cluster_name" { + description = "The name of the AKS cluster that will be created" + type = string +} + +variable "cluster_location" { + description = "The Azure region where the AKS cluster will be created" + type = string + default = "UK South" +} + +variable "dns_prefix" { + description = "DNS prefix for the AKS cluster, which is used to create a unique DNS name for the cluster." + type = string +} + +variable "kubernetes_version" { + description = "The version of Kubernetes to be used for the AKS cluster." + type = string +} + +variable "service_principal_client_id" { + description = "The lient ID of the service principal used for authenticating and managing the AKS cluster." + type = string +} + +variable "service_principal_client_secret" { + description = "The Client Secret associated with the service principal used for AKS cluster authentication." + type = string +} + +# Input variables from the networking module +variable "resource_group_name" { + description = "Name of the Azure Resource Group for networking resources." + type = string + +} + +variable "vnet_id" { + description = "ID of the Virtual Network (VNet)." + type = string + +} + + +variable "control_plane_subnet_id" { + description = "ID of the control plane subnet." + type = string + +} + +variable "worker_node_subnet_id" { + description = "ID of the worker node subnet." + type = string + +} + From 5a1d476bdc5915f93871deab22d3800a078b4297 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Thu, 8 Feb 2024 15:23:37 +0000 Subject: [PATCH 11/23] README.md updated aks-cluster-module documentation --- README.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/README.md b/README.md index 4487e829..a703112c 100644 --- a/README.md +++ b/README.md @@ -122,3 +122,48 @@ Terraform CLI installed 5. Apply Terraform Changes: Run terraform apply to apply the Terraform changes and deploy networking resources to Azure. - \*\*git can only support files of a certain size & that the .terraform is larger so has to be avoided + +### AKS Cluster steps with Terraform + +1. Clone the repository + +``` +git clone https://github.com/robinucar/Web-App-DevOps-Project.git +cd Web-App-Devops-Project +cd aks-terraform +cd aks-cluster-module + +``` + +2. Define Input Variables: + + - aks_cluster_name: The name of the AKS cluster. + - cluster_location: The Azure region where the AKS cluster will be created. + - dns_prefix: DNS prefix for the AKS cluster. + - kubernetes_version: The version of Kubernetes to be used. + - service_principal_client_id: Client ID of the service principal used for authentication. + - service_principal_client_secret: Client Secret associated with the service principal. + - resource_group_name: Name of the Azure Resource Group for networking resources. + - vnet_id: ID of the Virtual Network (VNet). + - control_plane_subnet_id: ID of the control plane subnet. + - worker_node_subnet_id: ID of the worker node subnet. + +3. Define AKS Cluster Configuration: + + - Update the main.tf file to define the AKS cluster configuration using the azurerm_kubernetes_cluster resource block. Specify the desired configuration options such as name, location, DNS prefix, Kubernetes version, and service principal details. + +4. Define Output Variables: + Update the output.tf file to define output variables for the AKS cluster. The output variables include: + + - aks_cluster_name: Name of the AKS cluster. + - aks_cluster_id: ID of the AKS cluster. + - aks_kubeconfig: Kubeconfig file for accessing the AKS cluster. + +5. Initialize Terraform: + + - Run the following command to initialize Terraform and download the required provider plugins: + + ``` + terraform init + + ``` From 3b94b14caa436e554837700bcbc70d8b1daa2cd6 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Fri, 9 Feb 2024 16:10:58 +0000 Subject: [PATCH 12/23] main project configuration by terraform --- .gitignore | 3 +- aks-terraform/.terraform.lock.hcl | 21 +++++++++ aks-terraform/aks-cluster-module/main.tf | 1 + aks-terraform/aks-cluster-module/variables.tf | 5 ++ aks-terraform/kubeconfig | 7 +++ aks-terraform/main.tf | 47 +++++++++++++++++++ aks-terraform/variables.tf | 13 +++++ kubeconfig | 20 ++++++++ 8 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 aks-terraform/.terraform.lock.hcl create mode 100644 aks-terraform/kubeconfig create mode 100644 aks-terraform/main.tf create mode 100644 aks-terraform/variables.tf create mode 100644 kubeconfig diff --git a/.gitignore b/.gitignore index b47b2da0..ce158fbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.terraform/ -*terraform.tfstate \ No newline at end of file +*terraform.tfstate +aks-terraform/secrets.tfvars \ No newline at end of file diff --git a/aks-terraform/.terraform.lock.hcl b/aks-terraform/.terraform.lock.hcl new file mode 100644 index 00000000..2ef938a0 --- /dev/null +++ b/aks-terraform/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "3.0.0" + constraints = "3.0.0" + hashes = [ + "h1:zABIsWI7y89dI3MIHPjLwjzp2VN87f3fOzEypuGI/OA=", + "zh:23a039a606cc194594f7c15cd8deef15c5183e11a40e96adee2f7317dbfa18aa", + "zh:414890618efc6caccf60b81fcce18a7e69a6d81599678d24f538d53726f49c57", + "zh:7c9a5d3c416766c6f624e186ee2f5b216dd5a9ffef40bfea42ceccf2b217e0d3", + "zh:82bbeaa6e10d0834d05c2ea55182ce6e147299b1257b445327ff6ff9dfdff3e7", + "zh:96d5f7737a3d10cc25815f1a220ef8ffe3641ee3229c7738804dc8cff71663fa", + "zh:ac359915e11a4fa234476cca5e701631ba563d8192dd3f1d31b51674411a0394", + "zh:bdf07291bb4f41ba304f12b298a066ac70925b3749c01aa90276727cfb0b2662", + "zh:cf7b4f9c313155b7d5c98e0cbbcfec40c789fccf431875b4db630e9e58f3ae6c", + "zh:d1fd0d3a1017427ab6f4fadb3310b4b488ab020a541778653c03c51e5e1df809", + "zh:db946fc8cfc15abe18314dc3dbcbb630243dc34c29f81a728e1397d797dca6a0", + "zh:e07f73c2745b56043d8b779f2987eb1a5f812645db6ac8fa7878ad23f6a79459", + ] +} diff --git a/aks-terraform/aks-cluster-module/main.tf b/aks-terraform/aks-cluster-module/main.tf index d1094a3b..0fd5a23d 100644 --- a/aks-terraform/aks-cluster-module/main.tf +++ b/aks-terraform/aks-cluster-module/main.tf @@ -5,6 +5,7 @@ resource "azurerm_kubernetes_cluster" "aks_cluster" { dns_prefix = var.dns_prefix kubernetes_version = var.kubernetes_version + default_node_pool { name = "default" node_count = 1 diff --git a/aks-terraform/aks-cluster-module/variables.tf b/aks-terraform/aks-cluster-module/variables.tf index f69678e0..aeea5024 100644 --- a/aks-terraform/aks-cluster-module/variables.tf +++ b/aks-terraform/aks-cluster-module/variables.tf @@ -57,3 +57,8 @@ variable "worker_node_subnet_id" { } +variable "aks_nsg_id" { + description = "ID of the Network Security Group (NSG) for AKS." + type = string + +} diff --git a/aks-terraform/kubeconfig b/aks-terraform/kubeconfig new file mode 100644 index 00000000..37e62955 --- /dev/null +++ b/aks-terraform/kubeconfig @@ -0,0 +1,7 @@ +╷ +│ Warning: No outputs found +│  +│ The state file either has no outputs defined, or all the defined outputs are empty. Please define an output in your configuration with the +│ `output` keyword and run `terraform refresh` for it to become available. If you are using interpolation, please verify the interpolated value +│ is not empty. You can use the `terraform console` command to assist. +╵ diff --git a/aks-terraform/main.tf b/aks-terraform/main.tf new file mode 100644 index 00000000..1747ca1a --- /dev/null +++ b/aks-terraform/main.tf @@ -0,0 +1,47 @@ +terraform { + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "=3.0.0" + } + } +} + +provider "azurerm" { + features {} + client_id = var.client_id + client_secret = var.client_secret + subscription_id = "88de54f1-2c72-4d16-9eb0-beb8d6da1d5a" + tenant_id = "47d4542c-f112-47f4-92c7-a838d8a5e8ef" +} + +module "networking" { + source = "./networking-module" + + # Input variables for the networking module + resource_group_name = "web-app-networking-resource-group" + location = "UK South" + vnet_address_space = ["10.0.0.0/16"] + + # Define more input variables as needed... +} + +module "aks_cluster" { + source = "./aks-cluster-module" + + # Input variables for the AKS cluster module + aks_cluster_name = "terraform-aks-cluster" + cluster_location = "UK South" + dns_prefix = "myaks-project" + kubernetes_version = "1.26.6" # Adjust the version as needed + service_principal_client_id = var.client_id + service_principal_client_secret = var.client_secret + # Input variables referencing outputs from the networking module + resource_group_name = module.networking.resource_group_name + vnet_id = module.networking.vnet_id + control_plane_subnet_id = module.networking.control_plane_subnet_id + worker_node_subnet_id = module.networking.worker_node_subnet_id + aks_nsg_id = module.networking.aks_nsg_id + + # Define more input variables as needed... +} diff --git a/aks-terraform/variables.tf b/aks-terraform/variables.tf new file mode 100644 index 00000000..a18918db --- /dev/null +++ b/aks-terraform/variables.tf @@ -0,0 +1,13 @@ +variable "client_id" { + description = "Access key for the provider" + type = string + sensitive = true + +} + +variable "client_secret" { + description = "Secret key for the provider" + type = string + sensitive = true + +} diff --git a/kubeconfig b/kubeconfig new file mode 100644 index 00000000..692a8879 --- /dev/null +++ b/kubeconfig @@ -0,0 +1,20 @@ +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUU2RENDQXRDZ0F3SUJBZ0lRYkRjKzBkM0tsYmVuQ2hDdWNmMFNVVEFOQmdrcWhraUc5dzBCQVFzRkFEQU4KTVFzd0NRWURWUVFERXdKallUQWdGdzB5TkRBeU1Ea3hORFE0TWpSYUdBOHlNRFUwTURJd09URTBOVGd5TkZvdwpEVEVMTUFrR0ExVUVBeE1DWTJFd2dnSWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUNEd0F3Z2dJS0FvSUNBUURMCi8wYncrQ3pSQktPd1hNdU9veklYdFRrSG5wVjhTc3hWWDk5T3ZUYkkvQzE4dDdwOURxWTA0ZzRCVTV1b1pXWjAKTnVMOEkzWEM5ZlI0dmZ1dkNXK0pvNW1uTmE1ZzdEcUNMV05iQ1hyRzZOVnhId0JsTUpwWHFtOGNDOER3UUVTRQpiSjlrM3JOMzM3VXNtNm1KNTc4RU44QkJ4aFdkYXRQU0ZnWmVJT2hJZjk2RVoxMHdhMjNoQlorUDkzbGlCODBoCm0yUHVraGZsUlFQSzMwZmc3d0pGcFRsVzVHNVkwM0JXU0dZZlo2QzVlWWE0V1J1ZDdvTlZIa1JkeGMxK1FMWjgKajcrNWJia1ptZmtnaDliUlVxWElzVStKVW92a3BhaGNZWWVTZDQ4OTJqbEhoTGZkK3huT01lbi8yNXJNSWQzNQoza2FabGhibUZpaGRLMy9lRVhFaUg3eG5KR3BYUFpPa2d3TUJHeDhiT2t1d1g2Z2lhdHBWcmxnK1QxYXdiWE9ECm1ZU3B5WW55elZ4Mmp5Y3RtQytnNzVJR3hDY2RBU0NYUXdwZDRlakpVU2Z1WTlmOHF4T090VWI5bFV0VXJQYmMKTGVadUVONmM0WUozbHpHNlFYaXZvM1l6cDZrWUd3Y2RuYUQwWk1sUXlyRjcySzUyeHdXZGd3ZHd6L1ZEOHI2OAowcVJBY3htZ2Q5Z3JMcjU3c2h4cDFCT0ptdkpSei9lYkpwbUFqcGxPTG5NVkFqb2FLV2ZZazd0SmFqWW5NNTdDCjBYS1lWL1ljMU4zWTlVNjgyVXJYcU5pVk41MHdTM3oyczEyT1F1UVdnY21ESERaMHJLWXdIOGhhN2drTmd6SWEKUS9LSkUvblJjS1k4UkVSSkVRakpOQnp0Q2JQSjc4TlZUQWJEUGRUQ1hRSURBUUFCbzBJd1FEQU9CZ05WSFE4QgpBZjhFQkFNQ0FxUXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QWRCZ05WSFE0RUZnUVVBS1oyMEhiUW5YcENsK2RaCkVSaVRnUDV3SW1jd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHWGFoNTZYWWxwb2tlaGtTSE91YkE2c2h4dWMKSzVYb0lBUTNES003SzRUcTlrbFpxZVUxSHQ1eDkrcWxJdXVCNTJGblg4SmRpd2xQa01DcjAxdHQ2eS92NEhkRgpFcmgrdjNPTGlvcEM5V3QvVDNjVzEvOExwdEVFVGJ5dTI3empSd1kvVHczd2JucVo5WUhCU3E3REpzQlEzTktPCkliUDdHRG9QbjNhazQ0OFVPT1dvd3B1ZGE2azllbHF1YlV4MzNScXNhQ3lQNFRmS29BRkdJc1FycHV4WWlrL1UKc0l2VUJSMXVwMEQyVkp0WDJPOEgzc1k5TkdlWHJoRDB2MHpvZXV1T3ZBZjBTRU0wTzBHQUVYQlo1clhJdEV1MApoY2l2eXp4VkhpK2xhT2xBZmo5UUxKSGhQVDl5K0srNm42UWRnbkw4OWRQSmNCeEV5YmtiVGwxcDZFUHJvSE5VCjB4Z0VwVmY2NW9rejlpRElnall0YmNucEJIODAvOTBRSFZjbnBIMnZKQm93N1FOMm5SL2htbWcxYmh1Sm9VdWYKSG1HcEMyakE2TWg1T2ViVk9yVXB5eXMvTEpidFRsbTllaEozR0ZzUnVQVFh1TlgvZXRocUxMcVc1MENXcmg4bwp6UDFkRTN3RHlhVWw3OWtGYitaRmVveWxrb3k1TnZlTEV2a21DcTZUcDAveEt5WXFIazJrOUkrbktEb3JSbmxHClpDUXl1cm5aQVBLT2F1eE1PVm56OEd1MUkzeDVsSC8rSWdYSzJCcTZubWtNMXd3UjZLRTJ0WDN2U2hGWWJScDYKNTJ4UDMvRmVscGJvQlZ6SVZ3TFhOcHd4Smg0WTdEemFpNld4bHgrQjdYUU13ZDNKdzJGWFRJRm1jbTcvTTNGMwpSVjQzK1k5RzVtTkhzdUVkCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + server: https://myaks-project-jy4wy2ko.hcp.uksouth.azmk8s.io:443 + name: terraform-aks-cluster +contexts: +- context: + cluster: terraform-aks-cluster + user: clusterUser_web-app-networking-resource-group_terraform-aks-cluster + name: terraform-aks-cluster +current-context: terraform-aks-cluster +kind: Config +preferences: {} +users: +- name: clusterUser_web-app-networking-resource-group_terraform-aks-cluster + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZIakNDQXdhZ0F3SUJBZ0lSQU01Qi96R2RWNHZIanQva1U3UnJCa2d3RFFZSktvWklodmNOQVFFTEJRQXcKRFRFTE1Ba0dBMVVFQXhNQ1kyRXdIaGNOTWpRd01qQTVNVFEwT0RJMVdoY05Nall3TWpBNU1UUTFPREkxV2pBdwpNUmN3RlFZRFZRUUtFdzV6ZVhOMFpXMDZiV0Z6ZEdWeWN6RVZNQk1HQTFVRUF4TU1iV0Z6ZEdWeVkyeHBaVzUwCk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBeTJEeGFDUkdPZjFkOVdZdWxtM3QKWllZbWtrMCsyeG10UmtVdE51WFpjV1Jhc0RjWmt6STBiemNCTk9WS1RNZDFmMVlrU3l6S1JLekFObkRBRWxHMwpQVWgranhvaFFPUkF2d21NT2dQZnN6clE4VXc2dmhTNG9hYUw4Zm11QVVLWjFFMUlwSG5YQmU1eFBRcityMFJFCklrcWRRNnhlMnYreUZiby9LQ3NLYnlkelZrc21XcTFienNLS0NINWp3UHc5b3U0Q0hhWlVqN3lmaFBOSGI1dS8KTlpnUHFSckJobm8vNHV4YnJhRTkwZ2RtTEVML2ZGQjVuOGZLTFZsY21mVmxEcW9tTG8xTk5xL1o4ZGVmNmdpSApSZVhQK05qa0tYVTI5RThibXVuU2RBZ2llcFJvdjVzb1UvdjNkZGtMU2d6Y20yKzAxZ2xSRGk1LzdzMm4wOW0xCmkwSVVWd3VDb3dnaDl5UEtmMURIWW9wWCtTaEl6SDdNWVlTSktjMVRuMWwra3FrejAwakljTEwraGRDckRjWGcKcWIyR3NvT2pUdzQzT0xCYUNYTW5rYm1TdENwWVBGRDMwY05uTlNqSmlDVm1YdFVzdmswQmthNmhVaVdhWmdvNwpDNDd6WmZhSnMyTUo2bXNITTBlQWJxL0h5N09GOUIrRlB6Rk9wd0ZyL2xsRE1OSnZLaDRaSGhTUkVqaVorMHZ5CnJodnNINnpHMmR3bllPTHFHVXBSNVh6YURKS0s5alFhQTBmU0s3Q3c1aDFieGlKK0dldHAvdGg5NDl1dHE2VkEKTGI0VUtYNjdrS2FhSWFxdy9vNWNEd3JRWWNaTVJjUzFJUHpaZWFscGFrNmRLWFVmREFNelVrcGNXcEtiSTJ0bApZbEllQ3NQbnVGa3BUN1lWTFhwb1pITUNBd0VBQWFOV01GUXdEZ1lEVlIwUEFRSC9CQVFEQWdXZ01CTUdBMVVkCkpRUU1NQW9HQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQ01BQXdId1lEVlIwakJCZ3dGb0FVQUtaMjBIYlEKblhwQ2wrZFpFUmlUZ1A1d0ltY3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRnlBdm5DdmtxaW5zbUJ4NlJDRgpZdXh6cHNCT1E3b3hERjErQ25VRExRbmZCY2hSQTFLUWxKcWZrbnVXZGxLb3lzb21qNHRtK0xucGk4WkpBOXRKClA2cmxaNjJSUS82VGhoK3EraTBqQ2ZmeVRlY3gyTUJwNERCVEI2K00wcEh6eFRXR1FZb1dMbGt3azd5cEkvQkYKT2o1ZElGN1R6dWxoNHN2WWU5UjhoRjBtTWhaVEM4aHZIeEwxWFZmK3FSaEdXRFVpVDYxcnNpR2QwalN1N2I4TwpPd0RqZ2laVExyMWU4UGpvTk1zSENyeDNiMzJrbGE2TklYa2V0d3lETW5wV3ViV0RoNWg0YXcxTDdqa0ZMOE1UCjJ1dThWbFNxNk1NV0M4YlJta1dCOHU0WWtqbkFwdys3T3R0K3grMkpUdFZ1TEc4UVRlaGc1dEF6NnhUWDMyYysKMUtBNUFldzltdEhJRjQreVFTeXczbDhVVFIyWFNhM2x0MlkzOTB0TzVPZTFHY3BKMEJZTGZzdXJ2ZGtML3hDcQo0SWVoenFLSDRKTGtRT1F5Wjl5bFYvNy9aY051RHJVcWdRVVorcXRKNXFkRHNrVTkrNk5PUFh2em9Lbmg1UWpZCnNQSnJjK3FTbStlbVgvNzNjeXRidlFMV1RtaGkzWGtDN3BCcjRGTFhsUWkyQ3o1eFpzaEw2VlVqVGZSQXZJUlgKRUZvejE3ME92VDFGam1tcWZSSEdzVFVuSVBJckJJazkvV2FuT1h6dTBnYzMrVGxMUjd2RTlWbHZrUXpBanhFRwpnbXM3REUycTRETXFUSGN0YXBRZDByOUlET0xNUHFjbThNOExIeGd5RitmdExvcTIybWRVeXNTcWhRTjYwaWdmCm1OSjNDTTZ3L0xiU1ptYi9QajJtd1dBTQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBeTJEeGFDUkdPZjFkOVdZdWxtM3RaWVlta2swKzJ4bXRSa1V0TnVYWmNXUmFzRGNaCmt6STBiemNCTk9WS1RNZDFmMVlrU3l6S1JLekFObkRBRWxHM1BVaCtqeG9oUU9SQXZ3bU1PZ1Bmc3pyUThVdzYKdmhTNG9hYUw4Zm11QVVLWjFFMUlwSG5YQmU1eFBRcityMFJFSWtxZFE2eGUydit5RmJvL0tDc0tieWR6VmtzbQpXcTFienNLS0NINWp3UHc5b3U0Q0hhWlVqN3lmaFBOSGI1dS9OWmdQcVJyQmhuby80dXhicmFFOTBnZG1MRUwvCmZGQjVuOGZLTFZsY21mVmxEcW9tTG8xTk5xL1o4ZGVmNmdpSFJlWFArTmprS1hVMjlFOGJtdW5TZEFnaWVwUm8KdjVzb1UvdjNkZGtMU2d6Y20yKzAxZ2xSRGk1LzdzMm4wOW0xaTBJVVZ3dUNvd2doOXlQS2YxREhZb3BYK1NoSQp6SDdNWVlTSktjMVRuMWwra3FrejAwakljTEwraGRDckRjWGdxYjJHc29PalR3NDNPTEJhQ1hNbmtibVN0Q3BZClBGRDMwY05uTlNqSmlDVm1YdFVzdmswQmthNmhVaVdhWmdvN0M0N3paZmFKczJNSjZtc0hNMGVBYnEvSHk3T0YKOUIrRlB6Rk9wd0ZyL2xsRE1OSnZLaDRaSGhTUkVqaVorMHZ5cmh2c0g2ekcyZHduWU9McUdVcFI1WHphREpLSwo5alFhQTBmU0s3Q3c1aDFieGlKK0dldHAvdGg5NDl1dHE2VkFMYjRVS1g2N2tLYWFJYXF3L281Y0R3clFZY1pNClJjUzFJUHpaZWFscGFrNmRLWFVmREFNelVrcGNXcEtiSTJ0bFlsSWVDc1BudUZrcFQ3WVZMWHBvWkhNQ0F3RUEKQVFLQ0FnQVNXeGFPdXE5bjduazdlOVI2bVVOUzVXKzN4cWNFcVdXZE1RTXFzRVlXMk9MaWdxYVpSVys4RmUvUwo4VnJxWVJvMnV2U2RvRlpGS241U3E0eDZXc3U2Q1QvNjlIWEo0SkFEYmY0dEFrcC9aN0NTQnJwS2k1NDZZTWpDCnR6RkFSZDJTYnNNK3JReCtLWTRvMzBRclYzTDYwVmN1VTNGZ1BMRzdDa3RHK2RPQVFzUkRKcGM0bWVydVYxcVQKOTZ4VEw3RDBjcHpZUmpuZG16MmVoMEtNVFRkTnhBS3QxWTlmN3NxelZYZlV6UGZDYkE2SnNpWlM5d1J6S2xvUwpDNzJ5MjVZYVk3cjhlcDVjY0RTd2dqQ1pzOWxac3FzNW40SEFTQ2NFbDlzNitSMllnVjl6UnMvSmMxeUpiL1ZlCnVvOHRTTW5rY1ltVnc5Ti8veXhteGtMK2VPak1sbTRiK1A0SUEvR0RUODRLT2NPUXdVaFNGam4zTXEvZTNVMS8KTm9CVEgwdnBqSEhCditzaVA1T2JYS2dKbFJDb0J6QzJUWkRLaDF5TGM2M25nQ2RMZGhjTzVJalVtc2pKbE1wZgozYmFQOHFjbitJNEw2K3NUT3pTdWNnenJURTlOQWl2aUlaS2ZPcDFwRFNETEJSbjFGbGY1Szl1cEkrdjZyWFFpCjFkLzI3M3lRbHF6UlN1VjJjMjhZeVVxR3pObFZRdk5CV09tRndrTW42RnlSb0ZsZVlpQW1WNTE2dzMzamtwbjEKN0FJM1pBOEZZd1VSQjZKTWh4cmdIZ2lLSHh4d3Nka2dTQ0FaZnlRaDk1bkNkTUFsRXlDdjZxbzdKck1GVDJwVApPMGs3eVVGQlNlV3hLS1dNTkRNV0IzbVc4Um9qRmZaVTM2ZUZzZklsdUljczBNSzlvUUtDQVFFQS9DOVV6cUlQCm1Tb2hSQkJLa1RVeGZLMHN4cStoM3NBYlg5cUg1bVNaU1JDZjhvUklNZXVLSzVsNWl2bzJ6amh2aDFwZlZZbDEKVWFsZ3RuOWJNZDQvNGprVGpYYUxGSVhtWmpzYUVCUE5rOHY0MHpSaVhDVElPNmg1MytsZ0t3YW1UMEo0SXhpUQpDang4RFhVWTVxeDU3eFdaWlgrV1VmeGV2YnQxUXhrZ3J2aitaVE02Y0hQMUJJVUQvclgvUWV1QnpkTG5qbmNZCmZTQTRmK2E2eFFXL1ExZlk4ODhmSkpINmpWMlZ4Rk9XalE1eS95eEtseVdxYUVpZ2dtdkczMGVxRGZYNTZKVm0KeldIS0dUUk1oYlFXd0RrbDczSnc3Ym51bXlJK3J5bGRYOE9Bc2gvZk1LR21HbVMrQXQxdDU3Z3A3K2FLKzhkaQpLdU54clZBbk1GeEtjUUtDQVFFQXpuU1grMFBRNzJaUlZtS21VckFwZkdxNmNKSWpCZUhoRTlTbkxxc1hPQ2lwCjhlRVhIUTZVRittSHNkOThLWFk4TllrQ1J6TDk5SUw5RHB6MHRrZlNVb0IrVHovb0M0V1lpM0M0SEtFNmxNSVAKSFVkcEpJbm1UZmk2NVpnMVlobWlnelpZOTR4SWVIKzNEV0ZHNnU5TS9MajRHY3NkejJQNTk4SnhmbjZoUlRXNAo3Zzk5UWtkUWxPUng3UTR0cWpObWRmcnBGUTRvVE1SLzRFbWM0L05aeXZMczNpVjRQR0pndlB4Zi8zejViTXQzClVXK3J1UTBrSHQ0c3JJcm1ZOG14cnBGTjlVTDEvU2lLVGNRYXlzaUdHNE04ajAyUnpXaXh2RHJGNFJXaUdPcVoKOUJPdjhoYms4Q2tHOWxTbW83TkZjeW9XNmxmdm9YS0EwdGoyTVNNbkl3S0NBUUFOM3ppbUNTb2NmY0hJc2JDNApYaG16eHY3Z2l3YTNidy9TYlAzdXdYZmhHZ1lDWEI1d2lJbFlMcUFOOGdlVHZtejhJQStBY0FoQkRyVWdOTTg2ClpnUlRtRm9uL081WG1hbjcwNkp5WWZSNy9jdFpLdGVDUkErem9HZmIxa1dRK0ZPcnBuZGZUdG1WaHBBNFdVbWUKWHJ4eVYxalJ5WHZtVktDTmhVTkZCcHZTcENXeVFXZ2tpV3hmN0VVMC9LUG01MktEaE9keDRjRTZHTXlpMUhsUApueXBQTlFUZEhIYVZGMmFWNGlENzVMRXlYeW9hT1VCOUlmaEd0a0FHREpHcTlKRTVKVit5MkkwSUhTbjF5dmV1Cm55SmxQbitFdFdIYTRkQnJQaTMraXFMMVFwYlF0WW9jYmJmcVdjSk4vQW93cGVQQXE0alhvcmNXcnQ0dzcyakkKY3pzeEFvSUJBR2c1aWlSSjV5ZUVjdGwyY2RyYW5nYjJabXJBQzdoRGdQb2U1OHR5aWdWSzJnaUhCc0VmZy9uUwpaak9RekVDdU5OVWQ5cTEwKzZtOW12ME9sYWVUK0lTMzQ0d2tpZ09QRFNTUDRoSnAvb1hzdGU2bEIxcHYxM2xUCmNSN0pTV0hkNlNIdWhObHIwNFlwaTRMUXNobVdkem82TXQzcW9ZRDZTczRlTm1lU2k5M0JzanRVVEhyeVA2YjYKOE55b3hMcmd1Z0FqakJtYURSUThPd1pDZzFhOG1uOFBSaThib1doeWpiMjZkc2duRWxBdkkyeFVRTS9wNTJ0Qgo1REd5Nlg1RTYxTmlmWVdzcVR5Rmc5U2doSm9NdzA4T1lMdERnTEMvQXNNd3RJYmVBZmdzTDA1OXhkd2tYSzAxCk9ST1FScFBydzhyUTI4S3daQVFRSnlMS2J2YjlkUnNDZ2dFQkFOQ3lhODU0Sk0rbXo3U2xvOFBIdnJ3Z3c4ai8KZVdsZEVudFNIQlFKTjJ5ME5hK2tWQ1ozN1ZiM29KK3RDQzBCa1p2RGNYMjZ2em1jd0FHaFBRMUpNL25vMjdEYgpmcWxJVW9wOUc1a0lQOE96TDJQclp6N0VHVmc1ZEFlQ2QwWDZIZFpGemxrajUzNEhiUzhSQjlybTlLYjhBV3BuCmFrQjNZR1NEM1hSbUdhR1lkQTU5WGxxNDBadmg1MzkrRFJibForcnI5NFpZbGU0V1B0TFR1Vjl2UnRpSFA5RDMKREZmTThPRzBNaVlCaTRHb3hnRHZDeVBoK2hjTWdmVUZwSDFiTUpMaXFGL2prRjJicis2d04wcEFuYlRET0o0egpVeHZvajdpVVlieXh6THdsc0VVSDJWc3NQdzQzMFR4ZnVrbyt2M3VtM3RramdqS3R2NVlmeGw4eERhYz0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K + token: kcoxto5qodsxd40uyjdaylln67got5qpj6edfhx545vlv71n4m1rvhduyvshjlwoo4thqchr6z3m1l4mkgrjnnt1c9qkby2to3rq1s34fhzyg3yurfvcq8au9bvoycgm From 7bf74b4c9ad64fd87d1bccedede6efcb61fe0113 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Fri, 9 Feb 2024 16:18:35 +0000 Subject: [PATCH 13/23] README.md updated, project main configuration documentation --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/README.md b/README.md index a703112c..1f64e0df 100644 --- a/README.md +++ b/README.md @@ -167,3 +167,45 @@ cd aks-cluster-module terraform init ``` + +### WEB-APP-DEVOPS-PROJECT Terraform Azure Aks Cluster Deployment + +This project automates the deployment of an Azure Kubernetes Service (AKS) cluster using Terraform. It sets up networking resources and provisions an AKS cluster on Microsoft Azure. + +#### Prerequisites + +Before you begin, make sure you have the following prerequisites installed: + +- [Terraform](https://www.terraform.io/downloads.html) +- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) + +You also need an Azure subscription and Service Principal credentials to authenticate with Azure. + +## Project Structure + +The project structure is organized as follows: + +- `main.tf`: The main Terraform configuration file that orchestrates the deployment of resources. +- `variables.tf`: Defines input variables used in the main configuration file. +- `networking-module/`: Directory containing the Terraform module for networking resources. +- `aks-cluster-module/`: Directory containing the Terraform module for AKS cluster provisioning. +- `output.tf`: Defines output variables to retrieve information after deployment. + +## Configuration + +### Provider Setup + +The `main.tf` file configures the `azurerm` provider to interact with Azure APIs. Replace `var.client_id` and `var.client_secret` with your Azure Service Principal credentials. + +```hcl +provider "azurerm" { + features {} + + client_id = var.client_id + client_secret = var.client_secret + subscription_id = "" + tenant_id = "" +} + + +``` From 7c17a203dc09c4958daa023e5183d55d93ae8700 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Sat, 10 Feb 2024 19:41:54 +0000 Subject: [PATCH 14/23] kubernetes deployment --- application-manifest.yaml | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 application-manifest.yaml diff --git a/application-manifest.yaml b/application-manifest.yaml new file mode 100644 index 00000000..3447d420 --- /dev/null +++ b/application-manifest.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: flask-app-deployment +spec: + replicas: 2 + selector: + matchLabels: + app: flask-app + template: + metadata: + labels: + app: flask-app + spec: + containers: + - name: flask-app-container + image: robinwinters/web-app-image:1.0 + ports: + - containerPort: 5000 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + +--- + +apiVersion: v1 +kind: Service +metadata: + name: flask-app-service +spec: + selector: + app: flask-app + ports: + - protocol: TCP + port: 80 + targetPort: 5000 + type: ClusterIP + From 7521238397b72ef211e11729f06794f0957422c0 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Sat, 10 Feb 2024 19:48:50 +0000 Subject: [PATCH 15/23] Kubernetes Documentation --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index 1f64e0df..e21e8f97 100644 --- a/README.md +++ b/README.md @@ -209,3 +209,27 @@ provider "azurerm" { ``` + +### WEB-APP-DEVOPS-PROJECT Kubernetes Deployment + +This repository contains detailed documentation for the deployment of a containerized web application onto an Azure Kubernetes Service (AKS) cluster using Kubernetes manifests. Below, we outline the key stages of the deployment process and provide insights into the configuration settings, deployment strategy, testing, validation, and distribution plan for the application. + +#### Deployment and Service Manifests + +1. Deployment Manifest: + - The Deployment manifest (application-manifest.yaml) defines a Kubernetes Deployment named flask-app-deployment for the containerized web application. + - Key concepts and configuration settings include: + - Specifying two replicas for scalability and high availability. + - Using labels (e.g., app: flask-app) to match pods and ensure efficient traffic routing. + - Configuring the container image (robinwinters/web-app-image:1.0) and exposing port 5000 for communication. + - Implementing a RollingUpdate deployment strategy to ensure seamless application updates. +2. Service Manifest: + - The Service manifest within the same file defines a Kubernetes Service named flask-app-service to facilitate internal communication within the AKS cluster. + - Key configuration settings include: + - Matching the selector with the labels of the Deployment pods. + - Using the ClusterIP type and TCP protocol on port 80 to communicate with the pods. + - Setting the targetPort to 5000 to access the application's user interface. + +#### Deployment Strategy + +The chosen deployment strategy is RollingUpdate. This strategy was selected for its ability to update the application with zero downtime by gradually replacing old pods with new ones. It aligns with the application's requirements for continuous availability and reliability, ensuring seamless updates without impacting user experience. From dec928f9ad416cb71ff8fac8d4168bd42665b763 Mon Sep 17 00:00:00 2001 From: Robin Melsa Winters <54752869+robinucar@users.noreply.github.com> Date: Sun, 11 Feb 2024 17:09:14 +0000 Subject: [PATCH 16/23] Set up CI with Azure Pipelines [skip ci] --- azure-pipelines.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 00000000..f53e97b6 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,19 @@ +# Starter pipeline +# Start with a minimal pipeline that you can customize to build and deploy your code. +# Add steps that build, run tests, deploy, and more: +# https://aka.ms/yaml + +trigger: +- main + +pool: + vmImage: ubuntu-latest + +steps: +- script: echo Hello, world! + displayName: 'Run a one-line script' + +- script: | + echo Add other tasks to build, test, and deploy your project. + echo See https://aka.ms/yaml + displayName: 'Run a multi-line script' From f52b80021f5baf8b0c0c8ba8dbab6dd73cb6d667 Mon Sep 17 00:00:00 2001 From: Robin Melsa Winters <54752869+robinucar@users.noreply.github.com> Date: Mon, 12 Feb 2024 14:48:18 +0000 Subject: [PATCH 17/23] Update azure-pipelines.yml for Azure Pipelines docker task added --- azure-pipelines.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f53e97b6..2791714b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,4 +1,10 @@ # Starter pipeline +- task: Docker@2 + inputs: + containerRegistry: 'DockerHub-AuthToken' + repository: 'push robinwinters/web-app-image:1.0' + command: 'buildAndPush' + Dockerfile: '**/Dockerfile' # Start with a minimal pipeline that you can customize to build and deploy your code. # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml From e691902eb02cc1fb217d1e74f77992b4ed4af90c Mon Sep 17 00:00:00 2001 From: Robin Melsa Winters <54752869+robinucar@users.noreply.github.com> Date: Mon, 12 Feb 2024 15:30:33 +0000 Subject: [PATCH 18/23] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2791714b..bf4aee60 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,14 +1,4 @@ # Starter pipeline -- task: Docker@2 - inputs: - containerRegistry: 'DockerHub-AuthToken' - repository: 'push robinwinters/web-app-image:1.0' - command: 'buildAndPush' - Dockerfile: '**/Dockerfile' -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - trigger: - main @@ -16,10 +6,12 @@ pool: vmImage: ubuntu-latest steps: -- script: echo Hello, world! - displayName: 'Run a one-line script' - -- script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: 'Run a multi-line script' +- task: Docker@2 + inputs: + containerRegistry: 'DockerHub-AuthToken' + repository: 'robinwinters/web-app-image' + command: 'buildAndPush' + Dockerfile: '**/Dockerfile' + tags: | + 1.0 + latest From 69d8030e5b2224ecaa1b727378060b174d5c2ff7 Mon Sep 17 00:00:00 2001 From: Robin Melsa Winters <54752869+robinucar@users.noreply.github.com> Date: Mon, 12 Feb 2024 15:36:04 +0000 Subject: [PATCH 19/23] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index bf4aee60..56408433 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,5 +13,4 @@ steps: command: 'buildAndPush' Dockerfile: '**/Dockerfile' tags: | - 1.0 latest From 3717cc63e2d0928affe3f1fa7901e8a512800496 Mon Sep 17 00:00:00 2001 From: Robin Melsa Winters <54752869+robinucar@users.noreply.github.com> Date: Mon, 12 Feb 2024 18:01:02 +0000 Subject: [PATCH 20/23] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 56408433..5c8390d0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,4 +1,10 @@ # Starter pipeline +- task: KubernetesManifest@1 + inputs: + action: 'deploy' + connectionType: 'kubernetesServiceConnection' + kubernetesServiceConnection: 'DevOps-AKS-Integration' + manifests: 'application-manifest.yaml' trigger: - main From 2761d90fea27921f30255554d780c28302d53985 Mon Sep 17 00:00:00 2001 From: Robin Melsa Winters <54752869+robinucar@users.noreply.github.com> Date: Mon, 12 Feb 2024 18:02:25 +0000 Subject: [PATCH 21/23] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5c8390d0..e1b8e708 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,10 +1,5 @@ # Starter pipeline -- task: KubernetesManifest@1 - inputs: - action: 'deploy' - connectionType: 'kubernetesServiceConnection' - kubernetesServiceConnection: 'DevOps-AKS-Integration' - manifests: 'application-manifest.yaml' + trigger: - main @@ -20,3 +15,10 @@ steps: Dockerfile: '**/Dockerfile' tags: | latest + +- task: KubernetesManifest@1 + inputs: + action: 'deploy' + connectionType: 'kubernetesServiceConnection' + kubernetesServiceConnection: 'DevOps-AKS-Integration' + manifests: 'application-manifest.yaml' From 8019b7672eff6a66059c95a24c77b2c920a3f1af Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Mon, 12 Feb 2024 18:36:30 +0000 Subject: [PATCH 22/23] CI/CD Pipeline Documentation --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/README.md b/README.md index e21e8f97..8c1706d1 100644 --- a/README.md +++ b/README.md @@ -233,3 +233,54 @@ This repository contains detailed documentation for the deployment of a containe #### Deployment Strategy The chosen deployment strategy is RollingUpdate. This strategy was selected for its ability to update the application with zero downtime by gradually replacing old pods with new ones. It aligns with the application's requirements for continuous availability and reliability, ensuring seamless updates without impacting user experience. + +### CI/CD Pipeline Documentation + +This section provides comprehensive information about the CI/CD pipeline configured in Azure DevOps for this project. + +#### Configuration and Settings + +- Source Repository: + The source code for this project is hosted on GitHub. The repository contains the application code along with the necessary configuration files for the CI/CD pipeline. + +- Build Pipeline (Starter Pipeline): + The CI/CD pipeline is configured using the Starter Pipeline template provided by Azure DevOps. This simple pipeline is a foundation for further customization and includes basic build and test stages. It automatically triggers on each push to the main branch of the GitHub repository. + +- Integration with Docker Hub: + The CI/CD pipeline is integrated with Docker Hub for container image management. A Docker service connection is configured in Azure DevOps to facilitate seamless integration with Docker Hub's container registry. To integrate the CI/CD pipeline with Docker Hub, follow these steps: + + 1. Create Docker Hub Personal Access Token: + + - Generate a Personal Access Token (PAT) in Docker Hub with the necessary permissions to push Docker images. + + 2. Create Docker Service Connection in Azure DevOps + + - Navigate to Project Settings > Service connections in Azure DevOps. + - Click on "New service connection" and choose "Docker Registry". + - Enter your Docker Hub credentials and the Personal Access Token created earlier. + + 3. Update Pipeline YAML: + - Add tasks to your pipeline YAML file to build and push Docker images to Docker Hub as part of the build process. + +- Integration with AKS: + While the Starter Pipeline does not include specific deployment steps to AKS, it can be extended to incorporate deployment tasks using Azure Kubernetes Service (AKS) in subsequent iterations. To integrate the CI/CD pipeline with Azure Kubernetes Service (AKS), follow these steps: + + 1. Create AKS Service Connection in Azure DevOps + + - Navigate to Project Settings > Service connections in Azure DevOps. + - Click on "New service connection" and choose "Kubernetes". + - Provide the necessary details such as AKS cluster name, resource group, and authentication method. + + 2. Update Pipeline YAML: + + - Add tasks to your pipeline YAML file to deploy the application to AKS using kubectl commands or Azure DevOps deployment tasks. + +- Validation Steps: + + Since the Starter Pipeline focuses on basic build and test stages, the validation steps primarily involve testing the functionality of the application locally and ensuring that the build process completes successfully. + +- Testing Functionality: + + - Local Testing: Before pushing changes to the main branch, local testing is performed to ensure that the application functions as expected. + + - Build Verification: Upon triggering the CI/CD pipeline, the build process verifies that the application code compiles successfully and any automated tests included in the pipeline pass. From 105b3b8abb663ec3f595f469a190fbb12bb60bb3 Mon Sep 17 00:00:00 2001 From: Robin Winters Date: Tue, 13 Feb 2024 19:23:26 +0000 Subject: [PATCH 23/23] AKS Cluster Monitoring Strategy --- README.md | 16 ++++++++++++++++ assests/Avg_CPU.png | Bin 0 -> 86545 bytes assests/Avg_Used_Disk_Percentage.png | Bin 0 -> 46702 bytes assests/Sum_Total_bytes_read .png | Bin 0 -> 51577 bytes assests/Sum_Total_bytes_written.png | Bin 0 -> 57342 bytes assests/number_of_pods.png | Bin 0 -> 66087 bytes 6 files changed, 16 insertions(+) create mode 100644 assests/Avg_CPU.png create mode 100644 assests/Avg_Used_Disk_Percentage.png create mode 100644 assests/Sum_Total_bytes_read .png create mode 100644 assests/Sum_Total_bytes_written.png create mode 100644 assests/number_of_pods.png diff --git a/README.md b/README.md index 8c1706d1..74cef606 100644 --- a/README.md +++ b/README.md @@ -284,3 +284,19 @@ This section provides comprehensive information about the CI/CD pipeline configu - Local Testing: Before pushing changes to the main branch, local testing is performed to ensure that the application functions as expected. - Build Verification: Upon triggering the CI/CD pipeline, the build process verifies that the application code compiles successfully and any automated tests included in the pipeline pass. + +### Monitoring Strategy for AKS Cluster + +This section outlines the comprehensive monitoring strategy implemented for the Azure Kubernetes Service (AKS) cluster used in this project. + +#### Metrics Explorer Charts + +1. Average Node CPU and Memory Usage + +- Tracks CPU and memory usage to optimize resource allocation. + ![Average Node CPU Usage Percentage](/assests/Avg_CPU.png) + +2. Pods Counts with Phase + +- Monitors pod lifecycle management and workload distribution. + ![Average Number of Pods by Phase](assests/number_of_pods.png) diff --git a/assests/Avg_CPU.png b/assests/Avg_CPU.png new file mode 100644 index 0000000000000000000000000000000000000000..d089a7cff8dd60880a8dda7719b943abaff426af GIT binary patch literal 86545 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
cPrs^n*NDBJ0(CACKv?JmB1$^*pL< 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 z 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

4W=FEkwx835LaL1^8;r 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⋙2)az>gp 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 VO6pjB2mU*C!szGh|6KU({{iewe31YE literal 0 HcmV?d00001 diff --git a/assests/Avg_Used_Disk_Percentage.png b/assests/Avg_Used_Disk_Percentage.png new file mode 100644 index 0000000000000000000000000000000000000000..17a716a20f10eb7c8b734c976a409c5d5847fe4b GIT binary patch literal 46702 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 z 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 X|7`J@#O0sBpDP!&FBF{n{my>@(mYPl literal 0 HcmV?d00001 diff --git a/assests/Sum_Total_bytes_read .png b/assests/Sum_Total_bytes_read .png new file mode 100644 index 0000000000000000000000000000000000000000..5d7b6ade2ffc082c2e30131e3eaa3c11d586f93d GIT binary patch literal 51577 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 literal 0 HcmV?d00001 diff --git a/assests/Sum_Total_bytes_written.png b/assests/Sum_Total_bytes_written.png new file mode 100644 index 0000000000000000000000000000000000000000..57958ceeda0e49ab6b8b05008c2a6a0b076ed615 GIT binary patch literal 57342 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 literal 0 HcmV?d00001 diff --git a/assests/number_of_pods.png b/assests/number_of_pods.png new file mode 100644 index 0000000000000000000000000000000000000000..f5244059b1ed9834fc181da17b6b199cdcf276b8 GIT binary patch literal 66087 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

+*}4SJ3u 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 literal 0 HcmV?d00001