Senior 6 min · March 06, 2026

CI/CD Interview Questions — Real Deployment Failures

Rollback skipped schema reversion while image reverted, causing 45min downtime.

N
Naren · Founder
Plain-English first. Then code. Then the interview question.
About
 ● Production Incident 🔎 Debug Guide
Quick Answer
  • CI/CD automates code merging, testing, and deployment to eliminate manual handoffs
  • CI merges all devs' code multiple times a day with automated builds/tests
  • CD (Delivery) keeps a human gate before production; CD (Deployment) removes it
  • Pipeline stages should run fast checks first: lint, unit, then slow checks: integration, security
  • Build once, promote the same artifact through environments — never rebuild for staging
  • Production gotcha: depends_on without healthchecks causes silent startup failures
Plain-English First

Imagine a busy bakery. Every time a baker tweaks a recipe, someone has to taste it, check the packaging, and get it onto the shelf — all before opening time. CI/CD is that entire process running automatically the moment a baker saves their recipe change. No waiting for the head baker to manually approve each loaf. The oven fires, the taste-tester runs their checks, and the bread ships — every single time, reliably and fast.

Software teams used to deploy code the way airlines used to board passengers — chaotic, manual, and full of last-minute surprises. A developer would finish a feature on a Tuesday, hand it to QA on Thursday, and by the time it hit production on a Friday afternoon, nobody remembered exactly what changed or why something broke. CI/CD was invented to kill that cycle permanently.

Continuous Integration solves the "works on my machine" problem by automatically merging, building, and testing every code change against the shared codebase within minutes. Continuous Delivery solves the deployment anxiety problem by automating the path from a passing test suite all the way to a live production environment. Together they turn deployment from a monthly ritual of dread into a boring, repeatable Tuesday activity.

By the end of this article you'll be able to answer CI/CD interview questions at an intermediate-to-senior level — not by reciting definitions, but by explaining trade-offs, describing real failure modes, and demonstrating you've actually thought about pipelines in production. That difference is exactly what separates candidates who get offers from those who get "we'll be in touch".

Core CI/CD Concepts: What Interviewers Are Really Testing

Most interviewers open with 'explain CI/CD' not because the answer is hard, but because it immediately reveals whether you understand the WHY or just memorised the glossary. The safest trap is giving a textbook answer. Don't.

CI (Continuous Integration) is the practice of merging every developer's work into a shared branch multiple times a day, triggering an automated build and test suite each time. The critical word is 'automated' — if a human has to kick anything off, it's not CI. The goal is to find integration bugs within minutes, not weeks.

CD has two flavours worth distinguishing clearly in interviews. Continuous Delivery means every passing build is packaged and ready to deploy, but a human still clicks the button to release. Continuous Deployment goes one further — every passing build is automatically deployed to production with no human gate. The distinction matters enormously in regulated industries like healthcare or finance where an audit trail and manual sign-off are legal requirements.

A mature pipeline is also idempotent: running it twice with the same code should produce the same artifact and the same deployed state. If your pipeline is flaky — producing different results on the same commit — you've got a non-determinism problem that will erode team trust fast.

github-actions-ci-pipeline.ymlYAML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
name: CI PipelineBuild, Test, and Lint

on:
  push:
    branches: ['**']
  pull_request:
    branches: [main]

jobs:
  build-and-test:
    runs-on: ubuntu-22.04

    strategy:
      matrix:
        node-version: [18.x, 20.x]

    steps:
      - name: Checkout source code
        uses: actions/checkout@v4

      - name: Set up Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Run ESLint
        run: npm run lint

      - name: Run tests with coverage
        run: npm test -- --coverage

      - name: Upload coverage report
        uses: actions/upload-artifact@v4
        with:
          name: coverage-report-node-${{ matrix.node-version }}
          path: coverage/
          retention-days: 14
Output
✓ Run ESLint — 0 errors
✓ Run tests with coverage — 47 passed
✓ Upload coverage report → coverage-report-node-18.x
All jobs passed. Duration: 1m 43s
Interview Gold:
When an interviewer asks 'what's the difference between Continuous Delivery and Continuous Deployment?', most candidates fumble it. Nail it with one sentence: 'Delivery keeps a human gate before production; Deployment removes it entirely.' Then immediately add when you'd choose each — regulated industries need Delivery, high-velocity SaaS teams often prefer Deployment.
Production Insight
In production, a non-idempotent pipeline breaks build caching.
If builds produce different artifacts on the same SHA, rollback becomes unpredictable.
Rule: pin versions in package managers, use lockfiles, and containerize build environments.
Key Takeaway
CI/CD is about automation and trust.
If your pipeline fails randomly, no one trusts it.
Idempotency is what makes rollback safe.
Choosing CI/CD Strategy Based on Team Context
IfRegulated industry (healthcare, finance)
UseChoose Continuous Delivery with manual approval gates. Document all releases.
IfStartup / SaaS with high iteration speed
UseConsider Continuous Deployment if test coverage > 80% and you have feature flags.
IfMonorepo with 10+ services
UseImplement selective CI: only build changed services (Bazel, Nx, or custom diff).

Pipeline Stages, Artifacts, and the Shift-Left Testing Strategy

A CI/CD pipeline isn't just 'build then deploy.' Its internal structure — the order of stages and what lives inside each one — has a massive impact on feedback speed, cost, and reliability.

The shift-left principle means moving quality checks as early in the pipeline as possible. Running a 20-minute integration test suite before you even lint the code is a waste of everyone's time. A well-ordered pipeline should look like: fast checks first (lint, type checking, unit tests), slower checks next (integration tests, security scans), and deployment stages last.

Artifact management is a concept that trips people up in interviews. An artifact is the immutable, versioned output of a build — a Docker image, a compiled JAR, a zipped Lambda function. The key insight is: you should build once and promote the same artifact through environments. Never rebuild from source for staging or production. Rebuilding introduces the possibility of environmental differences creeping in — different package versions, different build flags. Promoting a single artifact eliminates that entire class of bug.

Pipeline stages also need to be fast-fail ordered. If a security vulnerability scan takes 8 minutes, don't put it before your 30-second unit tests. The unit tests gate everything — if they fail, there's no point scanning for vulnerabilities in broken code.

gitlab-ci-multi-stage-pipeline.ymlYAML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
stages:
  - validate
  - test
  - security
  - build
  - deploy-staging
  - deploy-production

variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA

lint-and-typecheck:
  stage: validate
  image: node:20-alpine
  script:
    - npm ci --quiet
    - npm run lint
    - npm run typecheck
  cache:
    key: $CI_COMMIT_REF_SLUG
    paths:
      - node_modules/

unit-tests:
  stage: test
  image: node:20-alpine
  script:
    - npm ci --quiet
    - npm run test:unit -- --coverage
  artifacts:
    paths:
      - coverage/
    expire_in: 1 week

build-docker-image:
  stage: build
  image: docker:24
  services:
    - docker:24-dind
  script:
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG
  only:
    - main

deploy-to-production:
  stage: deploy-production
  image: bitnami/kubectl:latest
  script:
    - kubectl set image deployment/myapp-production myapp=$IMAGE_TAG
  when: manual
  only:
    - main
Output
✓ validate │ lint-and-typecheck
✓ test │ unit-tests
✓ build │ build-docker-image → registry.gitlab.com/org/myapp:a3f9c12
⏸ deploy │ deploy-to-production (Manual Approval Required)
Watch Out:
Never use a floating tag like ':latest' as your deployment image tag in production. If the image registry is unavailable when Kubernetes tries to pull during a rollout, it can't verify what ':latest' is and may pull a cached older image silently. Always deploy with the immutable SHA tag — it's traceable, reproducible, and rollback-friendly.
Production Insight
I once saw a team spend 30 minutes debugging a production bug that only occurred because staging used a different package version.
The rebuild-from-source pipeline had injected a minor patch that wasn't in the original artifact.
Rule: build once, promote everywhere — it's not a best practice, it's a severity threshold.
Key Takeaway
Order stages from fastest to slowest.
The first failure should be the cheapest one.
Build once, promote everywhere.
Ordering Pipeline Stage Checks
IfTeam has slow integration tests (>5 min)
UseRun unit tests and lint first. Fail fast. Gate integration tests on unit pass.
IfTeam deploys multiple times per day
UseInvest in parallelizing stages where possible; keep feedback loop under 5 minutes.
IfArtifact is a compiled binary or Docker image
UseAlways store artifact with immutable tag; promote same artifact across environments.

Rollback Strategies, Blue-Green Deployments, and Canary Releases

This is where intermediate candidates reveal whether they've shipped to real production or just read about it. Rollback isn't an afterthought — it's a first-class design decision you make before you write the first pipeline stage.

The simplest rollback strategy is re-deploying the previous artifact. If you've been promoting immutable images tagged by Git SHA, rolling back means pointing your deployment at the last known-good SHA. That's it. This is why the "build once, promote everywhere" principle isn't just tidiness — it's the foundation of fast rollback.

Blue-green deployment runs two identical production environments — "blue" currently receives live traffic, "green" has the new version deployed and warmed up. When you're confident in green, you flip the load balancer. If anything goes wrong, one command flips it back. Zero-downtime, instant rollback. The cost is maintaining two environments simultaneously.

Canary releases take a more gradual approach. You route a small percentage of traffic — say 5% — to the new version while 95% stays on the old. You monitor error rates, latency, and business metrics. If the canary looks healthy after your threshold period, you progressively shift more traffic: 5% → 25% → 100%. If the canary shows elevated errors, you drain it instantly. This is how Netflix, Spotify, and Amazon deploy risky changes at scale.

kubernetes-canary-deployment.ymlYAML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
apiVersion: apps/v1
kind: Deployment
metadata:
  name: payment-service-stable
  labels:
    app: payment-service
    track: stable
spec:
  replicas: 9
  template:
    spec:
      containers:
        - name: payment-service
          image: registry.mycompany.io/payment-service:v1.2.0
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: payment-service-canary
  labels:
    app: payment-service
    track: canary
spec:
  replicas: 1
  template:
    spec:
      containers:
        - name: payment-service
          image: registry.mycompany.io/payment-service:v1.3.0
---
apiVersion: v1
kind: Service
metadata:
  name: payment-service
spec:
  selector:
    app: payment-service
  ports:
    - port: 80
      targetPort: 3000
Output
Traffic split: stable=90% canary=10%
Canary error rate: 0.12% (stable: 0.11%) ✓
Pro Tip:
In interviews, when you describe canary releases, always mention what metrics you monitor during the canary window. Error rate and p99 latency are obvious — but business metrics like checkout completion rate or payment success rate often catch bugs that pure infrastructure metrics miss entirely. Mentioning this shows you've thought about production systems holistically, not just uptime dashboards.
Production Insight
A real canary once passed all technical metrics but caused a 12% drop in new user signups.
The bug was in the A/B testing logic itself, which misassigned users to the old variant.
Rule: monitor the domain metric — it's the only truth.
Key Takeaway
Rollback is a first-class feature.
Design it before you deploy.
Business metrics catch what tech metrics miss.
Choosing a Rollback Strategy
IfNeed instant rollback, willing to pay double infrastructure
UseBlue-green deployments. Flip load balancer.
IfTraffic is low, cost-sensitive
UseRollback via redeploying previous image. Works if build once principle is followed.
IfHigh-risk release, want gradual exposure
UseCanary release with progressive traffic shift. Automate drain of canary on error.

GitOps, Secrets Management, and Pipeline Security — The Questions That Filter Senior Candidates

This section covers the questions that separate the "I've read about CI/CD" candidates from the "I've run CI/CD in production and felt the pain" ones.

GitOps is the practice of using a Git repository as the single source of truth for infrastructure and application state. Instead of running kubectl apply directly from a pipeline, you commit the desired state to Git and a tool like ArgoCD or Flux continuously reconciles the cluster to match. The benefit is a complete audit trail — every infrastructure change has a commit, a PR, a reviewer, and a timestamp. Rolling back is a Git revert. This is increasingly popular in Kubernetes-heavy organisations.

Secrets management is where most junior-to-intermediate pipelines have dangerous holes. Hardcoding credentials in pipeline YAML files is the most common and most dangerous mistake. The right approach is to use your CI platform's native secret store (GitHub Actions Secrets, GitLab CI Variables marked as 'masked'), and ideally back those with a dedicated secrets manager like HashiCorp Vault or AWS Secrets Manager for production workloads. The key principle: secrets should be injected at runtime as environment variables, never baked into images or committed to repositories.

Pipeline security also means pinning action versions by commit SHA in GitHub Actions — not by tag. Tags are mutable; a compromised third-party action can change what @v3 points to overnight. Pinning by SHA (uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683) means you're immune to that supply chain attack vector.

secure-pipeline-with-vault-secrets.ymlYAML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
name: Secure Deploy Pipeline

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-22.04
    permissions:
      id-token: write
      contents: read

    steps:
      - name: Checkout source code
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683

      - name: Authenticate to HashiCorp Vault via OIDC
        uses: hashicorp/vault-action@d1720f055e0635fd932a1d2a48f87a666a57906c
        with:
          url: https://vault.mycompany.io
          method: jwt
          role: github-actions-deploy
          secrets: |
            secret/data/production/database DB_PASSWORD | DATABASE_PASSWORD

      - name: Deploy to AWS ECS
        run: |
          aws ecs update-service --cluster prod --service pay --force-new-deployment
        env:
          DATABASE_PASSWORD: ${{ env.DATABASE_PASSWORD }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Output
✓ OIDC Authentication Success
✓ Secrets injected as env vars
✓ ECS deployment triggered
Workflow completed successfully.
Watch Out:
Using echo $DATABASE_PASSWORD anywhere in your pipeline — even "just for debugging" — will print the secret in plain text in your pipeline logs. GitHub will attempt to mask known secrets, but partial string matches can still leak. Never echo secrets. Use printenv | grep -c DATABASE_PASSWORD (just prints the count) to verify a variable is set without exposing its value.
Production Insight
A team once had a secret leaked because they printed it in a debug step; the log was indexed by Elasticsearch and a bot scraped it.
It cost them three days of rotating credentials across 12 services.
Rule: never print secrets, never log secrets, and scan pipeline output for accidental exposure.
Key Takeaway
Secrets are not for the pipeline script.
They're injected at runtime, never stored in code.
Pin third-party actions by SHA, not by tag.
Secrets Management Approach
IfSmall team, single cloud provider
UseUse CI platform's encrypted secrets. Store per environment.
IfEnterprise, multiple environments, compliance requirements
UseIntegrate with HashiCorp Vault using OIDC. Rotate secrets automatically.
IfThird-party actions or images in pipeline
UsePin action versions by commit SHA. Scan with Dependabot or Snyk.

Pipeline Observability, Monitoring, and Remediation: What Senior Roles Require

The best-designed pipeline is worthless if no one knows when it breaks. Observability in CI/CD means you can answer: Is the pipeline passing? How long did it take? Which stage failed? And most importantly, what was the change that caused the failure?

Start by exposing pipeline metrics: duration per stage, failure rate, queue time. These feed into dashboards that show trends (e.g., tests are taking longer this week — maybe something is slowing down). Use the CI/CD platform's built-in analytics, or export to Prometheus/Grafana if you need custom queries.

Remediation should be as automated as possible. Common patterns: auto-retry flaky tests (up to 3 times) if they failed on a transient network issue; auto-block merges to main if unit tests fail; auto-create a Jira ticket if integration tests fail more than twice in a row.

Another senior topic: cost management. Pipeline runs cost money, especially if they spin up full environments. Use caching, parallelisation, and selective triggering (only build changed microservices) to keep costs predictable. In interviews, mentioning that you monitor pipeline cost per commit shows you treat CI/CD as a production system itself, not a free utility.

gitlab-ci-pipeline-monitoring.ymlYAML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
stages:
  - build
  - test
  - deploy

variables:
  CI_DEBUG_TRACE: "false"

build-job:
  stage: build
  script:
    - echo "Building..."
    - make build
  artifacts:
    paths:
      - dist/
    expire_in: 2 hours

test:
  stage: test
  script:
    - npm run test:ci
  after_script:
    - ./scripts/metrics.sh  # send duration and result to InfluxDB

metrics-exporter:
  stage: deploy
  script:
    - curl -X POST -d "status=$CI_JOB_STATUS&duration=$CI_JOB_DURATION" http://monitoring.example.com/pipeline
  only:
    - main
Output
✓ build-job: 4.2s
✓ test: 12.1s
✓ metrics-exporter: sent duration=12.1s
Pipeline finished in 16.7s
Interview Gold:
When asked 'how do you monitor your CI/CD pipelines?' don't just say Grafana. Be specific: 'I track stage duration, failure rate, and queue time. I alert when the main branch pipeline fails, and I use dashboards to spot trends like test suite bloat.' This shows operational maturity.
Production Insight
A team I worked with had a pipeline that silently took twice as long every month because they never monitored duration.
A single test was adding 10 seconds per commit, and after three months the pipeline was 30 minutes long.
Rule: track pipeline performance like any other system — if it gets slower, investigate.
Key Takeaway
Treat your pipeline as a production system.
Monitor it, alert on it, and fix it when it degrades.
Cost per commit is a metric senior engineers track.
Pipeline Remediation Automation
IfFlaky test failure (network timeout)
UseAuto-retry up to 3 times after 30-second delay. Escalate if persists.
IfUnit test failure on main branch
UseBlock merge and notify team via Slack. Auto-create a Jira ticket with failure details.
IfIntegration test suite duration > 30 minutes
UseSplit into parallel partitions. Investigate slow tests using profiling.
● Production incidentPOST-MORTEMseverity: high

The Silent Rollback That Cost 45 Minutes of Downtime

Symptom
After a supposedly successful rollback, users reported that new orders weren't saving. The monitoring dashboard showed no deployment events for the last hour.
Assumption
The team assumed that because the pipeline completed without errors, the rollback was clean.
Root cause
The blue-green deployment flipped back to the old environment, but the old environment didn't have the latest schema changes applied. The rollback script only redeployed the previous Docker image but skipped database migration reversion.
Fix
1. Add a pre-rollback hook that checks current schema version against target. 2. Use transactional schema migrations (e.g., Flyway undo scripts) that are executed on rollback. 3. Implement a canary health check that verifies reads and writes before declaring success.
Key lesson
  • Rollback is not just reverting code — it must revert all state changes including database schema.
  • Always test rollbacks on a staging environment with production-like data.
  • Pipeline success is not deployment success. Separate validation logic from pipeline exit codes.
Production debug guideCommon symptoms and the actions that fix them4 entries
Symptom · 01
Pipeline passes all stages but production Pod shows old version
Fix
Check kubectl get pods -w during deployment. Verify imagePullPolicy: Always. Check if the new image tag exists in the registry.
Symptom · 02
Pipeline fails at 'npm install' with EACCES or permissions error
Fix
Use npm ci instead of npm install. Ensure the working directory is owned by the CI user. Add a .npmrc with correct registry access.
Symptom · 03
Canary deployment shows elevated error rate but metrics look normal
Fix
Check business metrics (e.g., checkout completion rate) not just error rates and latency. Often business metrics catch bugs that p99 latency misses.
Symptom · 04
ArgoCD reports OutOfSync even though Git commit is same
Fix
Run argocd app diff <app> and look for auto-generated fields (e.g., replica count, labels) that drift. Use sync options like Prune=true, ApplyOutOfSyncOnly=true.
★ CI/CD Pipeline Debugging Cheat SheetQuick commands and actions for the most common pipeline failures
Secrets exposed in logs
Immediate action
Stop the pipeline, rotate secret, revoke exposed credentials
Commands
grep -r 'secret-token' .git/
git filter-branch --force --index-filter ... to purge
Fix now
Add a custom log scrubber action in the pipeline. Use masked variables.
Docker build fails with 'no space left on device'+
Immediate action
Clear CI runner's Docker cache
Commands
docker system prune -a --volumes
df -h /var/lib/docker
Fix now
Add a cleanup step before builds: docker builder prune -f
Test flakes / non-deterministic failures+
Immediate action
Check for shared mutable state, race conditions, or network dependencies
Commands
Re-run failed tests 3 times: pytest --lf --tb=short --count=3
Add `--junitxml` to capture test report and look for timing sensitive tests
Fix now
Isolate test execution: use test containers, reset state per test case
Deployment StrategyDowntimeRollback SpeedTraffic ControlInfrastructure CostBest For
Rolling UpdateNear-zeroSlow (re-deploys old)None (all-or-nothing)No extra costLow-risk updates with stateless services
Blue-GreenZeroInstant (flip LB)None (hard switch)2x infrastructure costHigh-risk releases needing instant rollback
Canary ReleaseZeroInstant (drain canary)Full control (% based)~10% extra costHigh-volume services where you need real user validation
Feature FlagsZeroInstant (toggle flag)Per-user granularityNo extra infraFeature rollouts decoupled from deployments
RecreateYes (brief)Requires re-deployNoneNo extra costDev/staging environments only — never production

Key takeaways

1
Continuous Delivery keeps a human approval gate before production; Continuous Deployment removes it
know which one your target company uses and be ready to argue the trade-offs for their specific industry.
2
Build Once, Promote Everywhere
Never rebuild your Docker image for different environments. Rebuilding introduces environmental drift; promoting a SHA-tagged image ensures staging and production are identical.
3
Shift-Left
Move quality checks (linting, unit tests) to the very beginning of the pipeline. Failing fast saves compute costs and developer time.
4
Idempotency
A deployment pipeline should be safe to run multiple times. If it fails halfway through, the next run should repair the state rather than creating duplicate resources.
5
Secrets must never appear in logs or images. Use runtime injection and scan for accidental exposure regularly.

Common mistakes to avoid

3 patterns
×

Merging to main infrequently and calling it CI

Symptom
Developers have 3-day-old feature branches; merging creates enormous conflicts that take hours to resolve. The pipeline catches bugs so late that fixing them is expensive.
Fix
Enforce short-lived branches (under 1 day ideally), use feature flags to merge incomplete work safely, and configure branch protection rules that require passing CI before merge.
×

Storing secrets in pipeline YAML or Docker images

Symptom
A docker history command or a git log reveals database passwords or API keys in plain text. Even 'deleted' commits remain in Git history and are trivially recoverable.
Fix
Immediately rotate any exposed credentials. Going forward, use your CI platform's encrypted secret store, never commit .env files (add them to .gitignore), and scan your repository with tools like truffleHog or git-secrets as a pipeline step.
×

Not testing the rollback procedure until a production incident forces it

Symptom
A bad deployment goes out, the team scrambles to roll back, discovers the rollback command was never tested, the documentation is wrong, and downtime extends from 2 minutes to 45 minutes while people panic-Google kubectl commands.
Fix
Schedule a quarterly 'game day' where you deliberately trigger a rollback in a staging environment. Document the exact commands, verify they work, and store them somewhere accessible — not in a document that requires VPN access to open.
INTERVIEW PREP · PRACTICE MODE

Interview Questions on This Topic

Q01SENIOR
Your pipeline passes all tests but the production deployment fails silen...
Q02SENIOR
How would you design a CI/CD pipeline for 20 microservices in one repo w...
Q03SENIOR
How do you verify the integrity of third-party GitHub Actions and avoid ...
Q04SENIOR
Compare and contrast Blue-Green versus Rolling updates when dealing with...
Q01 of 04SENIOR

Your pipeline passes all tests but the production deployment fails silently — the app is running the old version. How do you troubleshoot the discrepancy between the Deployment spec and the Pod state?

ANSWER
First, check the actual pod spec by running kubectl get pod <pod-name> -o jsonpath='{.spec.containers[0].image}' to confirm the image tag. If it's the old one, check the Deployment's rollback history: kubectl rollout history deployment/<name>. Then verify the imagePullPolicy: if set to IfNotPresent, Kubernetes may use a cached old image if the new tag is missing from the registry. The most common cause is that the pipeline built and pushed the image to one registry but the deployment manifest references a different registry or tag.
FAQ · 4 QUESTIONS

Frequently Asked Questions

01
What is the difference between CI, CD, and Continuous Deployment?
02
How do you handle secrets safely in a public repository's pipeline?
03
Why is 'Build Once, Promote Everywhere' so important?
04
What metrics should I monitor in my CI/CD pipeline?
🔥

That's DevOps Interview. Mark it forged?

6 min read · try the examples if you haven't

Previous
AWS Interview Questions
5 / 5 · DevOps Interview