Service Authentication
Secure Liquid Metal platform communications with mTLS and Basic Auth.
Basic Auth
Flintlock server configuration
To configure flintlockd
with basic auth, provision the device with the following:
cat <<EOF >flint-cfg.yaml
insecure: false
basic-auth-token: TOKEN
EOF
./provision.sh all \ # or ./provision.sh flintlock
-f flint-cfg.yaml
# other flags
If you inspect the service logs (systemctl status flintlockd
), you should see the following line:
level=info msg="basic authentication is enabled"
CAPMVM client configuration
Before you create your CAPMVM cluster, create a secret containing a mapping for each host and encoded token:
cat <<EOF >secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mybasicsecret
namespace: default
type: Opaque
data:
192.168.0.31: Zm9v # foo
192.168.0.32: YmFy # bar
EOF
When you have generated your CAPMVM cluster manifest, edit the file to contain the following reference to the secret:
...
kind: MicrovmCluster
spec:
placement:
staticPool:
basicAuthSecret: mybasicsecret
...
Apply both to your management cluster:
kubectl apply -f secret.yaml
kubectl apply -f cluster.yaml
mTLS
Flintlock server configuration
To configure flintlockd
with mTLS, provision the device with the following:
cat <<EOF >flint-cfg.yaml
insecure: false
tls-cert: <path to host pem>
tls-key: <path to host key>
tls-client-ca: <path to ca pem>
tls-client-validate: true
EOF
./provision.sh all \ # or ./provision.sh flintlock
-f flint-cfg.yaml
# other flags
If you inspect the service logs (systemctl status flintlockd
), you should see the following line:
level=info msg="TLS is enabled"
CAPMVM client configuration
Before you create your CAPMVM cluster, create an Opaque secret the client and CA keys:
kubectl create secret generic mytlssecret \
--from-file=tls.crt=<path to client pem> \
--from-file=tls.key=<path to client key> \
--from-file=ca.crt=<path to ca pem>
When you have generated your CAPMVM cluster manifest, edit the file to contain the following reference to the secret:
...
kind: MicrovmCluster
spec:
tlsSecretRef: mytlssecret
...