[Oct-2026] Use Real EX380 Dumps - 100% Free EX380 Exam Dumps [Q24-Q41]

Share

[Oct-2026] Use Real EX380 Dumps - 100% Free EX380 Exam Dumps

EX380 PDF Dumps Exam Questions – Valid EX380 Dumps

NEW QUESTION # 24
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.

Answer:

Explanation:
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


NEW QUESTION # 25
Recover a NotReady worker node (basic remediation workflow)
Task Information : Diagnose a NotReady worker node and restore it to Ready state using standard OpenShift admin workflow.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Identify failing node and status
* oc get nodes
* Confirms which node is NotReady.
* Inspect node conditions and events
* oc describe node < worker >
* Shows kubelet condition issues (network, disk pressure, runtime, etc.).
* Check MachineConfigPool state
* oc get mcp
* oc describe mcp worker
* If MCP is degraded, node may be stuck applying a config.
* Check node logs (kubelet)
* oc adm node-logs < worker > --path=kubelet.log
* Often reveals why node isn't reporting Ready.
* Remediate based on symptom
* Examples:
* If out of disk: free space, then verify kubelet recovers.
* If stuck MCO: investigate current/desired config and fix broken MachineConfig.
* If node cordoned/drained incorrectly: uncordon after remediation.
* oc adm uncordon < worker >
* Confirm node returns Ready
* oc get node < worker >


NEW QUESTION # 26
Restore application into same namespace
Task Information : Restore from backup orders-full and validate the app resources return.

Answer:

Explanation:
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.


NEW QUESTION # 27
Identity Management - Create HTPasswd Secret

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
Step 1: Open a terminal with oc access to the cluster.
This Task is CLI-driven and targets the openshift-config namespace.
Step 2: Run the command:
oc create secret generic rhds-ldap-secret --from-literal bindPassword=redhatocp -n openshift-config Step 3: Verify that the secret is created successfully.
The lab output shows:
secret/rhds-ldap-secret created
Detailed explanation:
This step creates a generic secret named rhds-ldap-secret in the openshift-config namespace. The secret stores a key called bindPassword with the value redhatocp. In an identity-provider or LDAP integration workflow, the bind password is used by OpenShift when connecting to the external directory service. Storing this value in a secret is the correct operational pattern because authentication material should not be embedded directly into configuration objects. The openshift-config namespace is specifically important because cluster authentication configuration commonly references secrets and configmaps from that namespace. If the secret name or key is wrong, the authentication configuration that depends on it may fail to validate or connect properly.


NEW QUESTION # 28
Configure BackupStorageLocation and VolumeSnapshotLocation
Task Information : Configure OADP/Velero storage locations and confirm they show as Available.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Create a secret for cloud credentials (S3-compatible example)
* oc -n openshift-adp create secret generic cloud-credentials \
* --from-file=cloud=/path/to/credentials
* Velero uses this secret to authenticate to object storage.
* Create/Update the DataProtectionApplication (DPA)
* Apply a DPA CR that defines:
* backupLocations (bucket, endpoint URL, region, etc.)
* snapshotLocations (if using snapshots)
* Verify BackupStorageLocation and SnapshotLocation
* velero backup-location get
* velero snapshot-location get
* Status should be Available, meaning storage config is valid.
==========


NEW QUESTION # 29
Dedicate nodes to a workload using labels and nodeSelector
Task Information : Label two nodes with workload=payments and schedule a deployment only onto those nodes.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Label the chosen worker nodes
* oc label node worker-1 workload=payments
* oc label node worker-2 workload=payments
* Node labels are key/value metadata used by the scheduler.
* Add a nodeSelector to the deployment
* oc -n payments patch deploy api --type=merge -p '{
* "spec":{"template":{"spec":{"nodeSelector":{"workload":"payments"}}}}
* }'
* Forces pods to schedule only to nodes that match the label.
* Verify placement
* oc -n payments get pods -o wide
* Confirms pods are running on the intended nodes.


NEW QUESTION # 30
Resolve group synchronization conflicts (prune stale data)
Task Information : Run group sync with pruning to remove stale OpenShift group memberships that no longer exist in LDAP.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Run group sync with prune controls
* oc adm groups sync --sync-config=groupsync.yaml --confirm --prune-whitelist=/tmp/whitelist.txt
* Prune removes stale memberships/groups, but whitelist protects selected groups from pruning.
* Verify group membership reflects LDAP
* oc describe group < groupname >
* Confirms removed users are no longer listed.


NEW QUESTION # 31
Create an Argo CD Application (OpenShift GitOps)
Task Information : Create an Argo CD Application that syncs from Git into namespace gitops-demo with automated sync enabled.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Create target namespace
* oc new-project gitops-demo
* Destination must exist (unless Argo is configured to auto-create).
* Create Application manifest
* apiVersion: argoproj.io/v1alpha1
* kind: Application
* metadata:
* name: demo-app
* namespace: openshift-gitops
* spec:
* project: default
* source:
* repoURL: https://git.example.com/org/repo.git
* targetRevision: main
* path: manifests/demo
* destination:
* server: https://kubernetes.default.svc
* namespace: gitops-demo
* syncPolicy:
* automated:
* prune: true
* selfHeal: true
* automated: enables auto sync.
* prune: removes deleted objects from Git.
* selfHeal: corrects drift.
* Apply Application
* oc apply -f demo-app.yaml
* Verify sync health
* oc -n openshift-gitops get application demo-app -o yaml | grep -i -E "sync|health" -n
* oc -n gitops-demo get all


NEW QUESTION # 32
GitOps and MachineConfig - Trigger Argo CD Synchronization by Repository Update

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
Step 1: Confirm that the repository being pushed to is the same repository watched by the GitOps/Argo CD application.
This linkage is essential because GitOps acts only on configured source repositories and paths.
Step 2: Commit the MachineConfig changes.
The lab uses:
git commit -am "Add MachineConfig for motd"
Step 3: Push the changes to the tracked branch.
The lab uses:
git push origin main
Step 4: Allow Argo CD to detect the repository change and begin synchronization.
In a standard GitOps model, the controller compares the Git repository to the cluster state and applies drift correction or new desired resources.
Detailed explanation:
This sub Task SIMULATION is the operational purpose behind the previous Git command Task SIMULATION . The point is not merely to store a file in Git; it is to update the declarative source that Argo CD uses to reconcile the cluster. Once the repository is updated, Argo CD detects the new commit and syncs the MachineConfig into the cluster according to its application definition. This demonstrates a core automation principle in OpenShift GitOps: administrators do not treat the cluster as the primary editable surface. Instead, they modify Git and let the automation layer enforce state. That provides traceability, peer review potential, rollback capability, and consistency across environments.


NEW QUESTION # 33
Schedule a recurring backup
Task Information : Create a daily backup schedule for namespace orders at 01:00.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Create the schedule
* velero schedule create orders-daily \
* --schedule "0 1 * * *" \
* --include-namespaces orders \
* --snapshot-volumes
* Cron format: minute hour day month weekday.
* Verify schedule exists
* velero schedule get
* Confirm backups are created by the schedule
* velero backup get | grep orders-daily
* Scheduled backups usually have names derived from the schedule.


NEW QUESTION # 34
Maintain group synchronization on a schedule (CronJob)
Task Information : Create a CronJob that runs LDAP group sync on a schedule using a service account that has the required permissions.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Create a namespace for the sync job
* oc new-project id-sync
* Keeps the automation components organized.
* Create a service account for the sync job
* oc -n id-sync create sa group-sync
* CronJob runs under this SA identity.
* Grant cluster permissions to manage groups
* oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:id-sync:group-sync
* In real environments you should scope down, but lab Task SIMULATIONs often accept cluster- admin for speed.
* Create a ConfigMap for groupsync.yaml and Secret(s) for bind password/CA
* Mount them into the job container.
* Create CronJob to run group sync
* Command inside job:
* oc adm groups sync --sync-config=/config/groupsync.yaml --confirm
* The CronJob ensures periodic reconciliation with LDAP.
* Verify job runs
* oc -n id-sync get cronjob
* oc -n id-sync get jobs
* oc -n id-sync logs job/ < job-name >


NEW QUESTION # 35
Create and use client certificates with kubeconfig (CSR flow)
Task Information : Generate a client key/CSR for audit2, approve it, extract the signed cert, and build a kubeconfig using that cert.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Generate private key and CSR
* openssl genrsa -out audit2.key 2048
* openssl req -new -key audit2.key -out audit2.csr -subj "/CN=audit2/O=auditors"
* CN becomes username; O can map to groups in some setups.
* Base64 encode CSR for the API object
* CSR=$(base64 -w0 audit2.csr)
* Kubernetes CSR object expects base64-encoded request data.
* Create the CSR object
* cat < < EOF | oc apply -f -
* apiVersion: certificates.k8s.io/v1
* kind: CertificateSigningRequest
* metadata:
* name: audit2-csr
* spec:
* request: ${CSR}
* signerName: kubernetes.io/kube-apiserver-client
* usages:
* - client auth
* EOF
* Approve the CSR
* oc adm certificate approve audit2-csr
* Approval triggers certificate issuance.
* Extract the signed certificate
* oc get csr audit2-csr -o jsonpath='{.status.certificate}' | base64 -d > audit2.crt
* Produces the client certificate file.
* Build kubeconfig using cert/key
* oc config set-credentials audit2 \
* --client-certificate=audit2.crt --client-key=audit2.key \
* --embed-certs=true --kubeconfig=audit2.kubeconfig
* oc config set-cluster lab \
* --server="$(oc whoami --show-server)" \
* --insecure-skip-tls-verify=true \
* --kubeconfig=audit2.kubeconfig
* oc config set-context audit2 \
* --cluster=lab --user=audit2 --namespace=default \
* --kubeconfig=audit2.kubeconfig
* Creates a kubeconfig that authenticates using client certificates.
* Test
* oc --kubeconfig=audit2.kubeconfig get ns


NEW QUESTION # 36
Add tolerations to a deployment
Task Information : Update payments/api deployment to tolerate dedicated=payments:NoSchedule.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Patch deployment with toleration
* oc -n payments patch deploy api --type=merge -p '{
* "spec":{"template":{"spec":{"tolerations":[
* {"key":"dedicated","operator":"Equal","value":"payments","effect":"NoSchedule"}
* ]}}}
* }'
* Toleration allows pods to schedule onto tainted nodes.
* Verify scheduling
* oc -n payments get pods -o wide


NEW QUESTION # 37
Create and use a service account token via kubeconfig
Task Information : Create SA ci-bot in ci namespace and generate a kubeconfig that authenticates using its token.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Create namespace and service account
* oc new-project ci
* oc -n ci create sa ci-bot
* The SA will represent automation access.
* Grant permissions (example: edit in namespace)
* oc -n ci policy add-role-to-user edit system:serviceaccount:ci:ci-bot
* Without permissions, token auth succeeds but API actions are denied.
* Generate token (TokenRequest)
* TOKEN=$(oc -n ci create token ci-bot)
* OCP issues a short-lived token by default (good practice).
* Create kubeconfig using the token
* oc config set-cluster lab --server="$(oc whoami --show-server)" \
* --insecure-skip-tls-verify=true --kubeconfig=ci-bot.kubeconfig
* oc config set-credentials ci-bot --token="$TOKEN" --kubeconfig=ci-bot.kubeconfig
* oc config set-context ci --cluster=lab --user=ci-bot --namespace=ci \
* --kubeconfig=ci-bot.kubeconfig
* oc config use-context ci --kubeconfig=ci-bot.kubeconfig
* This produces a self-contained kubeconfig for CI automation.
* Test access
* oc --kubeconfig=ci-bot.kubeconfig get pods


NEW QUESTION # 38
Spread replicas using podAntiAffinity
Task Information : Configure payments/api to prefer scheduling pods on different nodes.

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
* Patch deployment with preferred podAntiAffinity
* oc -n payments patch deploy api --type=merge -p '{
* "spec":{"template":{"spec":{"affinity":{
* "podAntiAffinity":{
* "preferredDuringSchedulingIgnoredDuringExecution":[{
* "weight":100,
* "podAffinityTerm":{
* "labelSelector":{"matchLabels":{"app":"api"}},
* "topologyKey":"kubernetes.io/hostname"
* }
* }]
* }
* }}}}
* }'
* Encourages spread across nodes to reduce single-node impact.
* Verify spread
* oc -n payments get pods -o wide


NEW QUESTION # 39
GitOps and MachineConfig - Push MachineConfig to Git

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
Step 1: Make sure the MachineConfig YAML has already been created or modified in the local Git repository.
This Task assumes the file change is ready to be committed.
Step 2: Run the command:
git commit -am "Add MachineConfig for motd" & & git push origin main
Step 3: Verify the commit succeeds and the push goes to the main branch.
The lab output shows:
[main 8d32a1] Add MachineConfig for motd
Detailed explanation:
This Task is part of a GitOps workflow. Instead of manually applying changes directly to the cluster, the desired configuration is stored in Git, and a GitOps controller such as Argo CD synchronizes the cluster to match the repository state. The command commits all tracked modified files with the message Add MachineConfig for motd and then pushes the change to the main branch. In this model, Git becomes the source of truth. A MachineConfig is typically used to manage node-level operating system configuration in OpenShift, so pushing it through GitOps ensures the change is auditable, repeatable, and reconciled declaratively. If the commit does not include the intended YAML, the synchronization mechanism will not apply the desired change.


NEW QUESTION # 40
Service Accounts and RBAC - Create Audit Service Account

Answer:

Explanation:
See the solution below in Explanation:
Explanation:
Step 1: Ensure the target project exists.
The lab specifies the namespace/project auth-audit.
Step 2: Run the command:
oc create sa audit -n auth-audit
Step 3: Verify creation.
The lab output shows:
serviceaccount/audit created
Detailed explanation:
This creates a service account named audit in the auth-audit namespace. Service accounts provide non-human identities for workloads and automation processes running inside the cluster. They are also commonly used when controlled API access is needed for scripts, jobs, or external kubeconfig generation. Creating a dedicated service account instead of using the default one is good practice because it supports least privilege and clearer access tracking. In exam and administration scenarios, service accounts are often paired with explicit RBAC bindings to grant only the permissions needed for the intended Task SIMULATION . This step lays the identity foundation before assigning a role in the following Task SIMULATION .


NEW QUESTION # 41
......

Ultimate EX380 Guide to Prepare Free Latest RedHat Practice Tests Dumps: https://examsboost.validbraindumps.com/EX380-exam-prep.html