Health Checks
Every application has a general application-level health check, which aggregates the statuses of all core Kubernetes components and generates a digestible summary for human viewing. These are viewable in the application switcher in the admin console, or by running:
plural watch <app-name>
This will generate output like:
Application: console (0.5.35) READY plural admin console Components Ready: 15/15 Ready Components: - service/console :: Ready - service/console-headless :: Ready - service/console-master :: Ready - service/console-replica :: Ready - service/plural-console :: Ready - service/plural-console-repl :: Ready ...
If a component is not ready, it will also generate hints to kubectl commands which might help debug them further.
Proxies
Plural also helps with discovering useful proxy commands for inspecting core resources. This is done via the Proxy crd. A decent example is the proxy to the admin consoles underlying Postgres database:
apiVersion: platform.plural.sh/v1alpha1
kind: Proxy
metadata:
name: db
labels:
spec:
type: db
target: statefulset/console-postgresql
credentials:
secret: console-postgresql
key: postgresql-password
user: console
dbConfig:
name: console
engine: postgres
port: 5432The interface is quite powerful, and supports things like fetching database credentials, initiating a SQL shell, spawning a web UI via kubectl port-forward, or printing the credentials to stdout to allow a user to easily log in.
Logs
Application-aware log tails can be baked into any Plural application to prevent a user from having to dig through the Kubernetes API to find the specific Pod they should tail. They can be discovered and watched using:
plural logs list <app> plural logs tail <app> <name>
Now the relevant logs will be streamed to stdout.
The specification for these is baked into the LogTail crd, for example:
apiVersion: platform.plural.sh/v1alpha1 kind: LogTail metadata: name: aws-load-balancer labels: spec: limit: 50 target: deployment/bootstrap-aws-load-balancer-controller follow: true