...
- 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)
- Prerequisites:
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/
- Configure basic Clowder, launch stack
- Confirm Clowder endpoint link points to NodePort (http://publicip:NodePort)
- Modify apiserver.yaml
- Prerequisites
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
- Prerequisites
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
- DOMAIN = test.ndslabs.org
- CORS_ORIGIN_ADDR = https://www.$DOMAIN
- INGRESS = LoadBalancer
- 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
- Create loadbalancer, default backend and default ingress rules