// Module included in the following assemblies:
//
// * security/zero_trust_workload_identity_manageer/zero-trust-manager-oidc-federation.adoc

:_mod-docs-content-type: PROCEDURE
[id="zero-trust-manager-vault-deploy-demo_{context}"]

= Deploying a demonstration application

[role="_abstract"]
Deploy a demonstration application to create a simple client that uses its SPIFFE identity to authenticate with Vault. By doing this you can verify that the client can successfully authenticate using the configured identity.

.Procedure

. On your local machine, set the environment variables for your application by running the following commands:
+
[source,terminal]
----
$ export APP_NAME=client
----
+
[source,terminal]
----
$ export APP_NAMESPACE=demo
----
+
[source,terminal]
----
$ export AUDIENCE=$APP_NAME
----

. Apply the Kubernetes manifest to create the namespace, service account, and deployment for the demo app by running the following command. This deployment mounts the SPIFFE CSI driver socket.
+
[source,terminal]
----
$ oc apply -f - <<EOF
# ... (paste the full YAML from your provided code here) ...
EOF>>
----

.Verification

* Verify that the client deployment is ready by running the following command:
+
[source,terminal]
----
$ oc get deploy -n $APP_NAMESPACE
----
+
.Example output
[source, terminal]
----
NAME             READY        UP-TO-DATE      AVAILABLE     AGE
frontend-app     2/2          2               2             120d
backend-api      3/3          3               3             120d
----