5 🪶 Nightingale meets Kubernetes! 🌥️
Nightingale is an open-source tool that aims to address this problem by providing a ready-to-use environment for pentesters.
This chart bootstraps a Nightingale deployment on a Kubernetes cluster using the Helm package manager.
Let's Open Feathers in the Cloud: Nightingale Meets Kubernetes! 🌥️
- Kubernetes 1.19+
- Helm 3.7+
To add the Nightingale Helm repository and update it, run the following commands:
helm repo add nightingale https://rajanagori.github.io/Nightingale
helm repo update
Install the Nightingale chart with the release name nightingale
in the nightingale
namespace.
helm upgrade --install nightingale nightingale/nightingale -n nightingale --create-namespace
This command will add the Nightingale Helm repository, update it, and install the Nightingale chart with the release name nightingale
in the nightingale
namespace.
helm upgrade --install nightingale nightingale --repo https://rajanagori.github.io/Nightingale -n nightingale --create-namespace
The provided selection is a table of configuration values typically used in a Kubernetes deployment. Each row represents a different configuration option.
-
namespaceOverride
is a string that can be used to override the default namespace in which the Kubernetes resources are deployed. -
replicaCount
is an integer that specifies the number of pod replicas to create. -
image.repository
,image.tag
, andimage.pullPolicy
are strings that define the Docker image to use for the pods, the tag of the image, and the policy for pulling the image, respectively. -
strategy.type
andstrategy.rollingUpdate.maxUnavailable
andstrategy.rollingUpdate.maxSurge
are used to define the update strategy for the deployment. TheRollingUpdate
strategy gradually replaces old pods with new ones. -
podSecurityContext
andsecurityContext
are objects that define the security contexts for the pods and containers, respectively. -
resources.limits.cpu
,resources.limits.memory
,resources.requests.cpu
, andresources.requests.memory
are used to set the CPU and memory resource limits and requests for the containers in the pods. -
volumes
andvolumeMounts
are lists that define the volumes to create and where to mount them in the containers, respectively. -
tolerations
is a list that defines the tolerations for the pods. -
affinity
is an object that defines the affinity/anti-affinity rules for the pods. -
service.type
andservice.port
are used to define the type of service to create and the port it should expose. - The
ingress
related keys are used to define the ingress resource ifingress.enabled
is set to true. This includes the ingress class name, annotations, host settings, and TLS settings. - The
autoscaling
related keys are used to define the horizontal pod autoscaler resource ifautoscaling.enabled
is set to true. This includes the minimum and maximum number of pod replicas and the CPU and memory utilization thresholds for scaling.
Key | Type | Default |
---|---|---|
namespaceOverride | String | "" |
replicaCount | Int | 1 |
image.repository | String | ghcr.io/rajanagori/nightingale |
image.tag | String | stable |
image.pullPolicy | String | IfNotPresent |
strategy.type | String | RollingUpdate |
strategy.rollingUpdate.maxUnavailable | String | 25% |
strategy.rollingUpdate.maxSurge | String | 25% |
podSecurityContext | Object | {} |
securityContext | Object | {} |
resources.limits.cpu | String | 100m |
resources.limits.memory | String | 200Mi |
resources.requests.cpu | String | 50m |
resources.requests.memory | String | 100Mi |
volumes | List | [] |
volumeMounts | List | [] |
tolerations | List | [] |
affinity | Object | {} |
service.type | String | ClusterIP |
service.port | Int | 80 |
ingress.enabled | Bool | false |
ingress.ingressClassName | String | nginx |
ingress.annotations | Object | {} |
ingress.host.enabled | Bool | false |
ingress.host.name | String | "" |
ingress.tls.enabled | Bool | false |
ingress.tls.secretName | String | "" |
autoscaling.enabled | Bool | false |
autoscaling.minReplicas | Int | 1 |
autoscaling.maxReplicas | Int | 10 |
autoscaling.cpuUtilization | Int | 80 |
autoscaling.memoryUtilization | Int | 95 |
To uninstall the Nightingale chart, run the following command:
helm uninstall nightinfgale -n nightingale