2022-08-04: GitLab Shell doesn't boot on the latest version of Auto-deploy
Incident Roles
The DRI for this incident is the incident issue assignee, see roles and responsibilities.
Roles when the incident was declared:
- Incident Manager (IMOC): @marknuzzo,
@splattael (Shadow)
- Engineer on-call (EOC): @ahanselka
Current Status
More information will be added as we investigate the issue. For customers believed to be affected by this incident, please subscribe to this issue or monitor our status page for further updates.
Summary for CMOC notice / Exec summary:
- Customer Impact: None
- Service Impact: ServiceGitlab Shell
- Impact Duration: start time UTC - end time UTC ( duration in minutes )
- Root cause: RootCauseSoftware-Change
Timeline
Recent Events (available internally only):
- Deployments
- Feature Flag Changes
- Infrastructure Configurations
- GCP Events (e.g. host failure)
- Gitlab.com Latest Updates
All times UTC.
2022-08-04
- 16:01 Deploy for package
15.3.202208041221-eed1500a0bf.ce5a7e3de8a
begins: https://ops.gitlab.net/gitlab-com/gl-infra/deployer/-/pipelines/1345849 - 18:12 Notify sent to RM regarding the failure - the reason for the failure, however, was missed by the RM
- 18:12 Release Manager elects to begin the next auto-deployment with intent to capture the issue - this being package
15.3.202208041520-cfbed0ad0e3.ba7237ab3c1
- 18:54 Kubernetes Deployment begins - engagement of the problem is begins
- 19:00 Release Manager determines ServiceGitlab Shell is unable to start
- 19:15 Confirmation of root cause determined
- 19:58 Fix created
- 23:58 MR gitlab-org/charts/gitlab!2711 (merged) with the fix is merged
2022-08-05
-
00:22 @ggillies manually runs scheduled CI job to open Chart bumps (with the fix) in all environments. MRs are gitlab-com/gl-infra/k8s-workloads/gitlab-com!2012 (merged) gitlab-com/gl-infra/k8s-workloads/gitlab-com!2011 (merged) gitlab-com/gl-infra/k8s-workloads/gitlab-com!2010 (merged)
-
01:45 @ggillies rolls out the helm chart fix successfully to all environments.
-
02:15 The auto-deploy
15.3.202208050020-cb888eb9f36.74bb294429f
successfully completes ingstg-cny
and the incident is marked as resolved -
...
Create related issues
Use the following links to create related issues to this incident if additional work needs to be completed after it is resolved:
Takeaways
- When a failure at the Pod level occurs, we have such a long window of oppurtunity, it's really difficult to find the root cause, especially if the deployment has been torn down, thus we lack the knowledge of quickly identifying the containers associated with the deploy
Corrective Actions
Corrective actions should be put here as soon as an incident is mitigated, ensure that all corrective actions mentioned in the notes below are included.
- Need to improve troubleshooting failed deployments - speed and spotting the failure
Note: In some cases we need to redact information from public view. We only do this in a limited number of documented cases. This might include the summary, timeline or any other bits of information, laid out in out handbook page. Any of this confidential data will be in a linked issue, only visible internally. By default, all information we can share, will be public, in accordance to our transparency value.
Incident Review
A change was made to CNG which reduces the image size of various GitLab images by a significant amount: gitlab-org/build/CNG!1081 (merged). Unfortunately this uncovered a bug that had been hiding in our helm charts that had been present for a significant amount of time. The templating of files would incorrectly create an empty list in the configuration file due to looking in the incorrect location for the appropriate ssh keys to be served by the Pods: #7551 (comment 1051445690).
-
Ensure that the exec summary is completed at the top of the incident issue, the timeline is updated and relevant graphs are included in the summary -
If there are any corrective action items mentioned in the notes on the incident, ensure they are listed in the "Corrective Action" section -
Fill out relevant sections below or link to the meeting review notes that cover these topics
Customer Impact
- Who was impacted by this incident? (i.e. external customers, internal customers)
-
What was the customer experience during the incident? (i.e. preventing them from doing X, incorrect display of Y, ...)
- n/a
-
How many customers were affected?
- n/a
-
If a precise customer impact number is unknown, what is the estimated impact (number and ratio of failed requests, amount of traffic drop, ...)?
- n/a
What were the root causes?
- gitlab-org/build/CNG!1081 (merged) uncovered a bug that lived in our helm chart
Incident Response Analysis
-
How was the incident detected?
- Notification from auto-deployments
-
How could detection time be improved?
- Good Question...
-
How was the root cause diagnosed?
- Very very manually. We duplicated a Pod deployment to make precise modifications that enabled us to determine if configurations and files associated with those configurations appeared as desired.
-
How could time to diagnosis be improved?
- Good Question...
-
How did we reach the point where we knew how to mitigate the impact?
- After root cause was diagnosed, we knew the template generation was failing, which pointed to the bug located in our helm charts
-
How could time to mitigation be improved?
- n/a
-
What went well?
- We fixed a bug that would've resulted in a broken configuration had we continued
Post Incident Analysis
-
Did we have other events in the past with the same root cause?
- No
-
Do we have existing backlog items that would've prevented or greatly reduced the impact of this incident?
- No
- Was this incident triggered by a change (deployment of code or change to infrastructure)? If yes, link the issue.
What went well?
- ...
Guidelines
Resources
- If the Situation Zoom room was utilised, recording will be automatically uploaded to Incident room Google Drive folder (private)