Skip to main content

Quiz Module 5 - Configuration and Secrets

Instructions​

This quiz contains 30 multiple-choice questions.


Question 1​

What is a ConfigMap?

Show explanation

Correct answer: A Kubernetes object that stores non-sensitive configuration data

Explanation: ConfigMaps allow you to separate configuration from application code.


Question 2​

What is a Secret in Kubernetes?

Show explanation

Correct answer: A Kubernetes object that stores sensitive data such as passwords, tokens, or keys

Explanation: Secrets are similar to ConfigMaps but are designed to store sensitive data. They are stored in base64 (not encrypted by default).


Question 3​

How do you create a ConfigMap from a file?

Show explanation

Correct answer: kubectl create configmap [name] --from-file=[file]

Explanation: The --from-file flag allows you to create a ConfigMap from a file, where the key is the filename and the value is the file content.


Question 4​

What is the maximum size of an entry in a ConfigMap?

Show explanation

Correct answer: 1 MiB

Explanation: Each entry in a ConfigMap or Secret is limited to 1 MiB. For larger data, use volumes.


Question 5​

How do you inject a ConfigMap as environment variables in a Pod?

Show explanation

Correct answer: envFrom: - configMapRef: name: [configmap-name]

Explanation: envFrom allows you to inject all keys from a ConfigMap as environment variables. For a specific key, use env with valueFrom.configMapKeyRef.


Question 6​

How do you mount a ConfigMap as a volume in a Pod?

Show explanation

Correct answer: volumes: - name: config configMap: name: [configmap-name]

Explanation: To mount a ConfigMap as a volume, define it in the Pod's volumes section, then use volumeMounts to mount it in the container.


Question 7​

What is the main difference between a ConfigMap and a Secret?

Show explanation

Correct answer: Secrets are designed for sensitive data and stored in base64, ConfigMaps are for non-sensitive data

Explanation: Secrets are intended for sensitive data but are not encrypted by default (just base64-encoded). ConfigMaps are for non-sensitive data.


Question 8​

How do you create a Secret from literals?

Show explanation

Correct answer: kubectl create secret generic [name] --from-literal=[key]=[value]

Explanation: --from-literal allows you to create a Secret directly from key-value pairs on the command line.


Question 9​

What is the best practice for managing secrets in production?

Show explanation

Correct answer: Use external secret management tools (Vault, AWS Secrets Manager) with External Secrets Operator

Explanation: Secrets should never be committed to Git. Use external tools like Vault or cloud services with External Secrets Operator for secure management.


Question 10​

What is encryption at rest for Secrets?

Show explanation

Correct answer: A feature that encrypts Secrets in etcd using an EncryptionConfig

Explanation: Encryption at rest encrypts Secrets in etcd by configuring an EncryptionConfig with encryption providers (AES, KMS, etc.).


Question 11​

Which command allows you to see the decoded content of a Secret?

Show explanation

Correct answer: kubectl get secret [name] -o jsonpath='{.data.[key]}' | base64 -d

Explanation: Secrets are stored in base64. To see the decoded content, use jsonpath to extract the value and base64 -d to decode it.


Question 12​

What is External Secrets Operator?

Show explanation

Correct answer: A Kubernetes operator that syncs secrets from external systems (AWS Secrets Manager, Vault, etc.) to Kubernetes

Explanation: External Secrets Operator enables centralized secret management in external systems and automatically syncs them to Kubernetes.


Question 13​

What is the recommended method for injecting a Secret into a Pod?

Show explanation

Correct answer: Use envFrom with secretRef or env with valueFrom.secretKeyRef

Explanation: Secrets should be injected via envFrom (all keys) or env with valueFrom.secretKeyRef (a specific key), never hardcoded.


Question 14​

What is the difference between env and envFrom?

Show explanation

Correct answer: env allows injecting individual variables, envFrom injects all keys from a ConfigMap/Secret

Explanation: env provides precise control over each variable, while envFrom automatically injects all keys as environment variables.


Question 15​

What is the best practice for permissions on a Secret volume?

Show explanation

Correct answer: 0400 (read-only for the owner)

Explanation: Secret volumes should be mounted as read-only (readOnly: true) with restrictive permissions (defaultMode: 0400) for security.


Question 16​

What is an immutable ConfigMap?

Show explanation

Correct answer: A ConfigMap that cannot be modified after creation, improving performance and security

Explanation: Immutable ConfigMaps (immutable: true) cannot be modified, reducing the load on the API Server and improving security.


Question 17​

How do you update a ConfigMap used by a running Pod?

Show explanation

Correct answer: If mounted as a volume, you need to restart the Pod. If injected as env, you need to recreate the Pod

Explanation: ConfigMaps mounted as volumes are updated periodically, but injected environment variables do not change without recreating the Pod.


Question 18​

What is the command to create a Secret from a file?

Show explanation

Correct answer: kubectl create secret generic [name] --from-file=[key]=[file]

Explanation: --from-file allows you to create a Secret from a file, where you can specify the key and the source file.


Question 19​

What is secret rotation?

Show explanation

Correct answer: The process of periodically replacing secrets with new values for security

Explanation: Secret rotation is a security best practice that involves regularly changing passwords, tokens, and keys to limit the impact of a compromise.


Question 20​

What is the difference between an Opaque Secret and a TLS Secret?

Show explanation

Correct answer: Opaque is for arbitrary data, TLS is specifically for TLS certificates

Explanation: TLS Secrets have specific keys (tls.crt, tls.key) and are used by tools like cert-manager for SSL/TLS certificates.


Question 21​

How do you organize ConfigMaps by environment?

Show explanation

Correct answer: Create separate ConfigMaps for each environment (dev, staging, prod) with different names

Explanation: The best practice is to create distinct ConfigMaps for each environment, allowing clear management and avoiding configuration errors.


Question 22​

What is the total size limit of a ConfigMap or Secret?

Show explanation

Correct answer: Limited by etcd (typically 1.5 MiB per object)

Explanation: While each entry is limited to 1 MiB, the total size of a ConfigMap or Secret is limited by etcd, typically around 1.5 MiB.


Question 23​

What is a Secret volume type?

Show explanation

Correct answer: A volume that mounts Secret data as files in a Pod

Explanation: Secrets can be mounted as volumes, where each key becomes a file with the decoded value as content.


Question 24​

What is the best practice for secrets in YAML files?

Show explanation

Correct answer: Never put secrets in plain text, use references (secretKeyRef) or external tools

Explanation: Secrets should never be in plain text in YAML files, even in base64. Use references or secret management tools.


Question 25​

How do you use a ConfigMap in a Deployment?

Show explanation

Correct answer: In the Pod template of the Deployment, via env, envFrom, or volumes

Explanation: ConfigMaps are referenced in the Pod template (spec.template.spec) of a Deployment, via env/envFrom for environment variables or volumes for files.


Question 26​

What is a Service Account in the context of Secrets?

Show explanation

Correct answer: An identity for Pods that can be associated with Secrets for API Server access

Explanation: Service Accounts can have imagePullSecrets to access private registries, but are not directly related to application Secrets.


Question 27​

What is the command to delete a ConfigMap?

Show explanation

Correct answer: kubectl delete configmap [name]

Explanation: kubectl delete is the standard command for deleting any Kubernetes resource, including ConfigMaps.


Question 28​

What is a docker-registry Secret?

Show explanation

Correct answer: A Secret that stores credentials for accessing a private Docker registry

Explanation: docker-registry Secrets are used as imagePullSecrets to allow Pods to pull images from private registries.


Question 29​

What is the best practice for versioning ConfigMaps?

Show explanation

Correct answer: Use labels with version numbers and create new ConfigMaps for each version

Explanation: Versioning ConfigMaps with labels allows you to track changes and facilitates rollbacks by referencing different versions.


Question 30​

What is the difference between valueFrom.configMapKeyRef and valueFrom.secretKeyRef?

Show explanation

Correct answer: configMapKeyRef references a key in a ConfigMap, secretKeyRef references a key in a Secret

Explanation: These two references work the same way but point to different resource types: ConfigMap for non-sensitive data, Secret for sensitive data.


Quiz Results​

Congratulations on completing the Module 5 quiz!

Score:

  • 25-30 correct answers: Excellent! You have mastered configuration and secrets.
  • 20-24 correct answers: Very good! Review concepts where you had difficulty.
  • 15-19 correct answers: Good! Review the chapters on ConfigMaps and Secrets.
  • Less than 15: Recommended to review the module before continuing.

Quiz created: December 2024