Skip to content

Commit

Permalink
Ingress
Browse files Browse the repository at this point in the history
  • Loading branch information
assumptionsandg committed Aug 5, 2024
1 parent a4fd054 commit bcc0e4f
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 5 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/functional.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:

- name: Create k8s Kind Cluster
uses: helm/[email protected]
with:
config: kind-config.yml

- name: Run test
timeout-minutes: 10
Expand Down
26 changes: 26 additions & 0 deletions charts/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Release.Name }}
{{- with .Values.ingress.annotations }}
annotations: {{ toYaml . | nindent 4 }}
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
{{- if .Values.ingress.tls.enabled }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Values.ingress.tls.secretName }}
{{- end }}
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
- path: {{ .Values.ingress.path }}
pathType: Prefix
backend:
service:
name: {{ .Values.service.name }}
port:
number: 8080
20 changes: 20 additions & 0 deletions charts/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,25 @@ securityContext:
drop: [ALL]
readOnlyRootFilesystem: true

# Ingress settings
ingress:
# The hostname to use for the portal
host:
# The path for the coral credits API
path:
# The ingress class to use
className: nginx
# Annotations for the portal ingress
annotations: {}
# TLS configuration for the portal ingress
tls:
# Indicates if TLS should be enabled
enabled: true
# The secret to use for the TLS certificate and key
secretName:
# TLS-specific ingress annotations, e.g. for cert-manager configuration
annotations: {}

# Django settings
settings:
# The Django secret key
Expand Down Expand Up @@ -104,6 +123,7 @@ replicaCount: 1

# Service details for the api
service:
name: coral-credits
type: ClusterIP
port: 8080

Expand Down
14 changes: 14 additions & 0 deletions kind-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
17 changes: 12 additions & 5 deletions tools/functional_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -eux

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)

PORT=8080
PORT=80
SITE=localhost
# Function to check if port is open
check_port() {
Expand All @@ -14,7 +14,7 @@ check_port() {

# Function to check HTTP status
check_http_status() {
local status=$(curl -s -o /dev/null -w "%{http_code}" http://$SITE:$PORT/_status/)
local status=$(curl -s -o /dev/null -w "%{http_code}" http://$SITE/coral-credits/_status/)
if [ "$status" -eq 204 ]; then
return 0
else
Expand All @@ -39,12 +39,19 @@ helm upgrade $RELEASE_NAME ./charts \
--wait \
--timeout 3m \
--set-string image.tag=${GITHUB_SHA::7} \
--set settings.superuserPassword=$TEST_PASSWORD
--set settings.superuserPassword=$TEST_PASSWORD \
--set ingress.host=$SITE \
--set ingress.path='/coral-credits'

# Wait for rollout
kubectl rollout status deployment/$RELEASE_NAME -n $NAMESPACE --timeout=300s -w
# Port forward in the background
kubectl port-forward -n $NAMESPACE svc/$RELEASE_NAME $PORT:$PORT &

# Install nginx
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=90s

# Wait for port to be open
echo "Waiting for port $PORT to be available..."
Expand Down

0 comments on commit bcc0e4f

Please sign in to comment.