Stage 1 – User Login
The operator or manager logs into the manufacturing application.
The application authenticates the user and provides access based on their role.
This project creates a secure and automated GitOps deployment system for a Kubernetes-based manufacturing application. When developers update application code or Kubernetes configurations, the system automatically checks them for security issues and policy violations before deployment. Cosign verifies container images, Kyverno checks Kubernetes policies, and FluxCD automatically deploys approved changes to the Kubernetes cluster. If someone manually changes the cluster, FluxCD detects the configuration drift and restores it to the approved Git version. This helps keep the manufacturing application secure, consistent, and available without manual deployment work.
To design and implement a secure, automated GitOps deployment pipeline using FluxCD, Kyverno, and Cosign on a self-hosted Kubernetes architecture to manage deployments, enforce security policies, and protect cluster configurations.
The operator or manager logs into the manufacturing application.
The application authenticates the user and provides access based on their role.
The production manager creates and manages production orders.
The application records the product, required quantity, production schedule, and order status.
The application displays the current status of production machines.
Machine data such as running, idle, stopped, or maintenance is received and displayed on the manufacturing dashboard.
The application tracks production progress.
The application records the quantity produced, production progress, and completed quantities for each production order.
Operators record defective or rejected products.
The application stores defect information and updates production and quality statistics.
Managers and operators view the overall production status.
The dashboard displays production progress, machine status, completed quantity, defects, and active production orders.
Managers generate production reports.
The application retrieves historical production data and generates reports for production quantity, machine performance, and defects.
Automatically monitors the Git repository and keeps the Kubernetes cluster synchronized with the approved configuration. It also detects and corrects configuration changes made manually.
Checks Kubernetes configuration files against security and compliance rules. It can allow, modify, or block deployments that do not follow the required policies.
Verifies that container images have valid digital signatures before allowing them to run in the Kubernetes cluster.
Automates server setup, installs required software, configures dependencies, and prepares the Kubernetes environments.
Packages the manufacturing application and its dependencies into containers so they can run consistently across environments.
Provides the virtual servers used to run the self-hosted Kubernetes cluster, including the control plane and worker nodes.
Provides the Linux operating system for the Kubernetes master and worker nodes.
Creates the secure private network for the Kubernetes cluster and separates public and private network traffic.
Control network access and protect the Kubernetes nodes from unauthorized traffic.
Provides persistent storage for the operating system, Kubernetes data, application data, and cluster logs.
The proposed solution provides a secure and automated GitOps deployment system using FluxCD, Kyverno, and Cosign. The manufacturing application runs inside a self-hosted Kubernetes cluster on Cloud EC2 servers running Ubuntu Server 24.04 LTS. The cluster is protected by an Cloud VPC, Security Groups, and Network ACLs. The application is packaged using Docker and digitally signed using Cosign. FluxCD automatically deploys approved changes from the Git repository and restores the correct configuration if someone makes an unauthorized manual change. Kyverno checks Kubernetes configurations and blocks deployments that do not follow the required security policies. This provides automated deployment, configuration protection, security policy enforcement, and better visibility across the manufacturing application environment.