Jump to: navigation, search

StarlingX/Containers/Applications/app-nginx-ingress-controller

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>