Guillaume B.B. Van Hemmen
d162d7651d
Introduced Kubernetes YAML configurations for deploying PrivateBin. This includes namespace, PVC, deployment, service, ingress, and a utility pod for data restoration. Updated README with instructions and added an MIT license file. |
||
---|---|---|
00-namespace.yaml | ||
01-pvc.yaml | ||
02-deployments.yaml | ||
03-service.yaml | ||
04-ingress.yaml | ||
99-restore-pod.yaml | ||
LICENSE | ||
README.md |
K8s PrivateBin Deployment
This repository contains Kubernetes manifests for deploying PrivateBin, an open-source minimalist, encrypted pastebin, into a Kubernetes cluster. The deployment is configured with Persistent Volumes, namespaces, services, and ingress for external access.
Project Structure
The project consists of the following Kubernetes YAML manifests:
- 00-namespace.yaml: Specifies the namespace for isolating the PrivateBin deployment.
- 01-pvc.yaml: Configures the Persistent Volume Claim (PVC) to store PrivateBin data persistently.
- 02-deployments.yaml: Contains the deployment configuration for the PrivateBin pod(s).
- 03-service.yaml: Defines the service for exposing the deployment internally within the cluster.
- 04-ingress.yaml: Configures the ingress resource for routing external traffic to the PrivateBin service.
Prerequisites
Before deploying this project, ensure the following are already set up:
- A Kubernetes cluster (e.g., Minikube, AKS, GKE, EKS, etc.).
kubectl
CLI configured to interact with your cluster.- An ingress controller installed in your cluster (e.g., NGINX/Traefik).
Deployment Instructions
Follow the steps below to deploy PrivateBin:
1. Clone the Repository
git clone https://git.van-hemmen.com/GuillaumeHemmen-k8s/privateBin.git
cd privateBin
2. Apply Kubernetes Manifests
Run the following commands to apply the manifests sequentially:
# Step 1: Create the namespace
kubectl apply -f 00-namespace.yaml
# Step 2: Apply Persistent Volume Claim
kubectl apply -f 01-pvc.yaml
# Step 3: Deploy PrivateBin
kubectl apply -f 02-deployments.yaml
# Step 4: Apply Service configuration
kubectl apply -f 03-service.yaml
# Step 5: Configure Ingress
kubectl apply -f 04-ingress.yaml
3. Verify the Deployment
- Check if all pods are running:
kubectl get pods -n privatebin
- Check the ingress details:
kubectl get ingress -n privatebin
4. Access PrivateBin
- Access your PrivateBin instance using the URL configured in the
04-ingress.yaml
file. Ensure the DNS or host settings are properly configured to route traffic appropriately.
Customization
Modify Namespace
If needed, update the namespace in each .yaml
file to match your cluster's
organization.
Update Ingress Configuration
Set your desired domain or hostname in 04-ingress.yaml
under the host
field.
Persistent Volume Storage Class
Update the storageClassName
in 01-pvc.yaml
if necessary to match your
cluster's storage configuration.
Cleanup
To remove the deployment, run:
kubectl delete -f 04-ingress.yaml
kubectl delete -f 03-service.yaml
kubectl delete -f 02-deployments.yaml
kubectl delete -f 01-pvc.yaml
kubectl delete -f 00-namespace.yaml
Notes
- Ensure ingress is properly configured, as it is dependent on your cluster's ingress controller setup.
- Persistent storage is configured to ensure your data is kept even if the pod restarts.
License
This project is licensed under the MIT License.