Verify Your Install
Run the six checks in order. Each check depends on the previous one, which helps you identify the source of a failure. Checks one through five require only the installation. Check six also requires a Zuplo API key and project.
Check the deployments
Gate on readiness before testing anything over the network.
Code
Code
The control-plane, deployer, gateway, storage, and acme-forwarder
deployments are part of the Zuplo management plane. The other deployments come
from subcharts.
Check the ingress
Send a request for a hostname that has no Ingress. This checks that the load balancer can reach HAProxy.
Code
Code
The expected result is 404 Not Found from HAProxy's default backend. A timeout
or refused connection means that traffic isn't reaching the ingress controller.
Use a hostname without an Ingress for this check. Hosts with an Ingress redirect
port 80 to HTTPS and return a 302 instead.
Requests for hosts with an Ingress are redirected from port 80 to 443. The separate challenge Ingress created by cert-manager continues to serve ACME challenge paths on port 80.
Check the control plane
The control plane turns your values into a Configuration resource, then
creates the management API's Ingress from it.
Code
Code
Confirm every value matches what you put in zuplo-values.yaml. A
single-cluster installation has no workers or authorization entry. Those
settings are for installations that distribute deployments across clusters.
Then confirm the reconciler acted on the rest:
Code
Code
READY: True for zuplo-cluster-issuer means that the chart registered an
account with the certificate authority. It doesn't indicate whether a
certificate has been issued.
Configuration doesn't report a status. Check the Ingress and ClusterIssuer
resources that it produces instead.
Check certificate issuance
Check that the certificate authority issued a certificate for the management API hostname:
Code
Code
READY: True means that the certificate authority validated your hostname and
issued a certificate. If it remains False for more than a few minutes, see
Troubleshooting.
cert-manager retries automatically after you fix DNS. You don't need to restart it.
Check the management API
Send an unauthenticated request to check DNS, the load balancer, HAProxy, the certificate, and authentication:
Code
Code
The expected result is 401 Unauthorized. It confirms that curl completed a
TLS handshake with a trusted certificate and that the gateway requires an API
key. A TLS error indicates a certificate problem. A timeout indicates a DNS or
load balancer problem.
Confirm the certificate is the real one rather than HAProxy's self-signed fallback:
Code
Code
An issuer of CN=kubernetes-ingress-ca means HAProxy is serving its built-in
fallback certificate because no issued certificate is available. Repeat the
certificate issuance check.
Deploy and call a project
The final check builds a gateway image in your cluster, stores it in your registry, and serves it from your infrastructure.
Deploy your project with the Zuplo CLI. The project field in zuplo.jsonc
selects the project, and Zuplo routes the deployment to your cluster:
Code
Zuplo compiles the project, then hands the compiled bundle to your cluster's management API, which builds the container image and rolls it out.
While the command runs, watch the build Job in your cluster:
Code
Code
Confirm that the deployment uses an image from your registry:
Code
Code
Ask the management API what it is serving:
Code
Code
Call the deployed API:
Code
The first request to a deployment can fail while cert-manager issues its certificate. Retry the request for up to a minute.
The CLI can misreport the status of deployments to self-hosted clusters. See Troubleshooting. Use the in-cluster checks to confirm the result.
Resolve a failed check
Troubleshooting lists errors from these checks and their causes.