Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

    • Prerequisites:
      • Test services have been added
      • User is logged in
    • Test steps
      • Add "Test - Bad dependency" service
    • Expected results
      • "No image" service is in error state, "Bad dependency" service is in "stopped" state
      • Log shows 
        • Reason=Failed, Message=Failed to pull image "xyzzy": Error: image library/xyzzy not found

    • 5/19: OK (NDS-205)

Ingress/LoadBalancer support

Single-node, NodePort, no TLS

This first test case demonstrates how to configure a single-node instance using NodePort without TLS;

    • Prerequisites
      • Kubernetes is running
      • Assumes single-node installation
    • Test steps
      • Modify apiserver.yaml
        • CORS_ORIGIN_ADDR = http://<public ip>:30000
        • INGRESS = NodePort
        • PREFX=/api
      • Modify gui.yaml
        • APISERVER_HOST = <public ip>
        • APISERVER_PORT = 30001
        • UI_BASE_PATH = /ui
      • kubectl create -f gui.yaml
      • kubectl create -f apiserver.yaml
      • kubectl label nodes 127.0.0.1 ndslabs-role=compute
      • Open browser to: http://<public ip>:30000/ui/

Single-node, LoadBalancer + TLS

These steps have all been implemented in https://github.com/craig-willis/ndslabs-startup/ndslabs-up.sh

    • Prerequisites
      • Kubernetes is running
      • Assumes single-node installation
      • Wildcard CNAME entry for *.test.ndslabs.org
    • Test steps
      • Generate wildcard TLS certificate and key
Code Block
openssl genrsa 2048 > certs/ndslabs.key
openssl req -new -x509 -nodes -sha1 -days 3650 -key certs/ndslabs.key > certs/ndslabs.cert
#[enter *.test.ndslabs.org for the Common Name]
cat certs/ndslabs.cert certs/ndslabs.key > certs/ndslabs.pem
chmod 400 certs/ndslabs.key certs/ndslabs.pem

 

    • Create secret in default namespace (ndslabs-startup/create-tls-secret.sh)

 

Code Block
kubectl create secret generic ndslabs-tls-secret --from-file=tls.crt=certs/ndslabs.cert --from-file=tls.key=certs/ndslabs.key --namespace=default

 

    • Create loadbalancer, default backend and default ingress rules
      • kubectl create -f ndslabs/loadbalancer.yaml
      • kubectl create -f ndslabs/default-backend.yaml
      • kubectl create -f ndslabs/default-ingress.yaml
    • Modify apiserver.yaml
    • Modify gui.yaml
      • APISERVER_SECURE = true
      • APISERVER_PORT = 443
      • UI_BASE_PATH = /ui
    • Create the NDSLabs apiserver and gui services
      • kubectl create -f gui.yaml
      • kubectl create -f apiserver.yaml
    • Open browser to https://www.test.ndslabs.org/ui/
      • Configure basic Clowder, launch stack 
      • Confirm Clowder endpoint link points to LoadBalanacer URI