StarlingX/Containers/Applications/app-nginx-ingress-controller
< StarlingX | Containers | Applications
Application: nginx-ingress-controller-armada-app
Source
Building
- From the Debian Build environment:
build-pkgs -c -p ingress-nginx-helm,python3-k8sapp-nginx-ingress-controller,stx-nginx-ingress-controller-helm
The command above produces the package "stx-nginx-ingress-controller-helm_<version>_<arch>.deb" that contains the tarball "nginx-ingress-controller-<version>.tgz"
Nginx app is applied during bootstrap
system application-show nginx-ingress-controller +---------------+-------------------------------------------+ | Property | Value | +---------------+-------------------------------------------+ | active | True | | app_version | 26.10-1 | | created_at | 2024-07-12T10:13:21.652732+00:00 | | manifest_file | fluxcd-manifests | | manifest_name | nginx-ingress-controller-fluxcd-manifests | | name | nginx-ingress-controller | | progress | completed | | status | applied | | updated_at | 2024-07-12T10:14:34.349266+00:00 | +---------------+-------------------------------------------+
kubectl get pods -n kube-system ic-nginx-ingress-ingress-nginx-controller-d9h2l NAME READY STATUS RESTARTS AGE ic-nginx-ingress-ingress-nginx-controller-d9h2l 1/1 Running 1 (6d7h ago) 6d8h
Testing
The following is a kuard app deployment using nginx
Create namespace "test"
apiVersion: v1 kind: Namespace metadata: name: test
Create the following deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: kuard
namespace: test
spec:
replicas: 1
selector:
matchLabels:
app: kuard
template:
metadata:
labels:
app: kuard
spec:
containers:
- name: kuard
image: gcr.io/kuar-demo/kuard-amd64:blue
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
Create the service named "kuard"
apiVersion: v1
kind: Service
metadata:
name: kuard
namespace: test
labels:
app: kuard
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
selector:
app: kuard
Now create the following ingress named "kuard"
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/issuer: system-local-ca
name: kuard
namespace: test
spec:
ingressClassName: nginx
tls:
- hosts:
- vbox.wrs.com
secretName: kuard-tls
rules:
- host: vbox.wrs.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kuard
port:
number: 80
Now verify that "certificate" is signed and issued
kubectl get certificate -n test NAME READY SECRET AGE kuard-tls True kuard-tls 23h
Check the url "https://vbox.wrs.com" from remote machine
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>KUAR Demo</title>
<link rel="stylesheet" href="/static/css/bootstrap.min.css">
<link rel="stylesheet" href="/static/css/styles.css">
<script>
var pageContext = {"urlBase":"","hostname":"kuard-6d67d6968c-prw8v","addrs":["172.16.192.111"],"version":"v0.10.0-blue","versionColor":"hsl(339,100%,50%)","requestDump":"GET / HTTP/1.1\r\nHost: vbox.wrs.com\r\nAccept: */*\r\nUser-Agent: curl/7.68.0\r\nX-Forwarded-For: 10.10.10.254\r\nX-Forwarded-Host: vbox.wrs.com\r\nX-Forwarded-Port: 443\r\nX- Forwarded-Proto: https\r\nX-Forwarded-Scheme: https\r\nX-Real-Ip: 10.10.10.254\r\nX-Request-Id: 28e29e479359038ff4cbd08d68aa19ab\r\nX-Scheme: https","requestProto":"HTTP/1.1","requestAddr":"10.10.10.3:54334"}
</script>
</head>