RedHat EX380 Actual Free Exam Questions & Community Discussion

  • Exam Code/Number: EX380
  • Exam Name/Title: Red Hat Certified Specialist in OpenShift Automation and Integration
  • Certification Provider: RedHat
  • Corresponding Certification: Red Hat OpenShift
  • Exam Questions: 44
  • Updated On: Jun 03, 2026
Export and import a Kubernetes application (YAML export)
Task Information : Export typical app objects from orders and apply them into a new namespace orders- copy.
Correct Answer:
See the solution below in Explanation:
Explanation:
* Export objects to YAML
* oc -n orders get deploy,svc,route,cm,secret -o yaml > orders-app.yaml
* Exports key application resources.
* Create target namespace
* oc new-project orders-copy
* Apply exported YAML
* oc -n orders-copy apply -f orders-app.yaml
* Recreates resources (some fields may need adjustment, like namespaces or immutable fields).
* Validate
* oc -n orders-copy get all
Export and import container images (mirror to internal registry)
Task Information : Pull an image from an external registry, push it into the OpenShift internal registry, and update a deployment to use the mirrored image.
Correct Answer:
See the solution below in Explanation:
Explanation:
* Log in to OpenShift internal registry
* oc registry login
* Allows podman to push to the internal registry.
* Pull external image
* podman pull docker.io/library/nginx:1.25
* Gets the image locally.
* Tag for internal registry destination
* podman tag nginx:1.25 image-registry.openshift-image-registry.svc:5000/orders/nginx:1.25
* Uses the cluster service DNS name (works inside cluster network).
* Push to internal registry
* podman push image-registry.openshift-image-registry.svc:5000/orders/nginx:1.25
* Update deployment to use internal image
* oc -n orders set image deploy/web web=image-registry.openshift-image-registry.svc:5000/orders/nginx:
1.25
* Verify rollout
* oc -n orders rollout status deploy/web
* oc -n orders get pods -o wide
Restore application into same namespace
Task Information : Restore from backup orders-full and validate the app resources return.
Correct Answer:
See the solution below in Explanation:
Explanation:
* Start the restore
* velero restore create orders-restore --from-backup orders-full
* Monitor restore status
* velero restore get
* velero restore describe orders-restore --details
* Validate restored resources
* oc -n orders get all
* oc -n orders get pvc
* Ensure deployments/pods/services and PVCs exist and pods become Running.
Integrate OpenShift with Keycloak (OIDC)
Task Information : Add a Keycloak (RH SSO) OpenID Connect identity provider to OpenShift OAuth and verify redirect/login works.
Correct Answer:
See the solution below in Explanation:
Explanation:
* Collect Keycloak details
* Issuer URL (realm), client ID, and client secret.
* Confirm Keycloak client has correct redirect URI for OpenShift OAuth callback.
* Create a secret with the OIDC client secret
* oc -n openshift-config create secret generic keycloak-oidc-secret \
* --from-literal=clientSecret=' < SECRET > '
* OAuth reads the OIDC client secret from this secret.
* Edit OAuth and add OpenID provider
* oc edit oauth cluster
Add under spec.identityProviders:
- name: keycloak
mappingMethod: claim
type: OpenID
openID:
issuer: "https://keycloak.example.com/realms/ocp"
clientID: "openshift"
clientSecret:
name: keycloak-oidc-secret
claims:
preferredUsername: ["preferred_username"]
name: ["name"]
email: ["email"]
* issuer must match Keycloak realm issuer URL.
* claims determines which token claims map to OpenShift username/name/email.
* Restart OAuth pods
* oc -n openshift-authentication delete pod -l app=oauth-openshift
* Verify by logging in through the web console
* You should be redirected to Keycloak, authenticate, then return to OpenShift.
* Confirm users/identities:
* oc get users
* oc get identities
Configure resiliency using a PodDisruptionBudget
Task Information : Ensure at least 2 replicas of payments/api remain available during voluntary disruptions.
Correct Answer:
See the solution below in Explanation:
Explanation:
* Create PDB
* cat < < EOF | oc -n payments apply -f -
* apiVersion: policy/v1
* kind: PodDisruptionBudget
* metadata:
* name: api-pdb
* spec:
* minAvailable: 2
* selector:
* matchLabels:
* app: api
* EOF
* minAvailable: 2 blocks evictions that would reduce availability below 2.
* Verify PDB
* oc -n payments get pdb
* oc -n payments describe pdb api-pdb
0
0
0
10