diff --git a/components/common-go/testing/fixtures.go b/components/common-go/testing/fixtures.go index e3061ee41e34cd..7d57865863309a 100644 --- a/components/common-go/testing/fixtures.go +++ b/components/common-go/testing/fixtures.go @@ -25,11 +25,12 @@ var force = flag.Bool("force", false, "overwrite .golden files even if they alre // FixtureTest is a test that is based on fixture and golden files. This is very convenient to test a largely variable surface with many variants. type FixtureTest struct { - T *testing.T - Path string - Test FixtureTestFunc - Fixture func() interface{} - Gold func() interface{} + T *testing.T + Path string + GoldPath func(path string) string + Test FixtureTestFunc + Fixture func() interface{} + Gold func() interface{} } // FixtureTestFunc implements the actual fixture test @@ -90,6 +91,9 @@ func (ft *FixtureTest) Run() { } goldenFilePath := fmt.Sprintf("%s.golden", strings.TrimSuffix(fn, filepath.Ext(fn))) + if ft.GoldPath != nil { + goldenFilePath = ft.GoldPath(fn) + } if *update { if _, err := os.Stat(goldenFilePath); *force || os.IsNotExist(err) { err = os.WriteFile(goldenFilePath, actual, 0600) diff --git a/components/ws-manager/pkg/manager/monitor.go b/components/ws-manager/pkg/manager/monitor.go index 57d4e32fc95f98..4f7671b0b9ea98 100644 --- a/components/ws-manager/pkg/manager/monitor.go +++ b/components/ws-manager/pkg/manager/monitor.go @@ -74,6 +74,8 @@ type Monitor struct { finalizerMap map[string]context.CancelFunc finalizerMapLock sync.Mutex + act actingManager + OnError func(error) } @@ -97,6 +99,10 @@ func (m *Manager) CreateMonitor() (*Monitor, error) { }, } res.eventpool = workpool.NewEventWorkerPool(res.handleEvent) + res.act = struct { + *Monitor + *Manager + }{&res, m} return &res, nil } @@ -202,7 +208,7 @@ func (m *Monitor) onPodEvent(evt watch.Event) error { }() m.writeEventTraceLog(status, wso) - err = m.actOnPodEvent(ctx, status, wso) + err = actOnPodEvent(ctx, m.act, status, wso) // To make the tracing work though we have to re-sync with OnChange. But we don't want OnChange to block our event // handling, thus we wait for it to finish in a Go routine. @@ -216,7 +222,7 @@ func (m *Monitor) onPodEvent(evt watch.Event) error { // actOnPodEvent performs actions when a kubernetes event comes in. For example we shut down failed workspaces or start // polling the ready state of initializing ones. -func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus, wso *workspaceObjects) (err error) { +func actOnPodEvent(ctx context.Context, m actingManager, status *api.WorkspaceStatus, wso *workspaceObjects) (err error) { pod := wso.Pod span, ctx := tracing.FromContext(ctx, "actOnPodEvent") @@ -231,9 +237,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus if status.Phase == api.WorkspacePhase_STOPPING || status.Phase == api.WorkspacePhase_STOPPED { // Beware: do not else-if this condition with the other phases as we don't want the stop // login in any other phase, too. - m.initializerMapLock.Lock() - delete(m.initializerMap, pod.Name) - m.initializerMapLock.Unlock() + m.clearInitializerFromMap(pod.Name) // Special case: workspaces timing out during backup. Normally a timed out workspace would just be stopped // regularly. When a workspace times out during backup though, stopping it won't do any good. @@ -246,7 +250,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus return err } - err = m.manager.markWorkspace(ctx, workspaceID, addMark(disposalStatusAnnotation, string(b))) + err = m.markWorkspace(ctx, workspaceID, addMark(disposalStatusAnnotation, string(b))) if err != nil { return err } @@ -264,7 +268,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus if status.Conditions.Failed != "" && !hasFailureAnnotation { // If this marking operation failes that's ok - we'll still continue to shut down the workspace. // The failure message won't persist while stopping the workspace though. - err := m.manager.markWorkspace(ctx, workspaceID, addMark(workspaceFailedBeforeStoppingAnnotation, "true")) + err := m.markWorkspace(ctx, workspaceID, addMark(workspaceFailedBeforeStoppingAnnotation, "true")) if err != nil { log.WithFields(wsk8s.GetOWIFromObject(&pod.ObjectMeta)).WithError(err).Debug("cannot mark workspace as workspaceFailedBeforeStoppingAnnotation") } @@ -277,7 +281,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus // The alternative is to stop the pod only when the workspaceFailedBeforeStoppingAnnotation is present. // However, that's much more brittle than stopping the workspace twice (something that Kubernetes can handle). // It is important that we do not fail here if the pod is already gone, i.e. when we lost the race. - err := m.manager.stopWorkspace(ctx, workspaceID, stopWorkspaceNormallyGracePeriod) + err := m.stopWorkspace(ctx, workspaceID, stopWorkspaceNormallyGracePeriod) if err != nil && !isKubernetesObjNotFoundError(err) { return xerrors.Errorf("cannot stop workspace: %w", err) } @@ -292,7 +296,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus if err != nil { // workspace initialization failed, which means the workspace as a whole failed - err = m.manager.markWorkspace(ctx, workspaceID, addMark(workspaceExplicitFailAnnotation, err.Error())) + err = m.markWorkspace(ctx, workspaceID, addMark(workspaceExplicitFailAnnotation, err.Error())) if err != nil { log.WithError(err).Warn("was unable to mark workspace as failed") } @@ -309,7 +313,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus if err != nil { // workspace initialization failed, which means the workspace as a whole failed - err = m.manager.markWorkspace(ctx, workspaceID, addMark(workspaceExplicitFailAnnotation, err.Error())) + err = m.markWorkspace(ctx, workspaceID, addMark(workspaceExplicitFailAnnotation, err.Error())) if err != nil { log.WithError(err).Warn("was unable to mark workspace as failed") } @@ -320,7 +324,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus if status.Phase == api.WorkspacePhase_RUNNING { // We need to register the finalizer before the pod is deleted (see https://book.kubebuilder.io/reference/using-finalizers.html). // TODO (cw): Figure out if we can replace the "neverReady" flag. - err = m.manager.modifyFinalizer(ctx, workspaceID, gitpodFinalizerName, true) + err = m.modifyFinalizer(ctx, workspaceID, gitpodFinalizerName, true) if err != nil { return xerrors.Errorf("cannot add gitpod finalizer: %w", err) } @@ -330,7 +334,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus // // Also, in case the pod gets evicted we would not know the hostIP that pod ran on anymore. // In preparation for those cases, we'll add it as an annotation. - err := m.manager.markWorkspace(ctx, workspaceID, deleteMark(wsk8s.TraceIDAnnotation), addMark(nodeNameAnnotation, wso.NodeName())) + err := m.markWorkspace(ctx, workspaceID, deleteMark(wsk8s.TraceIDAnnotation), addMark(nodeNameAnnotation, wso.NodeName())) if err != nil { log.WithError(err).Warn("was unable to remove traceID and/or add host IP annotation from/to workspace") } @@ -339,7 +343,7 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus if status.Phase == api.WorkspacePhase_STOPPING { if !isPodBeingDeleted(pod) { // this might be the case if a headless workspace has just completed but has not been deleted by anyone, yet - err := m.manager.stopWorkspace(ctx, workspaceID, stopWorkspaceNormallyGracePeriod) + err := m.stopWorkspace(ctx, workspaceID, stopWorkspaceNormallyGracePeriod) if err != nil && !isKubernetesObjNotFoundError(err) { return xerrors.Errorf("cannot stop workspace: %w", err) } @@ -367,12 +371,30 @@ func (m *Monitor) actOnPodEvent(ctx context.Context, status *api.WorkspaceStatus if status.Phase == api.WorkspacePhase_STOPPED { // we've disposed already - try to remove the finalizer and call it a day - return m.manager.modifyFinalizer(ctx, workspaceID, gitpodFinalizerName, false) + return m.modifyFinalizer(ctx, workspaceID, gitpodFinalizerName, false) } return nil } +// actingManager contains all functions needed by actOnPodEvent +type actingManager interface { + waitForWorkspaceReady(ctx context.Context, pod *corev1.Pod) (err error) + stopWorkspace(ctx context.Context, workspaceID string, gracePeriod time.Duration) (err error) + markWorkspace(ctx context.Context, workspaceID string, annotations ...*annotation) error + + clearInitializerFromMap(podName string) + initializeWorkspaceContent(ctx context.Context, pod *corev1.Pod) (err error) + finalizeWorkspaceContent(ctx context.Context, wso *workspaceObjects) + modifyFinalizer(ctx context.Context, workspaceID string, finalizer string, add bool) error +} + +func (m *Monitor) clearInitializerFromMap(podName string) { + m.initializerMapLock.Lock() + delete(m.initializerMap, podName) + m.initializerMapLock.Unlock() +} + // doHouskeeping is called regularly by the monitor and removes timed out or dangling workspaces/services func (m *Monitor) doHousekeeping(ctx context.Context) { span, ctx := tracing.FromContext(ctx, "doHousekeeping") diff --git a/components/ws-manager/pkg/manager/monitor_test.go b/components/ws-manager/pkg/manager/monitor_test.go new file mode 100644 index 00000000000000..1066f0895aea17 --- /dev/null +++ b/components/ws-manager/pkg/manager/monitor_test.go @@ -0,0 +1,137 @@ +// Copyright (c) 2021 Gitpod GmbH. All rights reserved. +// Licensed under the GNU Affero General Public License (AGPL). +// See License-AGPL.txt in the project root for license information. + +package manager + +import ( + "context" + "fmt" + "path/filepath" + "strings" + "testing" + "time" + + ctesting "github.com/gitpod-io/gitpod/common-go/testing" + corev1 "k8s.io/api/core/v1" +) + +func TestActOnPodEvent(t *testing.T) { + type actOnPodEventResult struct { + Actions []actRecord `json:"actions"` + Error string `json:"error,omitempty"` + } + + test := ctesting.FixtureTest{ + T: t, + Path: "testdata/status_*.json", + GoldPath: func(fn string) string { + res := fmt.Sprintf("%s.golden", strings.TrimSuffix(fn, filepath.Ext(fn))) + res = strings.ReplaceAll(res, "/status_", "/actOnPodEvent_") + return res + }, + Test: func(t *testing.T, input interface{}) interface{} { + fixture := input.(*workspaceObjects) + manager := Manager{} + status, serr := manager.getWorkspaceStatus(*fixture) + if serr != nil { + t.Skipf("skipping due to status computation error: %v", serr) + } + + var rec actRecorder + err := actOnPodEvent(context.Background(), &rec, status, fixture) + + result := actOnPodEventResult{Actions: rec.Records} + if err != nil { + result.Error = err.Error() + } + return &result + }, + Fixture: func() interface{} { return &workspaceObjects{} }, + Gold: func() interface{} { return &actOnPodEventResult{} }, + } + test.Run() +} + +type actRecord struct { + Func string + Params map[string]interface{} +} + +type actRecorder struct { + Records []actRecord +} + +func (r *actRecorder) waitForWorkspaceReady(ctx context.Context, pod *corev1.Pod) (err error) { + r.Records = append(r.Records, actRecord{ + Func: "waitForWorkspaceReady", + Params: map[string]interface{}{ + "pod": pod, + }, + }) + return nil +} + +func (r *actRecorder) stopWorkspace(ctx context.Context, workspaceID string, gracePeriod time.Duration) (err error) { + r.Records = append(r.Records, actRecord{ + Func: "stopWorkspace", + Params: map[string]interface{}{ + "workspaceID": workspaceID, + "gracePeriod": gracePeriod, + }, + }) + return nil +} + +func (r *actRecorder) markWorkspace(ctx context.Context, workspaceID string, annotations ...*annotation) error { + r.Records = append(r.Records, actRecord{ + Func: "markWorkspace", + Params: map[string]interface{}{ + "workspaceID": workspaceID, + "annotations": annotations, + }, + }) + return nil +} + +func (r *actRecorder) clearInitializerFromMap(podName string) { + r.Records = append(r.Records, actRecord{ + Func: "clearInitializerFromMap", + Params: map[string]interface{}{ + "podName": podName, + }, + }) +} + +func (r *actRecorder) initializeWorkspaceContent(ctx context.Context, pod *corev1.Pod) (err error) { + r.Records = append(r.Records, actRecord{ + Func: "initializeWorkspaceContent", + Params: map[string]interface{}{ + "pod": pod, + }, + }) + return nil +} + +func (r *actRecorder) finalizeWorkspaceContent(ctx context.Context, wso *workspaceObjects) { + r.Records = append(r.Records, actRecord{ + Func: "finalizeWorkspaceContent", + Params: map[string]interface{}{ + "wso": wso, + }, + }) +} + +func (r *actRecorder) modifyFinalizer(ctx context.Context, workspaceID string, finalizer string, add bool) error { + r.Records = append(r.Records, actRecord{ + Func: "modifyFinalizer", + Params: map[string]interface{}{ + "workspaceID": workspaceID, + "finalizer": finalizer, + "add": add, + }, + }) + return nil +} + +var _ actingManager = &actRecorder{} diff --git a/components/ws-manager/pkg/manager/status.go b/components/ws-manager/pkg/manager/status.go index 8d929cbdba96d3..574106662de1c3 100644 --- a/components/ws-manager/pkg/manager/status.go +++ b/components/ws-manager/pkg/manager/status.go @@ -393,6 +393,20 @@ func (m *Manager) extractStatusFromPod(result *api.WorkspaceStatus, wso workspac result.Conditions.Failed = "" } + var hasFinalizer bool + for _, f := range wso.Pod.Finalizers { + if f == gitpodFinalizerName { + hasFinalizer = true + break + } + } + if !hasFinalizer { + // We do this independently of the dispostal status because pods only get their finalizer + // once they're running. If they fail before they reach the running phase we'll never see + // a disposal status, hence would never stop the workspace. + result.Phase = api.WorkspacePhase_STOPPED + } + if rawDisposalStatus, ok := pod.Annotations[disposalStatusAnnotation]; ok { var ds workspaceDisposalStatus err := json.Unmarshal([]byte(rawDisposalStatus), &ds) @@ -420,17 +434,6 @@ func (m *Manager) extractStatusFromPod(result *api.WorkspaceStatus, wso workspac } result.Conditions.Failed += fmt.Sprintf("last backup failed: %s. Please contact support if you need the workspace data.", ds.BackupFailure) } - - var hasFinalizer bool - for _, f := range wso.Pod.Finalizers { - if f == gitpodFinalizerName { - hasFinalizer = true - break - } - } - if !hasFinalizer { - result.Phase = api.WorkspacePhase_STOPPED - } } return nil @@ -588,13 +591,17 @@ func extractFailure(wso workspaceObjects) (string, *api.WorkspacePhase) { if cs.State.Waiting.Reason == "ImagePullBackOff" || cs.State.Waiting.Reason == "ErrImagePull" { // If the image pull failed we were definitely in the api.WorkspacePhase_CREATING phase, // unless of course this pod has been deleted already. - var res api.WorkspacePhase + var res *api.WorkspacePhase if isPodBeingDeleted(pod) { - res = api.WorkspacePhase_STOPPING + // The pod is being deleted already and we have to decide the phase based on the presence of the + // finalizer and disposal status annotation. That code already exists in the remainder of getStatus, + // hence we defer the decision. + res = nil } else { - res = api.WorkspacePhase_CREATING + c := api.WorkspacePhase_CREATING + res = &c } - return fmt.Sprintf("cannot pull image: %s", cs.State.Waiting.Message), &res + return fmt.Sprintf("cannot pull image: %s", cs.State.Waiting.Message), res } } @@ -608,11 +615,21 @@ func extractFailure(wso workspaceObjects) (string, *api.WorkspacePhase) { // we would not be here as we've checked for a DeletionTimestamp prior. So let's find out why the // container is terminating. if terminationState.ExitCode != 0 && terminationState.Message != "" { + var phase *api.WorkspacePhase + if !isPodBeingDeleted(pod) { + // If the wrote a termination message and is not currently being deleted, + // then it must have been/be running. If we did not force the phase here, + // we'd be in unknown. + c := api.WorkspacePhase_RUNNING + phase = &c + } + // the container itself told us why it was terminated - use that as failure reason - return extractFailureFromLogs([]byte(terminationState.Message)), nil + return extractFailureFromLogs([]byte(terminationState.Message)), phase } else if terminationState.Reason == "Error" { if !isPodBeingDeleted(pod) && terminationState.ExitCode != containerKilledExitCode { - return fmt.Sprintf("container %s ran with an error: exit code %d", cs.Name, terminationState.ExitCode), nil + phase := api.WorkspacePhase_RUNNING + return fmt.Sprintf("container %s ran with an error: exit code %d", cs.Name, terminationState.ExitCode), &phase } } else if terminationState.Reason == "Completed" { if wso.IsWorkspaceHeadless() { diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_brokenScheduler_UNKNOWN00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_brokenScheduler_UNKNOWN00.golden new file mode 100644 index 00000000000000..cb6e44e9a9ca42 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_brokenScheduler_UNKNOWN00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "fb291b69-7bbc-4865-a432-33f558f20091" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "fb291b69-7bbc-4865-a432-33f558f20091" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_cannotPull_004_CREATING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_cannotPull_004_CREATING00.golden new file mode 100644 index 00000000000000..85fa16c00839da --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_cannotPull_004_CREATING00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_cannotPull_005_STOPPED00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_cannotPull_005_STOPPED00.golden new file mode 100644 index 00000000000000..58a15d99fac9ee --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_cannotPull_005_STOPPED00.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-5031df46-db5e-43ae-91bd-1448305c001d" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_containerd4214_STOPPING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_containerd4214_STOPPING00.golden new file mode 100644 index 00000000000000..09938bf72629f1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_containerd4214_STOPPING00.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-cc1a3979-4e0e-42cc-bba5-a8d66485bdee" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "cc1a3979-4e0e-42cc-bba5-a8d66485bdee" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_contentInitFailed_005_STOPPED00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_contentInitFailed_005_STOPPED00.golden new file mode 100644 index 00000000000000..3e2e25b7cb1b85 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_contentInitFailed_005_STOPPED00.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "50bff6fd-2b1f-4d33-8b74-5362739add6f" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED01.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED01.golden new file mode 100644 index 00000000000000..9ceef818443280 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED01.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-60a694b3-ac7d-4a24-8ad9-2d8d5eb56de0" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "60a694b3-ac7d-4a24-8ad9-2d8d5eb56de0" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED02.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED02.golden new file mode 100644 index 00000000000000..2a0ff7a4f5ac7f --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED02.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-7bc61b1f-60ae-4bfb-b01c-6339a018b3e8" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "7bc61b1f-60ae-4bfb-b01c-6339a018b3e8" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED03.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED03.golden new file mode 100644 index 00000000000000..2a0ff7a4f5ac7f --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPED03.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-7bc61b1f-60ae-4bfb-b01c-6339a018b3e8" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "7bc61b1f-60ae-4bfb-b01c-6339a018b3e8" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPING01.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPING01.golden new file mode 100644 index 00000000000000..1fa06a1aca5bcd --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPING01.golden @@ -0,0 +1,10 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-60a694b3-ac7d-4a24-8ad9-2d8d5eb56de0" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPING02.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPING02.golden new file mode 100644 index 00000000000000..9ceef818443280 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_disposal_STOPPING02.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-60a694b3-ac7d-4a24-8ad9-2d8d5eb56de0" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "60a694b3-ac7d-4a24-8ad9-2d8d5eb56de0" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_errimgpull.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_errimgpull.golden new file mode 100644 index 00000000000000..f716bb1e53f0d6 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_errimgpull.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "f9d04251-f057-4287-b7b1-956093140c5d" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "f9d04251-f057-4287-b7b1-956093140c5d" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_errimgpull_CREATING01.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_errimgpull_CREATING01.golden new file mode 100644 index 00000000000000..3f2108cf3cf4fc --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_errimgpull_CREATING01.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-79be1e8b-a6de-4572-8627-99ef12303a88" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "79be1e8b-a6de-4572-8627-99ef12303a88" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedBeforeStopping_explicitFail.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedBeforeStopping_explicitFail.golden new file mode 100644 index 00000000000000..7722bbf8067c8e --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedBeforeStopping_explicitFail.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-4f8ea7b8-b87d-42f2-b8dd-1a32fdbdf0d4" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "4f8ea7b8-b87d-42f2-b8dd-1a32fdbdf0d4" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedLogs_RUNNING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedLogs_RUNNING00.golden new file mode 100644 index 00000000000000..acaeb454db0b0c --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedLogs_RUNNING00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "f07f0f2e-08fb-433a-8282-fef07b596909" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "f07f0f2e-08fb-433a-8282-fef07b596909" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedLogs_UNKNOWN00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedLogs_UNKNOWN00.golden new file mode 100644 index 00000000000000..acaeb454db0b0c --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedLogs_UNKNOWN00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "f07f0f2e-08fb-433a-8282-fef07b596909" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "f07f0f2e-08fb-433a-8282-fef07b596909" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedPending_evicted_UNKNOWN01.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedPending_evicted_UNKNOWN01.golden new file mode 100644 index 00000000000000..38de6ce716a7e7 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedPending_evicted_UNKNOWN01.golden @@ -0,0 +1,11 @@ +{ + "actions": [ + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "cecf2a75-7225-4056-a125-fa3144b9c012" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedPending_evicted_UNKNOWN02.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedPending_evicted_UNKNOWN02.golden new file mode 100644 index 00000000000000..268400ae166d93 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedPending_evicted_UNKNOWN02.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-cecf2a75-7225-4056-a125-fa3144b9c012" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "cecf2a75-7225-4056-a125-fa3144b9c012" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedTheiaMount_PENDING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedTheiaMount_PENDING00.golden new file mode 100644 index 00000000000000..0b8b1bb6692f23 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedTheiaMount_PENDING00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "b3242d9b-6920-41b5-8e72-c3d5637ca148" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "b3242d9b-6920-41b5-8e72-c3d5637ca148" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedWorkspaceMount_PENDING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedWorkspaceMount_PENDING00.golden new file mode 100644 index 00000000000000..0b8b1bb6692f23 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_failedWorkspaceMount_PENDING00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "b3242d9b-6920-41b5-8e72-c3d5637ca148" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "b3242d9b-6920-41b5-8e72-c3d5637ca148" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_firstUserActivity_RUNNING.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_firstUserActivity_RUNNING.golden new file mode 100644 index 00000000000000..bbecca8f8444c8 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_firstUserActivity_RUNNING.golden @@ -0,0 +1,30 @@ +{ + "actions": [ + { + "Func": "modifyFinalizer", + "Params": { + "add": true, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "df376c57-7a0e-4233-976a-7a021e6f088c" + } + }, + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/traceid", + "Value": "", + "Delete": true + }, + { + "Name": "gitpod.io/nodeName", + "Value": "gke-staging--gitpod--workspace-pool-2-331a2b32-mgbq", + "Delete": false + } + ], + "workspaceID": "df376c57-7a0e-4233-976a-7a021e6f088c" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_headlessTaskFailed_STOPPING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_headlessTaskFailed_STOPPING00.golden new file mode 100644 index 00000000000000..db9b99ff6f0023 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_headlessTaskFailed_STOPPING00.golden @@ -0,0 +1,17 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "prebuild-60116ccc-1593-41f5-880e-6c4010dc4d1d" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "60116ccc-1593-41f5-880e-6c4010dc4d1d" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_headless_STOPPING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_headless_STOPPING00.golden new file mode 100644 index 00000000000000..adbf75ba65d2fe --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_headless_STOPPING00.golden @@ -0,0 +1,17 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "imagebuild-0dd5700a790e7ca2-95291c91f6e61c2e-e06ba50b" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "0dd5700a790e7ca2-95291c91f6e61c2e-e06ba50b" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_ideFailedToStart_005_RUNNING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_ideFailedToStart_005_RUNNING00.golden new file mode 100644 index 00000000000000..8b3301ae559aa3 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_ideFailedToStart_005_RUNNING00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "9ff933b3-d487-4b45-a966-e715767f91df" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "9ff933b3-d487-4b45-a966-e715767f91df" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_imagespec_RUNNING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_imagespec_RUNNING00.golden new file mode 100644 index 00000000000000..3b9fb7432b4b0b --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_imagespec_RUNNING00.golden @@ -0,0 +1,30 @@ +{ + "actions": [ + { + "Func": "modifyFinalizer", + "Params": { + "add": true, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "27e46234-5004-44c1-a2e8-56d68ac3c70b" + } + }, + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/traceid", + "Value": "", + "Delete": true + }, + { + "Name": "gitpod.io/nodeName", + "Value": "gke-gitpod-dev-worker-pool-1-3df476cf-qxwr", + "Delete": false + } + ], + "workspaceID": "27e46234-5004-44c1-a2e8-56d68ac3c70b" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted.golden new file mode 100644 index 00000000000000..0591d5be4f5ae1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted.golden @@ -0,0 +1,3 @@ +{ + "actions": null +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_CREATING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_CREATING00.golden new file mode 100644 index 00000000000000..0591d5be4f5ae1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_CREATING00.golden @@ -0,0 +1,3 @@ +{ + "actions": null +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_1_event_only.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_1_event_only.golden new file mode 100644 index 00000000000000..b734f332b57627 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_1_event_only.golden @@ -0,0 +1,30 @@ +{ + "actions": [ + { + "Func": "modifyFinalizer", + "Params": { + "add": true, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "da9ffbf1-a12d-4a58-8593-475394eedb00" + } + }, + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/traceid", + "Value": "", + "Delete": true + }, + { + "Name": "gitpod.io/nodeName", + "Value": "gke-production--gitp-workspace-pool-1-ee6c94af-h6lj", + "Delete": false + } + ], + "workspaceID": "da9ffbf1-a12d-4a58-8593-475394eedb00" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_2_event_and_exitcode.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_2_event_and_exitcode.golden new file mode 100644 index 00000000000000..0591d5be4f5ae1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_2_event_and_exitcode.golden @@ -0,0 +1,3 @@ +{ + "actions": null +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_3_recovered_CONSTRUCTED.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_3_recovered_CONSTRUCTED.golden new file mode 100644 index 00000000000000..01999356d22336 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_interrupted_networkNotReady_3_recovered_CONSTRUCTED.golden @@ -0,0 +1,30 @@ +{ + "actions": [ + { + "Func": "modifyFinalizer", + "Params": { + "add": true, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "0c5a8ef3-052b-44a7-b11c-3542a0928076" + } + }, + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/traceid", + "Value": "", + "Delete": true + }, + { + "Name": "gitpod.io/nodeName", + "Value": "gke-production--gitp-workspace-pool-1-c73d13c7-fzbk", + "Delete": false + } + ], + "workspaceID": "0c5a8ef3-052b-44a7-b11c-3542a0928076" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_metadata.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_metadata.golden new file mode 100644 index 00000000000000..7b93df64f35337 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_metadata.golden @@ -0,0 +1,30 @@ +{ + "actions": [ + { + "Func": "modifyFinalizer", + "Params": { + "add": true, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "foobas" + } + }, + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/traceid", + "Value": "", + "Delete": true + }, + { + "Name": "gitpod.io/nodeName", + "Value": "minikube", + "Delete": false + } + ], + "workspaceID": "foobas" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_ownerToken.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_ownerToken.golden new file mode 100644 index 00000000000000..bbecca8f8444c8 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_ownerToken.golden @@ -0,0 +1,30 @@ +{ + "actions": [ + { + "Func": "modifyFinalizer", + "Params": { + "add": true, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "df376c57-7a0e-4233-976a-7a021e6f088c" + } + }, + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/traceid", + "Value": "", + "Delete": true + }, + { + "Name": "gitpod.io/nodeName", + "Value": "gke-staging--gitpod--workspace-pool-2-331a2b32-mgbq", + "Delete": false + } + ], + "workspaceID": "df376c57-7a0e-4233-976a-7a021e6f088c" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildFail_STOPPED00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildFail_STOPPED00.golden new file mode 100644 index 00000000000000..e895b0e37db7d9 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildFail_STOPPED00.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "prebuild-dbc45dce-611a-49a8-bd76-7afda76a1e24" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "dbc45dce-611a-49a8-bd76-7afda76a1e24" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildFail_STOPPING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildFail_STOPPING00.golden new file mode 100644 index 00000000000000..6b58c88269ceb7 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildFail_STOPPING00.golden @@ -0,0 +1,17 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "prebuild-dbc45dce-611a-49a8-bd76-7afda76a1e24" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "dbc45dce-611a-49a8-bd76-7afda76a1e24" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess2_CREATING01.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess2_CREATING01.golden new file mode 100644 index 00000000000000..0591d5be4f5ae1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess2_CREATING01.golden @@ -0,0 +1,3 @@ +{ + "actions": null +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess_STOPPED00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess_STOPPED00.golden new file mode 100644 index 00000000000000..ae3ce7264188f8 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess_STOPPED00.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "prebuild-8e0bbcdf-a926-4670-8c40-b718f035b2ae" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "8e0bbcdf-a926-4670-8c40-b718f035b2ae" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess_STOPPING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess_STOPPING00.golden new file mode 100644 index 00000000000000..b3abcfe671ed16 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_prebuildSuccess_STOPPING00.golden @@ -0,0 +1,17 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "prebuild-8e0bbcdf-a926-4670-8c40-b718f035b2ae" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "8e0bbcdf-a926-4670-8c40-b718f035b2ae" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_regularStart_Initializing00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_regularStart_Initializing00.golden new file mode 100644 index 00000000000000..0591d5be4f5ae1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_regularStart_Initializing00.golden @@ -0,0 +1,3 @@ +{ + "actions": null +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInCreating_CREATING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInCreating_CREATING00.golden new file mode 100644 index 00000000000000..87282a44c9eea8 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInCreating_CREATING00.golden @@ -0,0 +1,11 @@ +{ + "actions": [ + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "2513d0b4-3c18-4735-b32e-1bbdead24b78" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_RUNNING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_RUNNING00.golden new file mode 100644 index 00000000000000..c6ee82de9f6d56 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_RUNNING00.golden @@ -0,0 +1,11 @@ +{ + "actions": [ + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_STOPPING00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_STOPPING00.golden new file mode 100644 index 00000000000000..3c40884dac4ef0 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_STOPPING00.golden @@ -0,0 +1,18 @@ +{ + "actions": [ + { + "Func": "clearInitializerFromMap", + "Params": { + "podName": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037" + } + }, + { + "Func": "modifyFinalizer", + "Params": { + "add": false, + "finalizer": "gitpod.io/finalizer", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_UNKNOWN00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_UNKNOWN00.golden new file mode 100644 index 00000000000000..c6ee82de9f6d56 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_stuckInStopping_UNKNOWN00.golden @@ -0,0 +1,11 @@ +{ + "actions": [ + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/actOnPodEvent_wsstartup_Creating00.golden b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_wsstartup_Creating00.golden new file mode 100644 index 00000000000000..9813a541cbda58 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/actOnPodEvent_wsstartup_Creating00.golden @@ -0,0 +1,24 @@ +{ + "actions": [ + { + "Func": "markWorkspace", + "Params": { + "annotations": [ + { + "Name": "gitpod/failedBeforeStopping", + "Value": "true", + "Delete": false + } + ], + "workspaceID": "foobar" + } + }, + { + "Func": "stopWorkspace", + "Params": { + "gracePeriod": 30000000000, + "workspaceID": "foobar" + } + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/evtsToTestdata.go b/components/ws-manager/pkg/manager/testdata/evtsToTestdata.go index 0a787ddfb07721..dfe8d9a5c0c4d3 100644 --- a/components/ws-manager/pkg/manager/testdata/evtsToTestdata.go +++ b/components/ws-manager/pkg/manager/testdata/evtsToTestdata.go @@ -40,6 +40,7 @@ func main() { } defer file.Close() + var i int scanner := bufio.NewScanner(file) for scanner.Scan() { var data EventTraceEntry @@ -49,18 +50,23 @@ func main() { } phase := data.Status.Phase - glob, err := filepath.Glob(fmt.Sprintf("status_%s_%s*.json", *prefix, phase)) + glob, err := filepath.Glob(fmt.Sprintf("status_%s_%03d_%s*.json", *prefix, i, phase)) if err != nil { panic(err) } idx := len(glob) - fn := fmt.Sprintf("status_%s_%s%02d.json", *prefix, phase, idx) - err = os.WriteFile(fn, data.Objects, 0644) + fn := fmt.Sprintf("status_%s_%03d_%s%02d.json", *prefix, i, phase, idx) + ctnt, err := json.MarshalIndent(data.Objects, "", " ") + if err != nil { + panic(err) + } + err = os.WriteFile(fn, ctnt, 0644) if err != nil { panic(err) } + i++ fmt.Printf("Wrote %s\n", fn) } } diff --git a/components/ws-manager/pkg/manager/testdata/status_cannotPull_004_CREATING00.golden b/components/ws-manager/pkg/manager/testdata/status_cannotPull_004_CREATING00.golden new file mode 100644 index 00000000000000..d0f5e0fba533b3 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_cannotPull_004_CREATING00.golden @@ -0,0 +1,38 @@ +{ + "status": { + "id": "5031df46-db5e-43ae-91bd-1448305c001d", + "metadata": { + "owner": "00000000-0000-0000-0000-000000000000", + "meta_id": "silver-dormouse-is733prg", + "started_at": { + "seconds": 1629371675 + } + }, + "spec": { + "workspace_image": "eu.gcr.io/gitpod-dev/workspace-images:01abb31dd76a1e2885ea1d5c3b06a4ead10ae362ee21348428835d0c8b286e3a", + "ide_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-0941a0805dc3c7345c45bd926317eaf045d4b7fb", + "url": "https://silver-dormouse-is733prg.ws-us14.gitpod.io", + "exposed_ports": [ + { + "port": 3000, + "url": "https://3000-silver-dormouse-is733prg.ws-us14.gitpod.io" + } + ], + "timeout": "30m" + }, + "phase": 2, + "conditions": { + "failed": "cannot pull image: rpc error: code = FailedPrecondition desc = failed to pull and unpack image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d:latest\": failed commit on ref \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\": \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\" failed size validation: 33554502 != 64598931: failed precondition", + "service_exists": 1, + "deployed": 1 + }, + "runtime": { + "node_name": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "pod_name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "node_ip": "10.138.0.78" + }, + "auth": { + "owner_token": "4BYvs6dfa-yXpTWZEPzeNsS2Ge.0QMdE" + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_cannotPull_004_CREATING00.json b/components/ws-manager/pkg/manager/testdata/status_cannotPull_004_CREATING00.json new file mode 100644 index 00000000000000..67ad256b6205aa --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_cannotPull_004_CREATING00.json @@ -0,0 +1,1321 @@ +{ + "theiaService": { + "kind": "Service", + "spec": { + "type": "ClusterIP", + "selector": { + "gpwsman": "true", + "headless": "false", + "workspaceType": "regular", + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "owner": "00000000-0000-0000-0000-000000000000", + "metaID": "silver-dormouse-is733prg", + "component": "workspace", + "app": "gitpod" + }, + "clusterIPs": [ + "10.112.154.112" + ], + "sessionAffinity": "None", + "ports": [ + { + "name": "ide", + "protocol": "TCP", + "targetPort": 23000, + "port": 23000 + }, + { + "targetPort": 22999, + "name": "supervisor", + "protocol": "TCP", + "port": 22999 + } + ], + "clusterIP": "10.112.154.112" + }, + "apiVersion": "v1", + "status": { + "loadBalancer": {} + }, + "metadata": { + "managedFields": [ + { + "manager": "ws-manager", + "operation": "Update", + "fieldsV1": { + "f:metadata": { + "f:labels": { + "f:headless": {}, + "f:workspaceID": {}, + "f:component": {}, + "f:owner": {}, + ".": {}, + "f:workspaceType": {}, + "f:gpwsman": {}, + "f:app": {}, + "f:metaID": {} + } + }, + "f:spec": { + "f:type": {}, + "f:ports": { + "k:{\"port\":23000,\"protocol\":\"TCP\"}": { + "f:targetPort": {}, + "f:name": {}, + "f:protocol": {}, + ".": {}, + "f:port": {} + }, + ".": {}, + "k:{\"port\":22999,\"protocol\":\"TCP\"}": { + ".": {}, + "f:name": {}, + "f:targetPort": {}, + "f:port": {}, + "f:protocol": {} + } + }, + "f:selector": { + "f:workspaceID": {}, + "f:metaID": {}, + "f:app": {}, + ".": {}, + "f:gpwsman": {}, + "f:headless": {}, + "f:component": {}, + "f:workspaceType": {}, + "f:owner": {} + }, + "f:sessionAffinity": {} + } + }, + "time": "2021-08-19T11:14:35Z", + "apiVersion": "v1", + "fieldsType": "FieldsV1" + } + ], + "name": "ws-silver-dormouse-is733prg-theia", + "labels": { + "component": "workspace", + "gpwsman": "true", + "headless": "false", + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "app": "gitpod", + "metaID": "silver-dormouse-is733prg", + "owner": "00000000-0000-0000-0000-000000000000", + "workspaceType": "regular" + }, + "resourceVersion": "18919101", + "uid": "58539222-818b-44b8-9d2b-8dc5731117d6", + "creationTimestamp": "2021-08-19T11:14:35Z", + "namespace": "default" + } + }, + "pod": { + "status": { + "startTime": "2021-08-19T11:14:44Z", + "hostIP": "10.138.0.78", + "conditions": [ + { + "lastTransitionTime": "2021-08-19T11:14:44Z", + "lastProbeTime": null, + "status": "True", + "type": "Initialized" + }, + { + "type": "Ready", + "lastProbeTime": null, + "message": "containers with unready status: [workspace]", + "lastTransitionTime": "2021-08-19T11:14:44Z", + "status": "False", + "reason": "ContainersNotReady" + }, + { + "type": "ContainersReady", + "reason": "ContainersNotReady", + "lastProbeTime": null, + "status": "False", + "lastTransitionTime": "2021-08-19T11:14:44Z", + "message": "containers with unready status: [workspace]" + }, + { + "lastProbeTime": null, + "lastTransitionTime": "2021-08-19T11:14:44Z", + "type": "PodScheduled", + "status": "True" + } + ], + "podIPs": [ + { + "ip": "10.4.35.173" + } + ], + "containerStatuses": [ + { + "imageID": "", + "restartCount": 0, + "name": "workspace", + "lastState": {}, + "state": { + "waiting": { + "message": "rpc error: code = FailedPrecondition desc = failed to pull and unpack image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d:latest\": failed commit on ref \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\": \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\" failed size validation: 33554502 != 64598931: failed precondition", + "reason": "ErrImagePull" + } + }, + "ready": false, + "image": "reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d", + "started": false + } + ], + "phase": "Pending", + "podIP": "10.4.35.173", + "qosClass": "Burstable" + }, + "metadata": { + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "namespace": "default", + "annotations": { + "prometheus.io/scrape": "true", + "gitpod/admission": "admit_owner_only", + "gitpod/ownerToken": "4BYvs6dfa-yXpTWZEPzeNsS2Ge.0QMdE", + "container.apparmor.security.beta.kubernetes.io/workspace": "unconfined", + "gitpod/never-ready": "true", + "gitpod/imageSpec": "CmZldS5nY3IuaW8vZ2l0cG9kLWRldi93b3Jrc3BhY2UtaW1hZ2VzOjAxYWJiMzFkZDc2YTFlMjg4NWVhMWQ1YzNiMDZhNGVhZDEwYWUzNjJlZTIxMzQ4NDI4ODM1ZDBjOGIyODZlM2ESWGV1Lmdjci5pby9naXRwb2QtY29yZS1kZXYvYnVpbGQvaWRlL2NvZGU6Y29tbWl0LTA5NDFhMDgwNWRjM2M3MzQ1YzQ1YmQ5MjYzMTdlYWYwNDVkNGI3ZmI=", + "prometheus.io/path": "/metrics", + "cni.projectcalico.org/podIPs": "10.4.35.173/32", + "gitpod/contentInitializer": "[redacted]", + "gitpod/servicePrefix": "silver-dormouse-is733prg", + "gitpod/traceid": "AAAAAAAAAACsVGfZr9dELlC0TyqpUQOHCVOBoHl7AbQBAAAAAA==", + "gitpod/customTimeout": "30m", + "gitpod/id": "5031df46-db5e-43ae-91bd-1448305c001d", + "gitpod.io/requiredNodeServices": "ws-daemon,registry-facade", + "seccomp.security.alpha.kubernetes.io/pod": "localhost/workspace_default_main.1254.json", + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false", + "kubernetes.io/psp": "default-ns-workspace", + "prometheus.io/port": "23000", + "cni.projectcalico.org/podIP": "10.4.35.173/32", + "gitpod/url": "https://silver-dormouse-is733prg.ws-us14.gitpod.io" + }, + "creationTimestamp": "2021-08-19T11:14:35Z", + "managedFields": [ + { + "apiVersion": "v1", + "operation": "Update", + "manager": "ws-manager", + "fieldsType": "FieldsV1", + "time": "2021-08-19T11:14:35Z", + "fieldsV1": { + "f:spec": { + "f:enableServiceLinks": {}, + "f:dnsPolicy": {}, + "f:terminationGracePeriodSeconds": {}, + "f:volumes": { + ".": {}, + "k:{\"name\":\"daemon-mount\"}": { + ".": {}, + "f:hostPath": { + "f:path": {}, + "f:type": {}, + ".": {} + }, + "f:name": {} + }, + "k:{\"name\":\"vol-this-workspace\"}": { + "f:hostPath": { + "f:type": {}, + ".": {}, + "f:path": {} + }, + "f:name": {}, + ".": {} + } + }, + "f:imagePullSecrets": { + ".": {}, + "k:{\"name\":\"workspace-registry-pull-secret\"}": { + ".": {}, + "f:name": {} + } + }, + "f:restartPolicy": {}, + "f:serviceAccount": {}, + "f:containers": { + "k:{\"name\":\"workspace\"}": { + "f:volumeMounts": { + "k:{\"mountPath\":\"/.workspace\"}": { + ".": {}, + "f:name": {}, + "f:mountPropagation": {}, + "f:mountPath": {} + }, + ".": {}, + "k:{\"mountPath\":\"/workspace\"}": { + "f:mountPropagation": {}, + ".": {}, + "f:mountPath": {}, + "f:name": {} + } + }, + "f:securityContext": { + ".": {}, + "f:runAsUser": {}, + "f:allowPrivilegeEscalation": {}, + "f:capabilities": { + "f:add": {}, + ".": {}, + "f:drop": {} + }, + "f:runAsGroup": {}, + "f:readOnlyRootFilesystem": {}, + "f:privileged": {}, + "f:runAsNonRoot": {} + }, + "f:terminationMessagePolicy": {}, + "f:terminationMessagePath": {}, + "f:imagePullPolicy": {}, + "f:readinessProbe": { + "f:httpGet": { + "f:port": {}, + "f:path": {}, + "f:scheme": {}, + ".": {} + }, + "f:initialDelaySeconds": {}, + "f:periodSeconds": {}, + ".": {}, + "f:timeoutSeconds": {}, + "f:failureThreshold": {}, + "f:successThreshold": {} + }, + "f:command": {}, + "f:image": {}, + ".": {}, + "f:resources": { + "f:limits": { + "f:memory": {}, + ".": {}, + "f:cpu": {} + }, + "f:requests": { + ".": {}, + "f:memory": {}, + "f:cpu": {} + }, + ".": {} + }, + "f:env": { + "k:{\"name\":\"GITPOD_WORKSPACE_URL\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT_URL\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"TABNINE_CONFIG\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_TOKENS\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_INSTANCE_ID\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + ".": {}, + "k:{\"name\":\"GITPOD_GIT_USER_EMAIL\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_WRITER\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_EXTERNAL_EXTENSIONS\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_ENDPOINT\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_NAME\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_TASKS\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_SEGMENT_KEY\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CLUSTER_HOST\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_REPO_ROOT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_WEBVIEW_EXTERNAL_ENDPOINT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_THEIA_PORT\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_INTERVAL\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_CLI_APITOKEN\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_MINI_BROWSER_HOST_PATTERN\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"THEIA_RATELIMIT_LOG\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_RESOLVED_EXTENSIONS\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_ID\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_MEMORY\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"THEIA_WORKSPACE_ROOT\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_HOST\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + } + }, + "f:name": {}, + "f:ports": { + "k:{\"containerPort\":23000,\"protocol\":\"TCP\"}": { + "f:protocol": {}, + "f:containerPort": {}, + ".": {} + }, + ".": {} + } + } + }, + "f:dnsConfig": { + ".": {}, + "f:nameservers": {} + }, + "f:affinity": { + ".": {}, + "f:nodeAffinity": { + ".": {}, + "f:requiredDuringSchedulingIgnoredDuringExecution": { + "f:nodeSelectorTerms": {}, + ".": {} + } + } + }, + "f:schedulerName": {}, + "f:securityContext": {}, + "f:tolerations": {}, + "f:serviceAccountName": {}, + "f:automountServiceAccountToken": {} + }, + "f:metadata": { + "f:labels": { + "f:app": {}, + "f:component": {}, + "f:workspaceID": {}, + "f:headless": {}, + "f:gitpod.io/networkpolicy": {}, + "f:gpwsman": {}, + ".": {}, + "f:owner": {}, + "f:metaID": {}, + "f:workspaceType": {} + }, + "f:annotations": { + "f:gitpod/traceid": {}, + "f:gitpod/servicePrefix": {}, + "f:gitpod/admission": {}, + "f:gitpod.io/requiredNodeServices": {}, + "f:seccomp.security.alpha.kubernetes.io/pod": {}, + ".": {}, + "f:prometheus.io/scrape": {}, + "f:gitpod/contentInitializer": {}, + "f:gitpod/customTimeout": {}, + "f:gitpod/never-ready": {}, + "f:gitpod/url": {}, + "f:container.apparmor.security.beta.kubernetes.io/workspace": {}, + "f:gitpod/imageSpec": {}, + "f:gitpod/id": {}, + "f:prometheus.io/port": {}, + "f:gitpod/ownerToken": {}, + "f:prometheus.io/path": {}, + "f:cluster-autoscaler.kubernetes.io/safe-to-evict": {} + } + } + } + }, + { + "time": "2021-08-19T11:14:44Z", + "apiVersion": "v1", + "manager": "calico", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + "f:cni.projectcalico.org/podIPs": {}, + "f:cni.projectcalico.org/podIP": {} + } + } + }, + "fieldsType": "FieldsV1", + "operation": "Update" + }, + { + "fieldsV1": { + "f:status": { + "f:podIP": {}, + "f:podIPs": { + "k:{\"ip\":\"10.4.35.173\"}": { + ".": {}, + "f:ip": {} + }, + ".": {} + }, + "f:hostIP": {}, + "f:startTime": {}, + "f:conditions": { + "k:{\"type\":\"ContainersReady\"}": { + "f:status": {}, + "f:lastTransitionTime": {}, + "f:reason": {}, + "f:message": {}, + "f:type": {}, + "f:lastProbeTime": {}, + ".": {} + }, + "k:{\"type\":\"Ready\"}": { + "f:type": {}, + ".": {}, + "f:lastProbeTime": {}, + "f:lastTransitionTime": {}, + "f:message": {}, + "f:reason": {}, + "f:status": {} + }, + "k:{\"type\":\"Initialized\"}": { + "f:status": {}, + "f:lastTransitionTime": {}, + "f:type": {}, + "f:lastProbeTime": {}, + ".": {} + } + }, + "f:containerStatuses": {} + } + }, + "apiVersion": "v1", + "operation": "Update", + "time": "2021-08-19T11:15:14Z", + "fieldsType": "FieldsV1", + "manager": "kubelet" + } + ], + "labels": { + "metaID": "silver-dormouse-is733prg", + "workspaceType": "regular", + "gpwsman": "true", + "app": "gitpod", + "owner": "00000000-0000-0000-0000-000000000000", + "headless": "false", + "component": "workspace", + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "gitpod.io/networkpolicy": "default" + }, + "resourceVersion": "18919692", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46" + }, + "spec": { + "preemptionPolicy": "PreemptLowerPriority", + "containers": [ + { + "image": "reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d", + "readinessProbe": { + "httpGet": { + "path": "/_supervisor/v1/status/content/wait/true", + "scheme": "HTTP", + "port": 22999 + }, + "periodSeconds": 1, + "initialDelaySeconds": 2, + "successThreshold": 1, + "timeoutSeconds": 1, + "failureThreshold": 600 + }, + "command": [ + "/.supervisor/workspacekit", + "ring0" + ], + "ports": [ + { + "containerPort": 23000, + "protocol": "TCP" + } + ], + "name": "workspace", + "terminationMessagePath": "/dev/termination-log", + "env": [ + { + "value": "/workspace/", + "name": "GITPOD_REPO_ROOT" + }, + { + "value": "q5wspmwV6hlbdmBJg7viT4lWhVZ9CQVF", + "name": "GITPOD_CLI_APITOKEN" + }, + { + "value": "silver-dormouse-is733prg", + "name": "GITPOD_WORKSPACE_ID" + }, + { + "value": "5031df46-db5e-43ae-91bd-1448305c001d", + "name": "GITPOD_INSTANCE_ID" + }, + { + "value": "23000", + "name": "GITPOD_THEIA_PORT" + }, + { + "value": "/workspace/", + "name": "THEIA_WORKSPACE_ROOT" + }, + { + "value": "https://gitpod.io", + "name": "GITPOD_HOST" + }, + { + "value": "https://silver-dormouse-is733prg.ws-us14.gitpod.io", + "name": "GITPOD_WORKSPACE_URL" + }, + { + "name": "GITPOD_WORKSPACE_CLUSTER_HOST", + "value": "ws-us14.gitpod.io" + }, + { + "value": ":22999", + "name": "THEIA_SUPERVISOR_ENDPOINT" + }, + { + "name": "THEIA_WEBVIEW_EXTERNAL_ENDPOINT", + "value": "webview-{{hostname}}" + }, + { + "name": "THEIA_MINI_BROWSER_HOST_PATTERN", + "value": "browser-{{hostname}}" + }, + { + "name": "GITPOD_GIT_USER_NAME", + "value": "" + }, + { + "value": "", + "name": "GITPOD_GIT_USER_EMAIL" + }, + { + "value": "[redacted]", + "name": "TABNINE_CONFIG" + }, + { + "name": "GITPOD_WORKSPACE_CONTEXT_URL", + "value": "https://github.com//" + }, + { + "value": "{\"isFile\":false,\"path\":\"\",\"title\":\"/ - main\",\"ref\":\"main\",\"refType\":\"branch\",\"revision\":\"f7c7c67ace62e176cc4687624e9c8c3fd02b47bb\",\"repository\":{\"cloneUrl\":\"https://github.com//.git\",\"host\":\"github.com\",\"name\":\"\",\"owner\":\"\",\"private\":false}}", + "name": "GITPOD_WORKSPACE_CONTEXT" + }, + { + "name": "GITPOD_TASKS", + "value": "[{\"init\":\"echo 'init script'\",\"command\":\"echo 'start script'\"}]" + }, + { + "name": "GITPOD_RESOLVED_EXTENSIONS", + "value": "{\"vscode.bat@1.44.2\":{\"fullPluginName\":\"vscode.bat@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.clojure@1.44.2\":{\"fullPluginName\":\"vscode.clojure@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.coffeescript@1.44.2\":{\"fullPluginName\":\"vscode.coffeescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.cpp@1.44.2\":{\"fullPluginName\":\"vscode.cpp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.csharp@1.44.2\":{\"fullPluginName\":\"vscode.csharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"llvm-vs-code-extensions.vscode-clangd@0.1.5\":{\"fullPluginName\":\"llvm-vs-code-extensions.vscode-clangd@0.1.5\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css@1.51.1\":{\"fullPluginName\":\"vscode.css@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css-language-features@1.51.1\":{\"fullPluginName\":\"vscode.css-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.debug-auto-launch@1.44.2\":{\"fullPluginName\":\"vscode.debug-auto-launch@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.emmet@1.44.2\":{\"fullPluginName\":\"vscode.emmet@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.fsharp@1.44.2\":{\"fullPluginName\":\"vscode.fsharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.go@1.44.2\":{\"fullPluginName\":\"vscode.go@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.groovy@1.44.2\":{\"fullPluginName\":\"vscode.groovy@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.handlebars@1.44.2\":{\"fullPluginName\":\"vscode.handlebars@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.hlsl@1.44.2\":{\"fullPluginName\":\"vscode.hlsl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html@1.51.1\":{\"fullPluginName\":\"vscode.html@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html-language-features@1.51.1\":{\"fullPluginName\":\"vscode.html-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ini@1.44.2\":{\"fullPluginName\":\"vscode.ini@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.java@1.53.2\":{\"fullPluginName\":\"vscode.java@1.53.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.javascript@1.44.2\":{\"fullPluginName\":\"vscode.javascript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json@1.44.2\":{\"fullPluginName\":\"vscode.json@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json-language-features@1.46.1\":{\"fullPluginName\":\"vscode.json-language-features@1.46.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.less@1.44.2\":{\"fullPluginName\":\"vscode.less@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.log@1.44.2\":{\"fullPluginName\":\"vscode.log@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.lua@1.44.2\":{\"fullPluginName\":\"vscode.lua@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.make@1.44.2\":{\"fullPluginName\":\"vscode.make@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.markdown@1.44.2\":{\"fullPluginName\":\"vscode.markdown@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.npm@1.39.1\":{\"fullPluginName\":\"vscode.npm@1.39.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.objective-c@1.44.2\":{\"fullPluginName\":\"vscode.objective-c@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.perl@1.44.2\":{\"fullPluginName\":\"vscode.perl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.php@1.44.2\":{\"fullPluginName\":\"vscode.php@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.powershell@1.44.2\":{\"fullPluginName\":\"vscode.powershell@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.pug@1.44.2\":{\"fullPluginName\":\"vscode.pug@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.python@1.47.3\":{\"fullPluginName\":\"vscode.python@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.r@1.44.2\":{\"fullPluginName\":\"vscode.r@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.razor@1.44.2\":{\"fullPluginName\":\"vscode.razor@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ruby@1.44.2\":{\"fullPluginName\":\"vscode.ruby@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.rust@1.44.2\":{\"fullPluginName\":\"vscode.rust@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.scss@1.44.2\":{\"fullPluginName\":\"vscode.scss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shaderlab@1.44.2\":{\"fullPluginName\":\"vscode.shaderlab@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shellscript@1.44.2\":{\"fullPluginName\":\"vscode.shellscript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.sql@1.44.2\":{\"fullPluginName\":\"vscode.sql@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.swift@1.44.2\":{\"fullPluginName\":\"vscode.swift@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript@1.44.2\":{\"fullPluginName\":\"vscode.typescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript-language-features@1.44.2\":{\"fullPluginName\":\"vscode.typescript-language-features@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vb@1.44.2\":{\"fullPluginName\":\"vscode.vb@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.xml@1.44.2\":{\"fullPluginName\":\"vscode.xml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.yaml@1.44.2\":{\"fullPluginName\":\"vscode.yaml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.java@0.75.0\":{\"fullPluginName\":\"redhat.java@0.75.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-debug@0.27.1\":{\"fullPluginName\":\"vscjava.vscode-java-debug@0.27.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-dependency@0.18.0\":{\"fullPluginName\":\"vscjava.vscode-java-dependency@0.18.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug@1.38.4\":{\"fullPluginName\":\"ms-vscode.node-debug@1.38.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug2@1.33.0\":{\"fullPluginName\":\"ms-vscode.node-debug2@1.33.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-python.python@2020.7.96456\":{\"fullPluginName\":\"ms-python.python@2020.7.96456\",\"url\":\"local\",\"kind\":\"builtin\"},\"golang.Go@0.14.4\":{\"fullPluginName\":\"golang.go@0.14.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-xml@0.11.0\":{\"fullPluginName\":\"redhat.vscode-xml@0.11.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-yaml@0.8.0\":{\"fullPluginName\":\"redhat.vscode-yaml@0.8.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"bmewburn.vscode-intelephense-client@1.4.0\":{\"fullPluginName\":\"bmewburn.vscode-intelephense-client@1.4.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"felixfbecker.php-debug@1.13.0\":{\"fullPluginName\":\"felixfbecker.php-debug@1.13.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"rust-lang.rust@0.7.8\":{\"fullPluginName\":\"rust-lang.rust@0.7.8\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-abyss@1.44.2\":{\"fullPluginName\":\"vscode.theme-abyss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-kimbie-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-kimbie-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai-dimmed@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai-dimmed@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-quietlight@1.44.2\":{\"fullPluginName\":\"vscode.theme-quietlight@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-red@1.44.2\":{\"fullPluginName\":\"vscode.theme-red@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-light@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-light@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-tomorrow-night-blue@1.44.2\":{\"fullPluginName\":\"vscode.theme-tomorrow-night-blue@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vscode-theme-seti@1.44.2\":{\"fullPluginName\":\"vscode.vscode-theme-seti@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.merge-conflict@1.44.2\":{\"fullPluginName\":\"vscode.merge-conflict@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.references-view@0.0.47\":{\"fullPluginName\":\"ms-vscode.references-view@0.0.47\",\"url\":\"local\",\"kind\":\"builtin\"},\"EditorConfig.EditorConfig@0.15.1\":{\"fullPluginName\":\"editorconfig.editorconfig@0.15.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.docker@1.47.3\":{\"fullPluginName\":\"vscode.docker@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"dart-code.flutter@3.19.0:/MRpX1iDrjzN++URaPj9kw==\":{\"fullPluginName\":\"dart-code.flutter@3.19.0\",\"url\":\"https://gitpod.io/plugins?id=00a87433-5bbb-4abc-a636-780634332812\",\"kind\":\"user\"},\"PKief.material-icon-theme@4.3.0:URe4ANXBLYHzB6CeGyTN8A==\":{\"fullPluginName\":\"pkief.material-icon-theme@4.3.0\",\"url\":\"https://gitpod.io/plugins?id=023253de-1cad-4ec1-aa89-2e4e1832802b\",\"kind\":\"user\"},\"equinusocio.vsc-material-theme-icons@1.2.0:JY/GxjbjHN78dpQfT47roQ==\":{\"fullPluginName\":\"equinusocio.vsc-material-theme-icons@1.2.0\",\"url\":\"https://gitpod.io/plugins?id=026955ab-9ba1-4940-b0a0-d35cd1fcd801\",\"kind\":\"user\"},\"esbenp.prettier-vscode@5.8.0:cd2Jz796EPVnD5zeCyctPw==\":{\"fullPluginName\":\"esbenp.prettier-vscode@5.8.0\",\"url\":\"https://gitpod.io/plugins?id=003d6915-5cec-444c-91f5-3136c5457410\",\"kind\":\"user\"}}" + }, + { + "name": "GITPOD_EXTERNAL_EXTENSIONS", + "value": "[]" + }, + { + "name": "THEIA_SUPERVISOR_TOKENS", + "value": "[{\"tokenOTS\":\"\",\"token\":\"ots\",\"kind\":\"gitpod\",\"host\":\"gitpod.io\",\"scope\":[\"function:getWorkspace\",\"function:getLoggedInUser\",\"function:getPortAuthenticationToken\",\"function:getWorkspaceOwner\",\"function:getWorkspaceUsers\",\"function:isWorkspaceOwner\",\"function:controlAdmission\",\"function:setWorkspaceTimeout\",\"function:getWorkspaceTimeout\",\"function:sendHeartBeat\",\"function:getOpenPorts\",\"function:openPort\",\"function:closePort\",\"function:getLayout\",\"function:generateNewGitpodToken\",\"function:takeSnapshot\",\"function:storeLayout\",\"function:stopWorkspace\",\"function:getToken\",\"function:getContentBlobUploadUrl\",\"function:getContentBlobDownloadUrl\",\"function:accessCodeSyncStorage\",\"function:guessGitTokenScopes\",\"function:getEnvVars\",\"function:setEnvVar\",\"function:deleteEnvVar\",\"function:trackEvent\",\"resource:workspace::silver-dormouse-is733prg::get/update\",\"resource:workspaceInstance::5031df46-db5e-43ae-91bd-1448305c001d::get/update/delete\",\"resource:snapshot::ws-silver-dormouse-is733prg::create\",\"resource:gitpodToken::*::create\",\"resource:userStorage::*::create/get/update\",\"resource:token::*::get\",\"resource:contentBlob::*::create/get\",\"resource:envVar::/::create/get/update/delete\"],\"expiryDate\":\"2021-08-20T11:14:35.921Z\",\"reuse\":2}]" + }, + { + "value": "30000", + "name": "GITPOD_INTERVAL" + }, + { + "value": "1879", + "name": "GITPOD_MEMORY" + }, + { + "name": "THEIA_RATELIMIT_LOG", + "value": "50" + }, + { + "value": "segment", + "name": "GITPOD_ANALYTICS_WRITER" + }, + { + "name": "GITPOD_ANALYTICS_SEGMENT_KEY", + "value": "" + } + ], + "securityContext": { + "runAsNonRoot": true, + "runAsUser": 33333, + "readOnlyRootFilesystem": false, + "runAsGroup": 33333, + "allowPrivilegeEscalation": true, + "capabilities": { + "add": [ + "AUDIT_WRITE", + "FSETID", + "KILL", + "NET_BIND_SERVICE", + "SYS_PTRACE" + ], + "drop": [ + "SETPCAP", + "CHOWN", + "NET_RAW", + "DAC_OVERRIDE", + "FOWNER", + "SYS_CHROOT", + "SETFCAP", + "SETUID", + "SETGID" + ] + }, + "privileged": false + }, + "volumeMounts": [ + { + "mountPath": "/workspace", + "name": "vol-this-workspace", + "mountPropagation": "HostToContainer" + }, + { + "name": "daemon-mount", + "mountPath": "/.workspace", + "mountPropagation": "HostToContainer" + } + ], + "resources": { + "requests": { + "memory": "1792Mi", + "cpu": "1m" + }, + "limits": { + "cpu": "6", + "memory": "12Gi" + } + }, + "terminationMessagePolicy": "File", + "imagePullPolicy": "IfNotPresent" + } + ], + "enableServiceLinks": false, + "securityContext": { + "seccompProfile": { + "type": "Localhost", + "localhostProfile": "workspace_default_main.1254.json" + }, + "fsGroup": 1, + "supplementalGroups": [ + 1 + ] + }, + "schedulerName": "workspace-scheduler", + "dnsPolicy": "None", + "affinity": { + "nodeAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "operator": "Exists", + "key": "gitpod.io/workload_workspace" + } + ] + } + ] + } + } + }, + "imagePullSecrets": [ + { + "name": "workspace-registry-pull-secret" + } + ], + "nodeName": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "tolerations": [ + { + "operator": "Exists", + "key": "node.kubernetes.io/disk-pressure", + "effect": "NoExecute" + }, + { + "key": "node.kubernetes.io/memory-pressure", + "effect": "NoExecute", + "operator": "Exists" + }, + { + "tolerationSeconds": 30, + "effect": "NoExecute", + "operator": "Exists", + "key": "node.kubernetes.io/network-unavailable" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/not-ready", + "operator": "Exists", + "tolerationSeconds": 300 + }, + { + "key": "node.kubernetes.io/unreachable", + "effect": "NoExecute", + "operator": "Exists", + "tolerationSeconds": 300 + } + ], + "serviceAccount": "workspace", + "priority": 0, + "volumes": [ + { + "hostPath": { + "path": "/mnt/disks/raid0/workspaces/5031df46-db5e-43ae-91bd-1448305c001d", + "type": "DirectoryOrCreate" + }, + "name": "vol-this-workspace" + }, + { + "hostPath": { + "type": "DirectoryOrCreate", + "path": "/mnt/disks/raid0/workspaces/5031df46-db5e-43ae-91bd-1448305c001d-daemon" + }, + "name": "daemon-mount" + } + ], + "terminationGracePeriodSeconds": 30, + "serviceAccountName": "workspace", + "restartPolicy": "Never", + "dnsConfig": { + "nameservers": [ + "1.1.1.1", + "8.8.8.8" + ] + }, + "automountServiceAccountToken": false + }, + "kind": "Pod", + "apiVersion": "v1" + }, + "portsService": { + "kind": "Service", + "metadata": { + "resourceVersion": "18919107", + "name": "ws-silver-dormouse-is733prg-ports", + "annotations": { + "gitpod/port-url-3000": "https://3000-silver-dormouse-is733prg.ws-us14.gitpod.io" + }, + "creationTimestamp": "2021-08-19T11:14:36Z", + "managedFields": [ + { + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:gitpod/port-url-3000": {} + }, + "f:labels": { + "f:gpwsman": {}, + ".": {}, + "f:workspaceID": {}, + "f:serviceType": {}, + "f:metaID": {} + } + }, + "f:spec": { + "f:selector": { + "f:gpwsman": {}, + ".": {}, + "f:workspaceID": {} + }, + "f:ports": { + ".": {}, + "k:{\"port\":3000,\"protocol\":\"TCP\"}": { + "f:port": {}, + "f:name": {}, + ".": {}, + "f:protocol": {}, + "f:targetPort": {} + } + }, + "f:type": {}, + "f:sessionAffinity": {} + } + }, + "operation": "Update", + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "manager": "ws-manager", + "time": "2021-08-19T11:14:36Z" + } + ], + "namespace": "default", + "labels": { + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "gpwsman": "true", + "metaID": "silver-dormouse-is733prg", + "serviceType": "ports" + }, + "uid": "a891f849-500b-426c-93b0-b0707d06b7ce" + }, + "apiVersion": "v1", + "spec": { + "sessionAffinity": "None", + "clusterIPs": [ + "10.112.153.201" + ], + "ports": [ + { + "targetPort": 3000, + "port": 3000, + "protocol": "TCP", + "name": "p3000-private" + } + ], + "clusterIP": "10.112.153.201", + "selector": { + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "gpwsman": "true" + }, + "type": "ClusterIP" + }, + "status": { + "loadBalancer": {} + } + }, + "events": [ + { + "reason": "Scheduled", + "source": { + "component": "workspace-scheduler" + }, + "reportingComponent": "", + "reportingInstance": "", + "metadata": { + "creationTimestamp": "2021-08-19T11:14:44Z", + "managedFields": [ + { + "time": "2021-08-19T11:14:44Z", + "fieldsType": "FieldsV1", + "operation": "Update", + "fieldsV1": { + "f:lastTimestamp": {}, + "f:metadata": { + "f:generateName": {} + }, + "f:message": {}, + "f:involvedObject": { + "f:uid": {}, + "f:kind": {}, + "f:namespace": {}, + "f:name": {} + }, + "f:firstTimestamp": {}, + "f:reason": {}, + "f:count": {}, + "f:source": { + "f:component": {} + }, + "f:type": {} + }, + "apiVersion": "v1", + "manager": "ws-scheduler" + } + ], + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d - scheduledw7nkv", + "uid": "1765b2ad-6304-4c9f-90ac-5d3c712b0d69", + "resourceVersion": "1046550", + "generateName": "ws-5031df46-db5e-43ae-91bd-1448305c001d - scheduled", + "namespace": "default" + }, + "lastTimestamp": "2021-08-19T11:14:44Z", + "message": "Placed pod [default/ws-5031df46-db5e-43ae-91bd-1448305c001d] on gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k\n", + "count": 1, + "firstTimestamp": "2021-08-19T11:14:44Z", + "involvedObject": { + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "kind": "Pod", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "namespace": "default" + }, + "eventTime": null, + "type": "Normal" + }, + { + "metadata": { + "resourceVersion": "1046552", + "namespace": "default", + "managedFields": [ + { + "apiVersion": "v1", + "manager": "kubelet", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:firstTimestamp": {}, + "f:message": {}, + "f:type": {}, + "f:involvedObject": { + "f:apiVersion": {}, + "f:fieldPath": {}, + "f:namespace": {}, + "f:name": {}, + "f:uid": {}, + "f:kind": {}, + "f:resourceVersion": {} + }, + "f:count": {}, + "f:reason": {}, + "f:lastTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + } + }, + "operation": "Update", + "time": "2021-08-19T11:14:45Z" + } + ], + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0ea2e597784", + "creationTimestamp": "2021-08-19T11:14:45Z", + "uid": "40e8d3a0-818d-48b4-a6ea-6f1b94f6f487" + }, + "reportingInstance": "", + "message": "Pulling image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\"", + "lastTimestamp": "2021-08-19T11:14:45Z", + "firstTimestamp": "2021-08-19T11:14:45Z", + "eventTime": null, + "reason": "Pulling", + "type": "Normal", + "reportingComponent": "", + "involvedObject": { + "resourceVersion": "18919275", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "namespace": "default", + "fieldPath": "spec.containers{workspace}", + "apiVersion": "v1", + "kind": "Pod" + }, + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "component": "kubelet" + }, + "count": 1 + }, + { + "eventTime": null, + "type": "Warning", + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "component": "kubelet" + }, + "firstTimestamp": "2021-08-19T11:15:14Z", + "count": 1, + "reason": "Failed", + "reportingComponent": "", + "lastTimestamp": "2021-08-19T11:15:14Z", + "reportingInstance": "", + "metadata": { + "creationTimestamp": "2021-08-19T11:15:14Z", + "resourceVersion": "1046585", + "uid": "4a193160-32ba-4c37-a247-c57da733e004", + "namespace": "default", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f10b5bb4e8", + "managedFields": [ + { + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:reason": {}, + "f:type": {}, + "f:firstTimestamp": {}, + "f:lastTimestamp": {}, + "f:involvedObject": { + "f:apiVersion": {}, + "f:fieldPath": {}, + "f:kind": {}, + "f:name": {}, + "f:resourceVersion": {}, + "f:uid": {}, + "f:namespace": {} + }, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:message": {}, + "f:count": {} + }, + "time": "2021-08-19T11:15:14Z", + "operation": "Update", + "manager": "kubelet", + "apiVersion": "v1" + } + ] + }, + "involvedObject": { + "kind": "Pod", + "namespace": "default", + "resourceVersion": "18919275", + "fieldPath": "spec.containers{workspace}", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "apiVersion": "v1", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d" + }, + "message": "Failed to pull image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\": rpc error: code = FailedPrecondition desc = failed to pull and unpack image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d:latest\": failed commit on ref \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\": \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\" failed size validation: 33554502 != 64598931: failed precondition" + }, + { + "count": 1, + "reportingComponent": "", + "firstTimestamp": "2021-08-19T11:15:14Z", + "type": "Warning", + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "component": "kubelet" + }, + "message": "Error: ErrImagePull", + "reason": "Failed", + "reportingInstance": "", + "eventTime": null, + "metadata": { + "namespace": "default", + "managedFields": [ + { + "manager": "kubelet", + "apiVersion": "v1", + "operation": "Update", + "time": "2021-08-19T11:15:14Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:type": {}, + "f:count": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:firstTimestamp": {}, + "f:reason": {}, + "f:involvedObject": { + "f:fieldPath": {}, + "f:resourceVersion": {}, + "f:apiVersion": {}, + "f:namespace": {}, + "f:kind": {}, + "f:uid": {}, + "f:name": {} + }, + "f:lastTimestamp": {}, + "f:message": {} + } + } + ], + "uid": "7e393244-f608-4cee-ae54-1ea6db84e4b8", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f10b5bf8fa", + "creationTimestamp": "2021-08-19T11:15:14Z", + "resourceVersion": "1046586" + }, + "lastTimestamp": "2021-08-19T11:15:14Z", + "involvedObject": { + "kind": "Pod", + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "resourceVersion": "18919275", + "apiVersion": "v1", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46" + } + }, + { + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k" + }, + "message": "Back-off pulling image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\"", + "count": 1, + "reportingComponent": "", + "firstTimestamp": "2021-08-19T11:15:14Z", + "type": "Normal", + "involvedObject": { + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "namespace": "default", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "apiVersion": "v1", + "fieldPath": "spec.containers{workspace}", + "resourceVersion": "18919275", + "kind": "Pod" + }, + "reportingInstance": "", + "lastTimestamp": "2021-08-19T11:15:14Z", + "reason": "BackOff", + "metadata": { + "creationTimestamp": "2021-08-19T11:15:14Z", + "uid": "fb681776-e718-48f2-9b92-545bd3ddc39b", + "resourceVersion": "1046587", + "managedFields": [ + { + "operation": "Update", + "time": "2021-08-19T11:15:14Z", + "fieldsV1": { + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:message": {}, + "f:involvedObject": { + "f:fieldPath": {}, + "f:apiVersion": {}, + "f:resourceVersion": {}, + "f:name": {}, + "f:kind": {}, + "f:uid": {}, + "f:namespace": {} + }, + "f:firstTimestamp": {}, + "f:type": {}, + "f:count": {}, + "f:reason": {}, + "f:lastTimestamp": {} + }, + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "manager": "kubelet" + } + ], + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f12092b9d0", + "namespace": "default" + }, + "eventTime": null + }, + { + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "component": "kubelet" + }, + "reportingInstance": "", + "eventTime": null, + "metadata": { + "managedFields": [ + { + "fieldsV1": { + "f:reason": {}, + "f:message": {}, + "f:firstTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:count": {}, + "f:lastTimestamp": {}, + "f:type": {}, + "f:involvedObject": { + "f:resourceVersion": {}, + "f:fieldPath": {}, + "f:apiVersion": {}, + "f:uid": {}, + "f:namespace": {}, + "f:name": {}, + "f:kind": {} + } + }, + "manager": "kubelet", + "operation": "Update", + "time": "2021-08-19T11:15:14Z", + "fieldsType": "FieldsV1", + "apiVersion": "v1" + } + ], + "uid": "72142a14-c7f9-4599-87da-54e66e53b446", + "creationTimestamp": "2021-08-19T11:15:14Z", + "namespace": "default", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f120931187", + "resourceVersion": "1046588" + }, + "type": "Warning", + "count": 1, + "reportingComponent": "", + "message": "Error: ImagePullBackOff", + "lastTimestamp": "2021-08-19T11:15:14Z", + "involvedObject": { + "kind": "Pod", + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "apiVersion": "v1", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "resourceVersion": "18919275" + }, + "reason": "Failed", + "firstTimestamp": "2021-08-19T11:15:14Z" + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_cannotPull_005_STOPPED00.golden b/components/ws-manager/pkg/manager/testdata/status_cannotPull_005_STOPPED00.golden new file mode 100644 index 00000000000000..bb4590c1ebc16d --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_cannotPull_005_STOPPED00.golden @@ -0,0 +1,38 @@ +{ + "status": { + "id": "5031df46-db5e-43ae-91bd-1448305c001d", + "metadata": { + "owner": "00000000-0000-0000-0000-000000000000", + "meta_id": "silver-dormouse-is733prg", + "started_at": { + "seconds": 1629371675 + } + }, + "spec": { + "workspace_image": "eu.gcr.io/gitpod-dev/workspace-images:01abb31dd76a1e2885ea1d5c3b06a4ead10ae362ee21348428835d0c8b286e3a", + "ide_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-0941a0805dc3c7345c45bd926317eaf045d4b7fb", + "url": "https://silver-dormouse-is733prg.ws-us14.gitpod.io", + "exposed_ports": [ + { + "port": 3000, + "url": "https://3000-silver-dormouse-is733prg.ws-us14.gitpod.io" + } + ], + "timeout": "30m" + }, + "phase": 6, + "conditions": { + "failed": "cannot pull image: Back-off pulling image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\"", + "service_exists": 1, + "deployed": 1 + }, + "runtime": { + "node_name": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "pod_name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "node_ip": "10.138.0.78" + }, + "auth": { + "owner_token": "4BYvs6dfa-yXpTWZEPzeNsS2Ge.0QMdE" + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_cannotPull_005_STOPPED00.json b/components/ws-manager/pkg/manager/testdata/status_cannotPull_005_STOPPED00.json new file mode 100644 index 00000000000000..370bcc61345684 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_cannotPull_005_STOPPED00.json @@ -0,0 +1,1338 @@ +{ + "pod": { + "metadata": { + "annotations": { + "gitpod/ownerToken": "4BYvs6dfa-yXpTWZEPzeNsS2Ge.0QMdE", + "container.apparmor.security.beta.kubernetes.io/workspace": "unconfined", + "gitpod/customTimeout": "30m", + "gitpod/id": "5031df46-db5e-43ae-91bd-1448305c001d", + "gitpod/servicePrefix": "silver-dormouse-is733prg", + "gitpod/traceid": "AAAAAAAAAACsVGfZr9dELlC0TyqpUQOHCVOBoHl7AbQBAAAAAA==", + "gitpod/failedBeforeStopping": "true", + "gitpod/contentInitializer": "[redacted]", + "kubernetes.io/psp": "default-ns-workspace", + "gitpod/imageSpec": "CmZldS5nY3IuaW8vZ2l0cG9kLWRldi93b3Jrc3BhY2UtaW1hZ2VzOjAxYWJiMzFkZDc2YTFlMjg4NWVhMWQ1YzNiMDZhNGVhZDEwYWUzNjJlZTIxMzQ4NDI4ODM1ZDBjOGIyODZlM2ESWGV1Lmdjci5pby9naXRwb2QtY29yZS1kZXYvYnVpbGQvaWRlL2NvZGU6Y29tbWl0LTA5NDFhMDgwNWRjM2M3MzQ1YzQ1YmQ5MjYzMTdlYWYwNDVkNGI3ZmI=", + "prometheus.io/scrape": "true", + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false", + "gitpod/url": "https://silver-dormouse-is733prg.ws-us14.gitpod.io", + "seccomp.security.alpha.kubernetes.io/pod": "localhost/workspace_default_main.1254.json", + "cni.projectcalico.org/podIPs": "10.4.35.173/32", + "cni.projectcalico.org/podIP": "10.4.35.173/32", + "gitpod/never-ready": "true", + "prometheus.io/path": "/metrics", + "gitpod/admission": "admit_owner_only", + "prometheus.io/port": "23000", + "gitpod.io/requiredNodeServices": "ws-daemon,registry-facade" + }, + "finalizers": [ + "foregroundDeletion" + ], + "deletionGracePeriodSeconds": 30, + "resourceVersion": "18919733", + "deletionTimestamp": "2021-08-19T11:15:44Z", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "labels": { + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "component": "workspace", + "workspaceType": "regular", + "headless": "false", + "owner": "00000000-0000-0000-0000-000000000000", + "gpwsman": "true", + "app": "gitpod", + "metaID": "silver-dormouse-is733prg", + "gitpod.io/networkpolicy": "default" + }, + "managedFields": [ + { + "manager": "calico", + "fieldsType": "FieldsV1", + "operation": "Update", + "time": "2021-08-19T11:14:44Z", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + "f:cni.projectcalico.org/podIPs": {}, + "f:cni.projectcalico.org/podIP": {} + } + } + }, + "apiVersion": "v1" + }, + { + "fieldsV1": { + "f:status": { + "f:containerStatuses": {}, + "f:podIPs": { + "k:{\"ip\":\"10.4.35.173\"}": { + "f:ip": {}, + ".": {} + }, + ".": {} + }, + "f:conditions": { + "k:{\"type\":\"Ready\"}": { + "f:type": {}, + ".": {}, + "f:message": {}, + "f:reason": {}, + "f:status": {}, + "f:lastProbeTime": {}, + "f:lastTransitionTime": {} + }, + "k:{\"type\":\"Initialized\"}": { + "f:lastProbeTime": {}, + "f:lastTransitionTime": {}, + "f:status": {}, + "f:type": {}, + ".": {} + }, + "k:{\"type\":\"ContainersReady\"}": { + "f:lastProbeTime": {}, + "f:type": {}, + "f:message": {}, + "f:lastTransitionTime": {}, + "f:reason": {}, + ".": {}, + "f:status": {} + } + }, + "f:hostIP": {}, + "f:podIP": {}, + "f:startTime": {} + } + }, + "time": "2021-08-19T11:15:14Z", + "fieldsType": "FieldsV1", + "manager": "kubelet", + "apiVersion": "v1", + "operation": "Update" + }, + { + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:volumes": { + ".": {}, + "k:{\"name\":\"daemon-mount\"}": { + "f:hostPath": { + "f:type": {}, + ".": {}, + "f:path": {} + }, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"vol-this-workspace\"}": { + ".": {}, + "f:hostPath": { + "f:type": {}, + "f:path": {}, + ".": {} + }, + "f:name": {} + } + }, + "f:automountServiceAccountToken": {}, + "f:tolerations": {}, + "f:serviceAccount": {}, + "f:containers": { + "k:{\"name\":\"workspace\"}": { + ".": {}, + "f:image": {}, + "f:terminationMessagePolicy": {}, + "f:resources": { + "f:limits": { + "f:memory": {}, + ".": {}, + "f:cpu": {} + }, + "f:requests": { + ".": {}, + "f:memory": {}, + "f:cpu": {} + }, + ".": {} + }, + "f:name": {}, + "f:command": {}, + "f:volumeMounts": { + "k:{\"mountPath\":\"/.workspace\"}": { + "f:mountPath": {}, + "f:mountPropagation": {}, + ".": {}, + "f:name": {} + }, + "k:{\"mountPath\":\"/workspace\"}": { + ".": {}, + "f:name": {}, + "f:mountPropagation": {}, + "f:mountPath": {} + }, + ".": {} + }, + "f:readinessProbe": { + "f:failureThreshold": {}, + "f:periodSeconds": {}, + "f:successThreshold": {}, + "f:timeoutSeconds": {}, + "f:httpGet": { + ".": {}, + "f:port": {}, + "f:scheme": {}, + "f:path": {} + }, + ".": {}, + "f:initialDelaySeconds": {} + }, + "f:ports": { + "k:{\"containerPort\":23000,\"protocol\":\"TCP\"}": { + "f:protocol": {}, + "f:containerPort": {}, + ".": {} + }, + ".": {} + }, + "f:terminationMessagePath": {}, + "f:imagePullPolicy": {}, + "f:env": { + "k:{\"name\":\"GITPOD_INTERVAL\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"THEIA_RATELIMIT_LOG\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_HOST\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CLUSTER_HOST\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"TABNINE_CONFIG\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_TOKENS\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_URL\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_TASKS\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_NAME\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_EMAIL\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_CLI_APITOKEN\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_WORKSPACE_ROOT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_RESOLVED_EXTENSIONS\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT_URL\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_ENDPOINT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_MINI_BROWSER_HOST_PATTERN\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_WEBVIEW_EXTERNAL_ENDPOINT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_ID\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_THEIA_PORT\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_MEMORY\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_SEGMENT_KEY\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_REPO_ROOT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_INSTANCE_ID\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + ".": {}, + "k:{\"name\":\"GITPOD_EXTERNAL_EXTENSIONS\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_WRITER\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + } + }, + "f:securityContext": { + "f:runAsGroup": {}, + "f:runAsUser": {}, + "f:allowPrivilegeEscalation": {}, + "f:readOnlyRootFilesystem": {}, + ".": {}, + "f:runAsNonRoot": {}, + "f:capabilities": { + "f:drop": {}, + ".": {}, + "f:add": {} + }, + "f:privileged": {} + } + } + }, + "f:imagePullSecrets": { + ".": {}, + "k:{\"name\":\"workspace-registry-pull-secret\"}": { + "f:name": {}, + ".": {} + } + }, + "f:serviceAccountName": {}, + "f:restartPolicy": {}, + "f:schedulerName": {}, + "f:securityContext": {}, + "f:dnsPolicy": {}, + "f:terminationGracePeriodSeconds": {}, + "f:affinity": { + ".": {}, + "f:nodeAffinity": { + "f:requiredDuringSchedulingIgnoredDuringExecution": { + ".": {}, + "f:nodeSelectorTerms": {} + }, + ".": {} + } + }, + "f:dnsConfig": { + "f:nameservers": {}, + ".": {} + }, + "f:enableServiceLinks": {} + }, + "f:metadata": { + "f:labels": { + "f:owner": {}, + "f:gpwsman": {}, + "f:metaID": {}, + "f:workspaceID": {}, + "f:app": {}, + "f:gitpod.io/networkpolicy": {}, + "f:headless": {}, + "f:workspaceType": {}, + "f:component": {}, + ".": {} + }, + "f:annotations": { + "f:gitpod/ownerToken": {}, + "f:gitpod/url": {}, + "f:container.apparmor.security.beta.kubernetes.io/workspace": {}, + "f:gitpod/never-ready": {}, + "f:gitpod/servicePrefix": {}, + "f:seccomp.security.alpha.kubernetes.io/pod": {}, + "f:gitpod/imageSpec": {}, + ".": {}, + "f:gitpod/contentInitializer": {}, + "f:cluster-autoscaler.kubernetes.io/safe-to-evict": {}, + "f:prometheus.io/port": {}, + "f:gitpod.io/requiredNodeServices": {}, + "f:prometheus.io/scrape": {}, + "f:gitpod/id": {}, + "f:prometheus.io/path": {}, + "f:gitpod/admission": {}, + "f:gitpod/failedBeforeStopping": {}, + "f:gitpod/traceid": {}, + "f:gitpod/customTimeout": {} + } + } + }, + "manager": "ws-manager", + "operation": "Update", + "time": "2021-08-19T11:15:14Z" + } + ], + "namespace": "default", + "creationTimestamp": "2021-08-19T11:14:35Z" + }, + "kind": "Pod", + "spec": { + "containers": [ + { + "readinessProbe": { + "periodSeconds": 1, + "httpGet": { + "path": "/_supervisor/v1/status/content/wait/true", + "port": 22999, + "scheme": "HTTP" + }, + "initialDelaySeconds": 2, + "failureThreshold": 600, + "timeoutSeconds": 1, + "successThreshold": 1 + }, + "securityContext": { + "privileged": false, + "runAsNonRoot": true, + "readOnlyRootFilesystem": false, + "allowPrivilegeEscalation": true, + "runAsUser": 33333, + "runAsGroup": 33333, + "capabilities": { + "drop": [ + "SETPCAP", + "CHOWN", + "NET_RAW", + "DAC_OVERRIDE", + "FOWNER", + "SYS_CHROOT", + "SETFCAP", + "SETUID", + "SETGID" + ], + "add": [ + "AUDIT_WRITE", + "FSETID", + "KILL", + "NET_BIND_SERVICE", + "SYS_PTRACE" + ] + } + }, + "env": [ + { + "name": "GITPOD_REPO_ROOT", + "value": "/workspace/" + }, + { + "value": "q5wspmwV6hlbdmBJg7viT4lWhVZ9CQVF", + "name": "GITPOD_CLI_APITOKEN" + }, + { + "name": "GITPOD_WORKSPACE_ID", + "value": "silver-dormouse-is733prg" + }, + { + "value": "5031df46-db5e-43ae-91bd-1448305c001d", + "name": "GITPOD_INSTANCE_ID" + }, + { + "value": "23000", + "name": "GITPOD_THEIA_PORT" + }, + { + "value": "/workspace/", + "name": "THEIA_WORKSPACE_ROOT" + }, + { + "value": "https://gitpod.io", + "name": "GITPOD_HOST" + }, + { + "value": "https://silver-dormouse-is733prg.ws-us14.gitpod.io", + "name": "GITPOD_WORKSPACE_URL" + }, + { + "name": "GITPOD_WORKSPACE_CLUSTER_HOST", + "value": "ws-us14.gitpod.io" + }, + { + "name": "THEIA_SUPERVISOR_ENDPOINT", + "value": ":22999" + }, + { + "value": "webview-{{hostname}}", + "name": "THEIA_WEBVIEW_EXTERNAL_ENDPOINT" + }, + { + "name": "THEIA_MINI_BROWSER_HOST_PATTERN", + "value": "browser-{{hostname}}" + }, + { + "name": "GITPOD_GIT_USER_NAME", + "value": "" + }, + { + "name": "GITPOD_GIT_USER_EMAIL", + "value": "" + }, + { + "value": "[redacted]", + "name": "TABNINE_CONFIG" + }, + { + "name": "GITPOD_WORKSPACE_CONTEXT_URL", + "value": "https://github.com//" + }, + { + "name": "GITPOD_WORKSPACE_CONTEXT", + "value": "{\"isFile\":false,\"path\":\"\",\"title\":\"/ - main\",\"ref\":\"main\",\"refType\":\"branch\",\"revision\":\"f7c7c67ace62e176cc4687624e9c8c3fd02b47bb\",\"repository\":{\"cloneUrl\":\"https://github.com//.git\",\"host\":\"github.com\",\"name\":\"\",\"owner\":\"\",\"private\":false}}" + }, + { + "name": "GITPOD_TASKS", + "value": "[{\"init\":\"echo 'init script'\",\"command\":\"echo 'start script'\"}]" + }, + { + "name": "GITPOD_RESOLVED_EXTENSIONS", + "value": "{\"vscode.bat@1.44.2\":{\"fullPluginName\":\"vscode.bat@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.clojure@1.44.2\":{\"fullPluginName\":\"vscode.clojure@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.coffeescript@1.44.2\":{\"fullPluginName\":\"vscode.coffeescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.cpp@1.44.2\":{\"fullPluginName\":\"vscode.cpp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.csharp@1.44.2\":{\"fullPluginName\":\"vscode.csharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"llvm-vs-code-extensions.vscode-clangd@0.1.5\":{\"fullPluginName\":\"llvm-vs-code-extensions.vscode-clangd@0.1.5\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css@1.51.1\":{\"fullPluginName\":\"vscode.css@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css-language-features@1.51.1\":{\"fullPluginName\":\"vscode.css-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.debug-auto-launch@1.44.2\":{\"fullPluginName\":\"vscode.debug-auto-launch@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.emmet@1.44.2\":{\"fullPluginName\":\"vscode.emmet@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.fsharp@1.44.2\":{\"fullPluginName\":\"vscode.fsharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.go@1.44.2\":{\"fullPluginName\":\"vscode.go@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.groovy@1.44.2\":{\"fullPluginName\":\"vscode.groovy@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.handlebars@1.44.2\":{\"fullPluginName\":\"vscode.handlebars@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.hlsl@1.44.2\":{\"fullPluginName\":\"vscode.hlsl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html@1.51.1\":{\"fullPluginName\":\"vscode.html@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html-language-features@1.51.1\":{\"fullPluginName\":\"vscode.html-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ini@1.44.2\":{\"fullPluginName\":\"vscode.ini@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.java@1.53.2\":{\"fullPluginName\":\"vscode.java@1.53.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.javascript@1.44.2\":{\"fullPluginName\":\"vscode.javascript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json@1.44.2\":{\"fullPluginName\":\"vscode.json@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json-language-features@1.46.1\":{\"fullPluginName\":\"vscode.json-language-features@1.46.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.less@1.44.2\":{\"fullPluginName\":\"vscode.less@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.log@1.44.2\":{\"fullPluginName\":\"vscode.log@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.lua@1.44.2\":{\"fullPluginName\":\"vscode.lua@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.make@1.44.2\":{\"fullPluginName\":\"vscode.make@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.markdown@1.44.2\":{\"fullPluginName\":\"vscode.markdown@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.npm@1.39.1\":{\"fullPluginName\":\"vscode.npm@1.39.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.objective-c@1.44.2\":{\"fullPluginName\":\"vscode.objective-c@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.perl@1.44.2\":{\"fullPluginName\":\"vscode.perl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.php@1.44.2\":{\"fullPluginName\":\"vscode.php@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.powershell@1.44.2\":{\"fullPluginName\":\"vscode.powershell@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.pug@1.44.2\":{\"fullPluginName\":\"vscode.pug@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.python@1.47.3\":{\"fullPluginName\":\"vscode.python@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.r@1.44.2\":{\"fullPluginName\":\"vscode.r@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.razor@1.44.2\":{\"fullPluginName\":\"vscode.razor@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ruby@1.44.2\":{\"fullPluginName\":\"vscode.ruby@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.rust@1.44.2\":{\"fullPluginName\":\"vscode.rust@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.scss@1.44.2\":{\"fullPluginName\":\"vscode.scss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shaderlab@1.44.2\":{\"fullPluginName\":\"vscode.shaderlab@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shellscript@1.44.2\":{\"fullPluginName\":\"vscode.shellscript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.sql@1.44.2\":{\"fullPluginName\":\"vscode.sql@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.swift@1.44.2\":{\"fullPluginName\":\"vscode.swift@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript@1.44.2\":{\"fullPluginName\":\"vscode.typescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript-language-features@1.44.2\":{\"fullPluginName\":\"vscode.typescript-language-features@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vb@1.44.2\":{\"fullPluginName\":\"vscode.vb@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.xml@1.44.2\":{\"fullPluginName\":\"vscode.xml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.yaml@1.44.2\":{\"fullPluginName\":\"vscode.yaml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.java@0.75.0\":{\"fullPluginName\":\"redhat.java@0.75.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-debug@0.27.1\":{\"fullPluginName\":\"vscjava.vscode-java-debug@0.27.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-dependency@0.18.0\":{\"fullPluginName\":\"vscjava.vscode-java-dependency@0.18.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug@1.38.4\":{\"fullPluginName\":\"ms-vscode.node-debug@1.38.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug2@1.33.0\":{\"fullPluginName\":\"ms-vscode.node-debug2@1.33.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-python.python@2020.7.96456\":{\"fullPluginName\":\"ms-python.python@2020.7.96456\",\"url\":\"local\",\"kind\":\"builtin\"},\"golang.Go@0.14.4\":{\"fullPluginName\":\"golang.go@0.14.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-xml@0.11.0\":{\"fullPluginName\":\"redhat.vscode-xml@0.11.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-yaml@0.8.0\":{\"fullPluginName\":\"redhat.vscode-yaml@0.8.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"bmewburn.vscode-intelephense-client@1.4.0\":{\"fullPluginName\":\"bmewburn.vscode-intelephense-client@1.4.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"felixfbecker.php-debug@1.13.0\":{\"fullPluginName\":\"felixfbecker.php-debug@1.13.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"rust-lang.rust@0.7.8\":{\"fullPluginName\":\"rust-lang.rust@0.7.8\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-abyss@1.44.2\":{\"fullPluginName\":\"vscode.theme-abyss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-kimbie-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-kimbie-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai-dimmed@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai-dimmed@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-quietlight@1.44.2\":{\"fullPluginName\":\"vscode.theme-quietlight@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-red@1.44.2\":{\"fullPluginName\":\"vscode.theme-red@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-light@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-light@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-tomorrow-night-blue@1.44.2\":{\"fullPluginName\":\"vscode.theme-tomorrow-night-blue@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vscode-theme-seti@1.44.2\":{\"fullPluginName\":\"vscode.vscode-theme-seti@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.merge-conflict@1.44.2\":{\"fullPluginName\":\"vscode.merge-conflict@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.references-view@0.0.47\":{\"fullPluginName\":\"ms-vscode.references-view@0.0.47\",\"url\":\"local\",\"kind\":\"builtin\"},\"EditorConfig.EditorConfig@0.15.1\":{\"fullPluginName\":\"editorconfig.editorconfig@0.15.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.docker@1.47.3\":{\"fullPluginName\":\"vscode.docker@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"dart-code.flutter@3.19.0:/MRpX1iDrjzN++URaPj9kw==\":{\"fullPluginName\":\"dart-code.flutter@3.19.0\",\"url\":\"https://gitpod.io/plugins?id=00a87433-5bbb-4abc-a636-780634332812\",\"kind\":\"user\"},\"PKief.material-icon-theme@4.3.0:URe4ANXBLYHzB6CeGyTN8A==\":{\"fullPluginName\":\"pkief.material-icon-theme@4.3.0\",\"url\":\"https://gitpod.io/plugins?id=023253de-1cad-4ec1-aa89-2e4e1832802b\",\"kind\":\"user\"},\"equinusocio.vsc-material-theme-icons@1.2.0:JY/GxjbjHN78dpQfT47roQ==\":{\"fullPluginName\":\"equinusocio.vsc-material-theme-icons@1.2.0\",\"url\":\"https://gitpod.io/plugins?id=026955ab-9ba1-4940-b0a0-d35cd1fcd801\",\"kind\":\"user\"},\"esbenp.prettier-vscode@5.8.0:cd2Jz796EPVnD5zeCyctPw==\":{\"fullPluginName\":\"esbenp.prettier-vscode@5.8.0\",\"url\":\"https://gitpod.io/plugins?id=003d6915-5cec-444c-91f5-3136c5457410\",\"kind\":\"user\"}}" + }, + { + "value": "[]", + "name": "GITPOD_EXTERNAL_EXTENSIONS" + }, + { + "name": "THEIA_SUPERVISOR_TOKENS", + "value": "[{\"tokenOTS\":\"\",\"token\":\"ots\",\"kind\":\"gitpod\",\"host\":\"gitpod.io\",\"scope\":[\"function:getWorkspace\",\"function:getLoggedInUser\",\"function:getPortAuthenticationToken\",\"function:getWorkspaceOwner\",\"function:getWorkspaceUsers\",\"function:isWorkspaceOwner\",\"function:controlAdmission\",\"function:setWorkspaceTimeout\",\"function:getWorkspaceTimeout\",\"function:sendHeartBeat\",\"function:getOpenPorts\",\"function:openPort\",\"function:closePort\",\"function:getLayout\",\"function:generateNewGitpodToken\",\"function:takeSnapshot\",\"function:storeLayout\",\"function:stopWorkspace\",\"function:getToken\",\"function:getContentBlobUploadUrl\",\"function:getContentBlobDownloadUrl\",\"function:accessCodeSyncStorage\",\"function:guessGitTokenScopes\",\"function:getEnvVars\",\"function:setEnvVar\",\"function:deleteEnvVar\",\"function:trackEvent\",\"resource:workspace::silver-dormouse-is733prg::get/update\",\"resource:workspaceInstance::5031df46-db5e-43ae-91bd-1448305c001d::get/update/delete\",\"resource:snapshot::ws-silver-dormouse-is733prg::create\",\"resource:gitpodToken::*::create\",\"resource:userStorage::*::create/get/update\",\"resource:token::*::get\",\"resource:contentBlob::*::create/get\",\"resource:envVar::/::create/get/update/delete\"],\"expiryDate\":\"2021-08-20T11:14:35.921Z\",\"reuse\":2}]" + }, + { + "name": "GITPOD_INTERVAL", + "value": "30000" + }, + { + "value": "1879", + "name": "GITPOD_MEMORY" + }, + { + "value": "50", + "name": "THEIA_RATELIMIT_LOG" + }, + { + "value": "segment", + "name": "GITPOD_ANALYTICS_WRITER" + }, + { + "value": "", + "name": "GITPOD_ANALYTICS_SEGMENT_KEY" + } + ], + "resources": { + "limits": { + "memory": "12Gi", + "cpu": "6" + }, + "requests": { + "cpu": "1m", + "memory": "1792Mi" + } + }, + "terminationMessagePolicy": "File", + "image": "reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d", + "volumeMounts": [ + { + "name": "vol-this-workspace", + "mountPath": "/workspace", + "mountPropagation": "HostToContainer" + }, + { + "name": "daemon-mount", + "mountPropagation": "HostToContainer", + "mountPath": "/.workspace" + } + ], + "name": "workspace", + "imagePullPolicy": "IfNotPresent", + "terminationMessagePath": "/dev/termination-log", + "command": [ + "/.supervisor/workspacekit", + "ring0" + ], + "ports": [ + { + "containerPort": 23000, + "protocol": "TCP" + } + ] + } + ], + "preemptionPolicy": "PreemptLowerPriority", + "securityContext": { + "seccompProfile": { + "localhostProfile": "workspace_default_main.1254.json", + "type": "Localhost" + }, + "fsGroup": 1, + "supplementalGroups": [ + 1 + ] + }, + "tolerations": [ + { + "effect": "NoExecute", + "operator": "Exists", + "key": "node.kubernetes.io/disk-pressure" + }, + { + "operator": "Exists", + "key": "node.kubernetes.io/memory-pressure", + "effect": "NoExecute" + }, + { + "operator": "Exists", + "tolerationSeconds": 30, + "effect": "NoExecute", + "key": "node.kubernetes.io/network-unavailable" + }, + { + "tolerationSeconds": 300, + "effect": "NoExecute", + "key": "node.kubernetes.io/not-ready", + "operator": "Exists" + }, + { + "operator": "Exists", + "effect": "NoExecute", + "key": "node.kubernetes.io/unreachable", + "tolerationSeconds": 300 + } + ], + "dnsPolicy": "None", + "terminationGracePeriodSeconds": 30, + "automountServiceAccountToken": false, + "serviceAccountName": "workspace", + "schedulerName": "workspace-scheduler", + "restartPolicy": "Never", + "enableServiceLinks": false, + "priority": 0, + "serviceAccount": "workspace", + "dnsConfig": { + "nameservers": [ + "1.1.1.1", + "8.8.8.8" + ] + }, + "imagePullSecrets": [ + { + "name": "workspace-registry-pull-secret" + } + ], + "affinity": { + "nodeAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "key": "gitpod.io/workload_workspace", + "operator": "Exists" + } + ] + } + ] + } + } + }, + "volumes": [ + { + "name": "vol-this-workspace", + "hostPath": { + "type": "DirectoryOrCreate", + "path": "/mnt/disks/raid0/workspaces/5031df46-db5e-43ae-91bd-1448305c001d" + } + }, + { + "hostPath": { + "type": "DirectoryOrCreate", + "path": "/mnt/disks/raid0/workspaces/5031df46-db5e-43ae-91bd-1448305c001d-daemon" + }, + "name": "daemon-mount" + } + ], + "nodeName": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k" + }, + "apiVersion": "v1", + "status": { + "conditions": [ + { + "type": "Initialized", + "lastTransitionTime": "2021-08-19T11:14:44Z", + "lastProbeTime": null, + "status": "True" + }, + { + "reason": "ContainersNotReady", + "type": "Ready", + "message": "containers with unready status: [workspace]", + "lastProbeTime": null, + "status": "False", + "lastTransitionTime": "2021-08-19T11:14:44Z" + }, + { + "message": "containers with unready status: [workspace]", + "lastTransitionTime": "2021-08-19T11:14:44Z", + "lastProbeTime": null, + "type": "ContainersReady", + "status": "False", + "reason": "ContainersNotReady" + }, + { + "type": "PodScheduled", + "lastTransitionTime": "2021-08-19T11:14:44Z", + "status": "True", + "lastProbeTime": null + } + ], + "startTime": "2021-08-19T11:14:44Z", + "podIPs": [ + { + "ip": "10.4.35.173" + } + ], + "containerStatuses": [ + { + "started": false, + "lastState": {}, + "state": { + "waiting": { + "message": "Back-off pulling image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\"", + "reason": "ImagePullBackOff" + } + }, + "name": "workspace", + "image": "reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d", + "restartCount": 0, + "imageID": "", + "ready": false + } + ], + "hostIP": "10.138.0.78", + "qosClass": "Burstable", + "podIP": "10.4.35.173", + "phase": "Pending" + } + }, + "events": [ + { + "involvedObject": { + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "kind": "Pod", + "namespace": "default", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46" + }, + "count": 1, + "type": "Normal", + "eventTime": null, + "source": { + "component": "workspace-scheduler" + }, + "metadata": { + "managedFields": [ + { + "time": "2021-08-19T11:14:44Z", + "manager": "ws-scheduler", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:type": {}, + "f:count": {}, + "f:involvedObject": { + "f:name": {}, + "f:namespace": {}, + "f:uid": {}, + "f:kind": {} + }, + "f:message": {}, + "f:reason": {}, + "f:source": { + "f:component": {} + }, + "f:metadata": { + "f:generateName": {} + }, + "f:firstTimestamp": {}, + "f:lastTimestamp": {} + }, + "apiVersion": "v1", + "operation": "Update" + } + ], + "resourceVersion": "1046550", + "uid": "1765b2ad-6304-4c9f-90ac-5d3c712b0d69", + "namespace": "default", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d - scheduledw7nkv", + "creationTimestamp": "2021-08-19T11:14:44Z", + "generateName": "ws-5031df46-db5e-43ae-91bd-1448305c001d - scheduled" + }, + "message": "Placed pod [default/ws-5031df46-db5e-43ae-91bd-1448305c001d] on gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k\n", + "firstTimestamp": "2021-08-19T11:14:44Z", + "lastTimestamp": "2021-08-19T11:14:44Z", + "reportingInstance": "", + "reportingComponent": "", + "reason": "Scheduled" + }, + { + "eventTime": null, + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "component": "kubelet" + }, + "reason": "Pulling", + "lastTimestamp": "2021-08-19T11:14:45Z", + "firstTimestamp": "2021-08-19T11:14:45Z", + "involvedObject": { + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "resourceVersion": "18919275", + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "kind": "Pod", + "apiVersion": "v1", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46" + }, + "reportingComponent": "", + "message": "Pulling image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\"", + "count": 1, + "type": "Normal", + "reportingInstance": "", + "metadata": { + "namespace": "default", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0ea2e597784", + "resourceVersion": "1046552", + "managedFields": [ + { + "operation": "Update", + "fieldsType": "FieldsV1", + "manager": "kubelet", + "fieldsV1": { + "f:count": {}, + "f:involvedObject": { + "f:apiVersion": {}, + "f:uid": {}, + "f:kind": {}, + "f:name": {}, + "f:resourceVersion": {}, + "f:fieldPath": {}, + "f:namespace": {} + }, + "f:message": {}, + "f:firstTimestamp": {}, + "f:reason": {}, + "f:lastTimestamp": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:type": {} + }, + "time": "2021-08-19T11:14:45Z", + "apiVersion": "v1" + } + ], + "uid": "40e8d3a0-818d-48b4-a6ea-6f1b94f6f487", + "creationTimestamp": "2021-08-19T11:14:45Z" + } + }, + { + "message": "Failed to pull image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\": rpc error: code = FailedPrecondition desc = failed to pull and unpack image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d:latest\": failed commit on ref \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\": \"layer-sha256:6633ce2524dfae110cac2159a4f8490d198612d12abc1420486c52fbcf30b8b1\" failed size validation: 33554502 != 64598931: failed precondition", + "reportingInstance": "", + "metadata": { + "creationTimestamp": "2021-08-19T11:15:14Z", + "managedFields": [ + { + "apiVersion": "v1", + "manager": "kubelet", + "time": "2021-08-19T11:15:14Z", + "fieldsV1": { + "f:message": {}, + "f:lastTimestamp": {}, + "f:reason": {}, + "f:type": {}, + "f:firstTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:count": {}, + "f:involvedObject": { + "f:kind": {}, + "f:fieldPath": {}, + "f:name": {}, + "f:apiVersion": {}, + "f:uid": {}, + "f:namespace": {}, + "f:resourceVersion": {} + } + }, + "fieldsType": "FieldsV1", + "operation": "Update" + } + ], + "resourceVersion": "1046585", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f10b5bb4e8", + "uid": "4a193160-32ba-4c37-a247-c57da733e004", + "namespace": "default" + }, + "type": "Warning", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k" + }, + "eventTime": null, + "lastTimestamp": "2021-08-19T11:15:14Z", + "firstTimestamp": "2021-08-19T11:15:14Z", + "involvedObject": { + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "resourceVersion": "18919275", + "apiVersion": "v1", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "kind": "Pod" + }, + "reason": "Failed", + "count": 1, + "reportingComponent": "" + }, + { + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k" + }, + "type": "Warning", + "firstTimestamp": "2021-08-19T11:15:14Z", + "reason": "Failed", + "involvedObject": { + "apiVersion": "v1", + "namespace": "default", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "fieldPath": "spec.containers{workspace}", + "kind": "Pod", + "resourceVersion": "18919275", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46" + }, + "lastTimestamp": "2021-08-19T11:15:14Z", + "eventTime": null, + "count": 1, + "reportingComponent": "", + "message": "Error: ErrImagePull", + "reportingInstance": "", + "metadata": { + "resourceVersion": "1046586", + "uid": "7e393244-f608-4cee-ae54-1ea6db84e4b8", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f10b5bf8fa", + "creationTimestamp": "2021-08-19T11:15:14Z", + "managedFields": [ + { + "operation": "Update", + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "time": "2021-08-19T11:15:14Z", + "fieldsV1": { + "f:involvedObject": { + "f:fieldPath": {}, + "f:name": {}, + "f:kind": {}, + "f:namespace": {}, + "f:apiVersion": {}, + "f:resourceVersion": {}, + "f:uid": {} + }, + "f:lastTimestamp": {}, + "f:reason": {}, + "f:count": {}, + "f:firstTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:message": {}, + "f:type": {} + }, + "manager": "kubelet" + } + ], + "namespace": "default" + } + }, + { + "reportingComponent": "", + "firstTimestamp": "2021-08-19T11:15:14Z", + "metadata": { + "resourceVersion": "1046587", + "uid": "fb681776-e718-48f2-9b92-545bd3ddc39b", + "namespace": "default", + "creationTimestamp": "2021-08-19T11:15:14Z", + "managedFields": [ + { + "fieldsV1": { + "f:involvedObject": { + "f:fieldPath": {}, + "f:namespace": {}, + "f:resourceVersion": {}, + "f:apiVersion": {}, + "f:uid": {}, + "f:kind": {}, + "f:name": {} + }, + "f:firstTimestamp": {}, + "f:count": {}, + "f:reason": {}, + "f:message": {}, + "f:type": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:lastTimestamp": {} + }, + "time": "2021-08-19T11:15:14Z", + "manager": "kubelet", + "apiVersion": "v1", + "operation": "Update", + "fieldsType": "FieldsV1" + } + ], + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f12092b9d0" + }, + "lastTimestamp": "2021-08-19T11:15:14Z", + "reason": "BackOff", + "type": "Normal", + "involvedObject": { + "fieldPath": "spec.containers{workspace}", + "resourceVersion": "18919275", + "namespace": "default", + "kind": "Pod", + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "apiVersion": "v1" + }, + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k", + "component": "kubelet" + }, + "eventTime": null, + "reportingInstance": "", + "count": 1, + "message": "Back-off pulling image \"reg.gitpod.io:31001/remote/5031df46-db5e-43ae-91bd-1448305c001d\"" + }, + { + "reportingComponent": "", + "eventTime": null, + "involvedObject": { + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d", + "kind": "Pod", + "fieldPath": "spec.containers{workspace}", + "uid": "f1814426-be48-4b5a-9732-fe06bfebdb46", + "apiVersion": "v1", + "namespace": "default", + "resourceVersion": "18919275" + }, + "reason": "Failed", + "lastTimestamp": "2021-08-19T11:15:14Z", + "count": 1, + "message": "Error: ImagePullBackOff", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-61eed5be-kq0k" + }, + "metadata": { + "name": "ws-5031df46-db5e-43ae-91bd-1448305c001d.169cb0f120931187", + "namespace": "default", + "resourceVersion": "1046588", + "managedFields": [ + { + "apiVersion": "v1", + "manager": "kubelet", + "time": "2021-08-19T11:15:14Z", + "operation": "Update", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:type": {}, + "f:message": {}, + "f:count": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:firstTimestamp": {}, + "f:lastTimestamp": {}, + "f:involvedObject": { + "f:uid": {}, + "f:kind": {}, + "f:namespace": {}, + "f:resourceVersion": {}, + "f:name": {}, + "f:apiVersion": {}, + "f:fieldPath": {} + }, + "f:reason": {} + } + } + ], + "creationTimestamp": "2021-08-19T11:15:14Z", + "uid": "72142a14-c7f9-4599-87da-54e66e53b446" + }, + "type": "Warning", + "firstTimestamp": "2021-08-19T11:15:14Z", + "reportingInstance": "" + } + ], + "portsService": { + "kind": "Service", + "spec": { + "ports": [ + { + "name": "p3000-private", + "protocol": "TCP", + "port": 3000, + "targetPort": 3000 + } + ], + "clusterIP": "10.112.153.201", + "clusterIPs": [ + "10.112.153.201" + ], + "type": "ClusterIP", + "selector": { + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "gpwsman": "true" + }, + "sessionAffinity": "None" + }, + "metadata": { + "namespace": "default", + "deletionTimestamp": "2021-08-19T11:15:14Z", + "annotations": { + "gitpod/port-url-3000": "https://3000-silver-dormouse-is733prg.ws-us14.gitpod.io" + }, + "name": "ws-silver-dormouse-is733prg-ports", + "creationTimestamp": "2021-08-19T11:14:36Z", + "managedFields": [ + { + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:metaID": {}, + "f:workspaceID": {}, + "f:serviceType": {}, + "f:gpwsman": {} + }, + "f:annotations": { + ".": {}, + "f:gitpod/port-url-3000": {} + } + }, + "f:spec": { + "f:ports": { + "k:{\"port\":3000,\"protocol\":\"TCP\"}": { + ".": {}, + "f:port": {}, + "f:targetPort": {}, + "f:protocol": {}, + "f:name": {} + }, + ".": {} + }, + "f:sessionAffinity": {}, + "f:type": {}, + "f:selector": { + "f:workspaceID": {}, + "f:gpwsman": {}, + ".": {} + } + } + }, + "operation": "Update", + "fieldsType": "FieldsV1", + "manager": "ws-manager", + "apiVersion": "v1", + "time": "2021-08-19T11:14:36Z" + } + ], + "labels": { + "metaID": "silver-dormouse-is733prg", + "serviceType": "ports", + "gpwsman": "true", + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d" + }, + "uid": "a891f849-500b-426c-93b0-b0707d06b7ce", + "deletionGracePeriodSeconds": 0, + "resourceVersion": "18919705", + "finalizers": [ + "foregroundDeletion" + ] + }, + "status": { + "loadBalancer": {} + }, + "apiVersion": "v1" + }, + "theiaService": { + "metadata": { + "deletionGracePeriodSeconds": 0, + "labels": { + "gpwsman": "true", + "headless": "false", + "app": "gitpod", + "owner": "00000000-0000-0000-0000-000000000000", + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "workspaceType": "regular", + "metaID": "silver-dormouse-is733prg", + "component": "workspace" + }, + "name": "ws-silver-dormouse-is733prg-theia", + "finalizers": [ + "foregroundDeletion" + ], + "namespace": "default", + "managedFields": [ + { + "manager": "ws-manager", + "operation": "Update", + "time": "2021-08-19T11:14:35Z", + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:selector": { + "f:metaID": {}, + "f:gpwsman": {}, + "f:owner": {}, + "f:app": {}, + "f:headless": {}, + "f:workspaceType": {}, + "f:workspaceID": {}, + ".": {}, + "f:component": {} + }, + "f:sessionAffinity": {}, + "f:ports": { + "k:{\"port\":23000,\"protocol\":\"TCP\"}": { + "f:name": {}, + ".": {}, + "f:protocol": {}, + "f:targetPort": {}, + "f:port": {} + }, + ".": {}, + "k:{\"port\":22999,\"protocol\":\"TCP\"}": { + "f:name": {}, + ".": {}, + "f:protocol": {}, + "f:port": {}, + "f:targetPort": {} + } + }, + "f:type": {} + }, + "f:metadata": { + "f:labels": { + "f:headless": {}, + "f:workspaceType": {}, + "f:app": {}, + "f:owner": {}, + "f:component": {}, + "f:metaID": {}, + ".": {}, + "f:gpwsman": {}, + "f:workspaceID": {} + } + } + } + } + ], + "uid": "58539222-818b-44b8-9d2b-8dc5731117d6", + "deletionTimestamp": "2021-08-19T11:15:14Z", + "resourceVersion": "18919699", + "creationTimestamp": "2021-08-19T11:14:35Z" + }, + "spec": { + "sessionAffinity": "None", + "ports": [ + { + "name": "ide", + "protocol": "TCP", + "targetPort": 23000, + "port": 23000 + }, + { + "targetPort": 22999, + "name": "supervisor", + "protocol": "TCP", + "port": 22999 + } + ], + "clusterIPs": [ + "10.112.154.112" + ], + "selector": { + "owner": "00000000-0000-0000-0000-000000000000", + "component": "workspace", + "app": "gitpod", + "workspaceType": "regular", + "headless": "false", + "gpwsman": "true", + "workspaceID": "5031df46-db5e-43ae-91bd-1448305c001d", + "metaID": "silver-dormouse-is733prg" + }, + "clusterIP": "10.112.154.112", + "type": "ClusterIP" + }, + "kind": "Service", + "apiVersion": "v1", + "status": { + "loadBalancer": {} + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_contentInitFailed_005_STOPPED00.golden b/components/ws-manager/pkg/manager/testdata/status_contentInitFailed_005_STOPPED00.golden new file mode 100644 index 00000000000000..7d5839f78857e8 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_contentInitFailed_005_STOPPED00.golden @@ -0,0 +1,32 @@ +{ + "status": { + "id": "50bff6fd-2b1f-4d33-8b74-5362739add6f", + "metadata": { + "owner": "00000000-0000-0000-0000-000000000000", + "meta_id": "aqua-chimpanzee-35q6f08k", + "started_at": { + "seconds": 1629374870 + } + }, + "spec": { + "workspace_image": "eu.gcr.io/gitpod-dev/workspace-images:034fe685a5830014534c14a1bcd7c7b2b0c4e94bc4062de4f91646d95c5f23fd", + "ide_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-0941a0805dc3c7345c45bd926317eaf045d4b7fb", + "headless": true, + "url": "https://aqua-chimpanzee-35q6f08k.ws-us15.gitpod.io", + "type": 1 + }, + "phase": 6, + "conditions": { + "failed": "cannot initialize workspace: cannot initialize workspace: content initializer failed", + "deployed": 1 + }, + "runtime": { + "node_name": "gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v", + "pod_name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "node_ip": "10.138.15.219" + }, + "auth": { + "owner_token": "jRA_Te5snD4sq5C2Bfh-OeZ6BCh4YA4X" + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_contentInitFailed_005_STOPPED00.json b/components/ws-manager/pkg/manager/testdata/status_contentInitFailed_005_STOPPED00.json new file mode 100644 index 00000000000000..cebd737bb78ca5 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_contentInitFailed_005_STOPPED00.json @@ -0,0 +1,1103 @@ +{ + "pod": { + "kind": "Pod", + "apiVersion": "v1", + "metadata": { + "deletionGracePeriodSeconds": 30, + "deletionTimestamp": "2021-08-19T12:12:03Z", + "creationTimestamp": "2021-08-19T12:07:50Z", + "namespace": "default", + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "uid": "e02fe4fe-850a-4877-858a-96f65fba0b63", + "annotations": { + "container.apparmor.security.beta.kubernetes.io/workspace": "unconfined", + "gitpod/admission": "admit_owner_only", + "gitpod/imageSpec": "CmZldS5nY3IuaW8vZ2l0cG9kLWRldi93b3Jrc3BhY2UtaW1hZ2VzOjAzNGZlNjg1YTU4MzAwMTQ1MzRjMTRhMWJjZDdjN2IyYjBjNGU5NGJjNDA2MmRlNGY5MTY0NmQ5NWM1ZjIzZmQSWGV1Lmdjci5pby9naXRwb2QtY29yZS1kZXYvYnVpbGQvaWRlL2NvZGU6Y29tbWl0LTA5NDFhMDgwNWRjM2M3MzQ1YzQ1YmQ5MjYzMTdlYWYwNDVkNGI3ZmI=", + "prometheus.io/path": "/metrics", + "gitpod/contentInitializer": "[redacted]", + "cni.projectcalico.org/podIPs": "10.44.12.82/32", + "gitpod/failedBeforeStopping": "true", + "kubernetes.io/psp": "default-ns-workspace", + "gitpod.io/requiredNodeServices": "ws-daemon,registry-facade", + "gitpod/traceid": "AAAAAAAAAACgL/SjWAHnMwkiok9sdGz/HxJqy3dLJkoBAAAAAA==", + "prometheus.io/scrape": "true", + "prometheus.io/port": "23000", + "seccomp.security.alpha.kubernetes.io/pod": "localhost/workspace_default_main.1260.json", + "gitpod/explicitFail": "cannot initialize workspace: cannot initialize workspace: content initializer failed", + "gitpod/ownerToken": "jRA_Te5snD4sq5C2Bfh-OeZ6BCh4YA4X", + "gitpod/never-ready": "true", + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false", + "cni.projectcalico.org/podIP": "10.44.12.82/32", + "gitpod/servicePrefix": "aqua-chimpanzee-35q6f08k", + "gitpod/url": "https://aqua-chimpanzee-35q6f08k.ws-us15.gitpod.io", + "gitpod/id": "50bff6fd-2b1f-4d33-8b74-5362739add6f" + }, + "resourceVersion": "7675554", + "labels": { + "owner": "00000000-0000-0000-0000-000000000000", + "app": "gitpod", + "metaID": "aqua-chimpanzee-35q6f08k", + "gitpod.io/networkpolicy": "default", + "workspaceID": "50bff6fd-2b1f-4d33-8b74-5362739add6f", + "headless": "true", + "gpwsman": "true", + "workspaceType": "prebuild", + "component": "workspace" + }, + "managedFields": [ + { + "manager": "calico", + "fieldsType": "FieldsV1", + "time": "2021-08-19T12:07:51Z", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + "f:cni.projectcalico.org/podIP": {}, + "f:cni.projectcalico.org/podIPs": {} + } + } + }, + "operation": "Update", + "apiVersion": "v1" + }, + { + "time": "2021-08-19T12:07:54Z", + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "manager": "kubelet", + "operation": "Update", + "fieldsV1": { + "f:status": { + "f:podIP": {}, + "f:hostIP": {}, + "f:phase": {}, + "f:containerStatuses": {}, + "f:podIPs": { + ".": {}, + "k:{\"ip\":\"10.44.12.82\"}": { + "f:ip": {}, + ".": {} + } + }, + "f:conditions": { + "k:{\"type\":\"ContainersReady\"}": { + "f:status": {}, + "f:lastProbeTime": {}, + "f:lastTransitionTime": {}, + ".": {}, + "f:type": {}, + "f:reason": {}, + "f:message": {} + }, + "k:{\"type\":\"Ready\"}": { + ".": {}, + "f:reason": {}, + "f:type": {}, + "f:message": {}, + "f:status": {}, + "f:lastProbeTime": {}, + "f:lastTransitionTime": {} + }, + "k:{\"type\":\"Initialized\"}": { + "f:status": {}, + "f:lastProbeTime": {}, + ".": {}, + "f:type": {}, + "f:lastTransitionTime": {} + } + }, + "f:startTime": {} + } + } + }, + { + "fieldsV1": { + "f:spec": { + "f:containers": { + "k:{\"name\":\"workspace\"}": { + "f:imagePullPolicy": {}, + "f:env": { + "k:{\"name\":\"GITPOD_REPO_ROOT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_MEMORY\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_EXTERNAL_EXTENSIONS\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_HOST\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_HEADLESS\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CLUSTER_HOST\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_ENDPOINT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT_URL\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_THEIA_PORT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_TASKS\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_NAME\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_INSTANCE_ID\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + ".": {}, + "k:{\"name\":\"GITPOD_WORKSPACE_URL\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_MINI_BROWSER_HOST_PATTERN\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_EMAIL\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_CLI_APITOKEN\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_TOKENS\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_RESOLVED_EXTENSIONS\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"THEIA_WORKSPACE_ROOT\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_WEBVIEW_EXTERNAL_ENDPOINT\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_ID\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_INTERVAL\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + } + }, + "f:volumeMounts": { + ".": {}, + "k:{\"mountPath\":\"/workspace\"}": { + "f:name": {}, + "f:mountPath": {}, + ".": {}, + "f:mountPropagation": {} + }, + "k:{\"mountPath\":\"/.workspace\"}": { + "f:mountPropagation": {}, + ".": {}, + "f:name": {}, + "f:mountPath": {} + } + }, + ".": {}, + "f:command": {}, + "f:name": {}, + "f:resources": { + "f:limits": { + "f:cpu": {}, + "f:memory": {}, + ".": {} + }, + "f:requests": { + "f:ephemeral-storage": {}, + "f:memory": {}, + "f:cpu": {}, + ".": {} + }, + ".": {} + }, + "f:terminationMessagePolicy": {}, + "f:securityContext": { + "f:privileged": {}, + "f:readOnlyRootFilesystem": {}, + "f:runAsGroup": {}, + "f:allowPrivilegeEscalation": {}, + "f:runAsUser": {}, + "f:runAsNonRoot": {}, + ".": {}, + "f:capabilities": { + "f:add": {}, + "f:drop": {}, + ".": {} + } + }, + "f:image": {}, + "f:readinessProbe": { + "f:httpGet": { + "f:port": {}, + "f:scheme": {}, + ".": {}, + "f:path": {} + }, + "f:failureThreshold": {}, + "f:successThreshold": {}, + "f:timeoutSeconds": {}, + "f:initialDelaySeconds": {}, + ".": {}, + "f:periodSeconds": {} + }, + "f:ports": { + "k:{\"containerPort\":23000,\"protocol\":\"TCP\"}": { + ".": {}, + "f:protocol": {}, + "f:containerPort": {} + }, + ".": {} + }, + "f:terminationMessagePath": {} + } + }, + "f:automountServiceAccountToken": {}, + "f:terminationGracePeriodSeconds": {}, + "f:restartPolicy": {}, + "f:imagePullSecrets": { + "k:{\"name\":\"workspace-registry-pull-secret\"}": { + "f:name": {}, + ".": {} + }, + ".": {} + }, + "f:affinity": { + ".": {}, + "f:nodeAffinity": { + "f:requiredDuringSchedulingIgnoredDuringExecution": { + "f:nodeSelectorTerms": {}, + ".": {} + }, + ".": {} + } + }, + "f:enableServiceLinks": {}, + "f:dnsConfig": { + "f:nameservers": {}, + ".": {} + }, + "f:tolerations": {}, + "f:volumes": { + "k:{\"name\":\"vol-this-workspace\"}": { + ".": {}, + "f:name": {}, + "f:hostPath": { + "f:path": {}, + "f:type": {}, + ".": {} + } + }, + ".": {}, + "k:{\"name\":\"daemon-mount\"}": { + "f:name": {}, + ".": {}, + "f:hostPath": { + ".": {}, + "f:path": {}, + "f:type": {} + } + } + }, + "f:serviceAccount": {}, + "f:securityContext": {}, + "f:dnsPolicy": {}, + "f:serviceAccountName": {}, + "f:schedulerName": {} + }, + "f:metadata": { + "f:labels": { + "f:gpwsman": {}, + "f:workspaceType": {}, + "f:app": {}, + ".": {}, + "f:headless": {}, + "f:workspaceID": {}, + "f:owner": {}, + "f:gitpod.io/networkpolicy": {}, + "f:metaID": {}, + "f:component": {} + }, + "f:annotations": { + "f:prometheus.io/port": {}, + "f:prometheus.io/scrape": {}, + "f:gitpod/id": {}, + "f:gitpod/failedBeforeStopping": {}, + ".": {}, + "f:prometheus.io/path": {}, + "f:gitpod/traceid": {}, + "f:seccomp.security.alpha.kubernetes.io/pod": {}, + "f:container.apparmor.security.beta.kubernetes.io/workspace": {}, + "f:gitpod/servicePrefix": {}, + "f:gitpod/url": {}, + "f:gitpod/imageSpec": {}, + "f:gitpod/explicitFail": {}, + "f:cluster-autoscaler.kubernetes.io/safe-to-evict": {}, + "f:gitpod/contentInitializer": {}, + "f:gitpod/ownerToken": {}, + "f:gitpod/admission": {}, + "f:gitpod/never-ready": {}, + "f:gitpod.io/requiredNodeServices": {} + } + } + }, + "operation": "Update", + "apiVersion": "v1", + "manager": "ws-manager", + "time": "2021-08-19T12:11:33Z", + "fieldsType": "FieldsV1" + } + ] + }, + "spec": { + "containers": [ + { + "resources": { + "requests": { + "ephemeral-storage": "5Gi", + "cpu": "1m", + "memory": "4608Mi" + }, + "limits": { + "memory": "12Gi", + "cpu": "5" + } + }, + "env": [ + { + "value": "/workspace/gitlab", + "name": "GITPOD_REPO_ROOT" + }, + { + "value": "9hXMzvpCgZYB1Eq7cEpswb9Tx2NzYeIG", + "name": "GITPOD_CLI_APITOKEN" + }, + { + "name": "GITPOD_WORKSPACE_ID", + "value": "aqua-chimpanzee-35q6f08k" + }, + { + "value": "50bff6fd-2b1f-4d33-8b74-5362739add6f", + "name": "GITPOD_INSTANCE_ID" + }, + { + "name": "GITPOD_THEIA_PORT", + "value": "23000" + }, + { + "name": "THEIA_WORKSPACE_ROOT", + "value": "/workspace/gitlab" + }, + { + "name": "GITPOD_HOST", + "value": "https://gitpod.io" + }, + { + "value": "https://aqua-chimpanzee-35q6f08k.ws-us15.gitpod.io", + "name": "GITPOD_WORKSPACE_URL" + }, + { + "name": "GITPOD_WORKSPACE_CLUSTER_HOST", + "value": "ws-us15.gitpod.io" + }, + { + "value": ":22999", + "name": "THEIA_SUPERVISOR_ENDPOINT" + }, + { + "value": "webview-{{hostname}}", + "name": "THEIA_WEBVIEW_EXTERNAL_ENDPOINT" + }, + { + "value": "browser-{{hostname}}", + "name": "THEIA_MINI_BROWSER_HOST_PATTERN" + }, + { + "value": "", + "name": "GITPOD_GIT_USER_NAME" + }, + { + "name": "GITPOD_GIT_USER_EMAIL", + "value": "" + }, + { + "name": "GITPOD_WORKSPACE_CONTEXT_URL", + "value": "https://gitlab.com/gitlab-org/gitlab/-/tree/cat-master-patch-73328" + }, + { + "name": "GITPOD_WORKSPACE_CONTEXT", + "value": "{\"isFile\":false,\"path\":\"\",\"title\":\"gitlab-org/gitlab - cat-master-patch-73328\",\"revision\":\"57c35e90a415605ea1e895087f1d46b3c4d6ce71\",\"refType\":\"branch\",\"repository\":{\"host\":\"gitlab.com\",\"name\":\"gitlab\",\"owner\":\"gitlab-org\",\"cloneUrl\":\"https://gitlab.com/gitlab-org/gitlab.git\",\"defaultBranch\":\"master\",\"private\":false},\"forceCreateNewWorkspace\":true,\"snapshotBucketId\":\"workspaces/blush-tiger-u9pawbup/snapshot-1629312418749745818.tar@gitpod-prod-user-00000000-0000-0000-0000-000000000000\",\"prebuildWorkspaceId\":\"03a0e3f9-ec1f-46ce-b35c-9253bfdc09cf\",\"wasPrebuilt\":true}" + }, + { + "value": "[{\"name\":\"GDK\",\"command\":\"gp sync-await gdk-copied \u0026\u0026 cd /workspace/gitlab-development-kit \u0026\u0026 gdk help\"},{\"init\":\"echo \\\"$(date) – Copying GDK\\\" | tee -a /workspace/startup.log\\ncp -r $HOME/gitlab-development-kit /workspace/\\n(\\n set -e\\n cd /workspace/gitlab-development-kit\\n # GitLab FOSS\\n [[ -d /workspace/gitlab-foss ]] \u0026\u0026 ln -fs /workspace/gitlab-foss /workspace/gitlab-development-kit/gitlab\\n # GitLab\\n [[ -d /workspace/gitlab ]] \u0026\u0026 ln -fs /workspace/gitlab /workspace/gitlab-development-kit/gitlab\\n mv /workspace/gitlab-development-kit/secrets.yml /workspace/gitlab-development-kit/gitlab/config\\n # reconfigure GDK\\n echo \\\"$(date) – Reconfiguring GDK\\\" | tee -a /workspace/startup.log\\n gdk reconfigure\\n # run DB migrations\\n echo \\\"$(date) – Running DB migrations\\\" | tee -a /workspace/startup.log\\n make gitlab-db-migrate\\n # stop GDK\\n echo \\\"$(date) – Stopping GDK\\\" | tee -a /workspace/startup.log\\n gdk stop\\n echo \\\"$(date) – GDK stopped\\\" | tee -a /workspace/startup.log\\n)\\n\",\"command\":\"(\\n set -e\\n gp sync-done gdk-copied\\n SECONDS=0\\n cd /workspace/gitlab-development-kit\\n # update GDK\\n if [ \\\"$GITLAB_UPDATE_GDK\\\" == true ]; then\\n echo \\\"$(date) – Updating GDK\\\" | tee -a /workspace/startup.log\\n gdk update\\n fi\\n # start GDK\\n echo \\\"$(date) – Starting GDK\\\" | tee -a /workspace/startup.log\\n export DEV_SERVER_PUBLIC_ADDR=$(gp url 3808)\\n export RAILS_HOSTS=$(gp url 3000 | sed -e 's+^http[s]*://++')\\n gdk start\\n # Run DB migrations\\n if [ \\\"$GITLAB_RUN_DB_MIGRATIONS\\\" == true ]; then\\n make gitlab-db-migrate\\n fi\\n cd /workspace/gitlab-development-kit/gitlab\\n # Display which branch we're on\\n git branch --show-current\\n # Install Lefthook\\n bundle exec lefthook install\\n git checkout db/structure.sql\\n cd /workspace/gitlab-development-kit\\n # Waiting for GitLab ...\\n gp await-port 3000\\n printf \\\"Waiting for GitLab at $(gp url 3000) ...\\\"\\n # Check /-/readiness which returns JSON, but we're only interested in the exit code\\n #\\n # We use http://localhost:3000 instead of the public hostname because \\n # it's no longer possible to access as specific cookies are required\\n until curl --silent --no-buffer --fail http://localhost:3000/-/readiness \u003e /dev/null 2\u003e\u00261; do printf '.'; sleep 5; done \u0026\u0026 echo \\\"\\\"\\n # Give Gitpod a few more seconds to set up everything ...\\n sleep 5\\n printf \\\"$(date) – GitLab is up (took ~%.1f minutes)\\\\n\\\" \\\"$((10*$SECONDS/60))e-1\\\" | tee -a /workspace/startup.log\\n gp preview $(gp url 3000) || true\\n)\\n\"}]", + "name": "GITPOD_TASKS" + }, + { + "name": "THEIA_SUPERVISOR_TOKENS", + "value": "[{\"tokenOTS\":\"\",\"token\":\"ots\",\"kind\":\"gitpod\",\"host\":\"gitpod.io\",\"scope\":[\"function:getWorkspace\",\"function:getLoggedInUser\",\"function:getPortAuthenticationToken\",\"function:getWorkspaceOwner\",\"function:getWorkspaceUsers\",\"function:isWorkspaceOwner\",\"function:controlAdmission\",\"function:setWorkspaceTimeout\",\"function:getWorkspaceTimeout\",\"function:sendHeartBeat\",\"function:getOpenPorts\",\"function:openPort\",\"function:closePort\",\"function:getLayout\",\"function:generateNewGitpodToken\",\"function:takeSnapshot\",\"function:storeLayout\",\"function:stopWorkspace\",\"function:getToken\",\"function:getContentBlobUploadUrl\",\"function:getContentBlobDownloadUrl\",\"function:accessCodeSyncStorage\",\"function:guessGitTokenScopes\",\"function:getEnvVars\",\"function:setEnvVar\",\"function:deleteEnvVar\",\"function:trackEvent\",\"resource:workspace::aqua-chimpanzee-35q6f08k::get/update\",\"resource:workspaceInstance::50bff6fd-2b1f-4d33-8b74-5362739add6f::get/update/delete\",\"resource:snapshot::ws-aqua-chimpanzee-35q6f08k::create\",\"resource:gitpodToken::*::create\",\"resource:userStorage::*::create/get/update\",\"resource:token::*::get\",\"resource:contentBlob::*::create/get\",\"resource:envVar::gitlab-org/gitlab::create/get/update/delete\"],\"expiryDate\":\"2021-08-20T12:07:50.216Z\",\"reuse\":2}]" + }, + { + "name": "GITPOD_RESOLVED_EXTENSIONS", + "value": "{\"vscode.bat@1.44.2\":{\"fullPluginName\":\"vscode.bat@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.clojure@1.44.2\":{\"fullPluginName\":\"vscode.clojure@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.coffeescript@1.44.2\":{\"fullPluginName\":\"vscode.coffeescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.cpp@1.44.2\":{\"fullPluginName\":\"vscode.cpp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.csharp@1.44.2\":{\"fullPluginName\":\"vscode.csharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"llvm-vs-code-extensions.vscode-clangd@0.1.5\":{\"fullPluginName\":\"llvm-vs-code-extensions.vscode-clangd@0.1.5\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css@1.51.1\":{\"fullPluginName\":\"vscode.css@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css-language-features@1.51.1\":{\"fullPluginName\":\"vscode.css-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.debug-auto-launch@1.44.2\":{\"fullPluginName\":\"vscode.debug-auto-launch@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.emmet@1.44.2\":{\"fullPluginName\":\"vscode.emmet@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.fsharp@1.44.2\":{\"fullPluginName\":\"vscode.fsharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.go@1.44.2\":{\"fullPluginName\":\"vscode.go@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.groovy@1.44.2\":{\"fullPluginName\":\"vscode.groovy@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.handlebars@1.44.2\":{\"fullPluginName\":\"vscode.handlebars@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.hlsl@1.44.2\":{\"fullPluginName\":\"vscode.hlsl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html@1.51.1\":{\"fullPluginName\":\"vscode.html@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html-language-features@1.51.1\":{\"fullPluginName\":\"vscode.html-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ini@1.44.2\":{\"fullPluginName\":\"vscode.ini@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.java@1.53.2\":{\"fullPluginName\":\"vscode.java@1.53.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.javascript@1.44.2\":{\"fullPluginName\":\"vscode.javascript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json@1.44.2\":{\"fullPluginName\":\"vscode.json@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json-language-features@1.46.1\":{\"fullPluginName\":\"vscode.json-language-features@1.46.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.less@1.44.2\":{\"fullPluginName\":\"vscode.less@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.log@1.44.2\":{\"fullPluginName\":\"vscode.log@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.lua@1.44.2\":{\"fullPluginName\":\"vscode.lua@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.make@1.44.2\":{\"fullPluginName\":\"vscode.make@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.markdown@1.44.2\":{\"fullPluginName\":\"vscode.markdown@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.npm@1.39.1\":{\"fullPluginName\":\"vscode.npm@1.39.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.objective-c@1.44.2\":{\"fullPluginName\":\"vscode.objective-c@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.perl@1.44.2\":{\"fullPluginName\":\"vscode.perl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.php@1.44.2\":{\"fullPluginName\":\"vscode.php@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.powershell@1.44.2\":{\"fullPluginName\":\"vscode.powershell@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.pug@1.44.2\":{\"fullPluginName\":\"vscode.pug@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.python@1.47.3\":{\"fullPluginName\":\"vscode.python@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.r@1.44.2\":{\"fullPluginName\":\"vscode.r@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.razor@1.44.2\":{\"fullPluginName\":\"vscode.razor@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ruby@1.44.2\":{\"fullPluginName\":\"vscode.ruby@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.rust@1.44.2\":{\"fullPluginName\":\"vscode.rust@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.scss@1.44.2\":{\"fullPluginName\":\"vscode.scss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shaderlab@1.44.2\":{\"fullPluginName\":\"vscode.shaderlab@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shellscript@1.44.2\":{\"fullPluginName\":\"vscode.shellscript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.sql@1.44.2\":{\"fullPluginName\":\"vscode.sql@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.swift@1.44.2\":{\"fullPluginName\":\"vscode.swift@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript@1.44.2\":{\"fullPluginName\":\"vscode.typescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript-language-features@1.44.2\":{\"fullPluginName\":\"vscode.typescript-language-features@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vb@1.44.2\":{\"fullPluginName\":\"vscode.vb@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.xml@1.44.2\":{\"fullPluginName\":\"vscode.xml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.yaml@1.44.2\":{\"fullPluginName\":\"vscode.yaml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.java@0.75.0\":{\"fullPluginName\":\"redhat.java@0.75.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-debug@0.27.1\":{\"fullPluginName\":\"vscjava.vscode-java-debug@0.27.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-dependency@0.18.0\":{\"fullPluginName\":\"vscjava.vscode-java-dependency@0.18.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug@1.38.4\":{\"fullPluginName\":\"ms-vscode.node-debug@1.38.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug2@1.33.0\":{\"fullPluginName\":\"ms-vscode.node-debug2@1.33.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-python.python@2020.7.96456\":{\"fullPluginName\":\"ms-python.python@2020.7.96456\",\"url\":\"local\",\"kind\":\"builtin\"},\"golang.Go@0.14.4\":{\"fullPluginName\":\"golang.go@0.14.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-xml@0.11.0\":{\"fullPluginName\":\"redhat.vscode-xml@0.11.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-yaml@0.8.0\":{\"fullPluginName\":\"redhat.vscode-yaml@0.8.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"bmewburn.vscode-intelephense-client@1.4.0\":{\"fullPluginName\":\"bmewburn.vscode-intelephense-client@1.4.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"felixfbecker.php-debug@1.13.0\":{\"fullPluginName\":\"felixfbecker.php-debug@1.13.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"rust-lang.rust@0.7.8\":{\"fullPluginName\":\"rust-lang.rust@0.7.8\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-abyss@1.44.2\":{\"fullPluginName\":\"vscode.theme-abyss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-kimbie-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-kimbie-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai-dimmed@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai-dimmed@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-quietlight@1.44.2\":{\"fullPluginName\":\"vscode.theme-quietlight@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-red@1.44.2\":{\"fullPluginName\":\"vscode.theme-red@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-light@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-light@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-tomorrow-night-blue@1.44.2\":{\"fullPluginName\":\"vscode.theme-tomorrow-night-blue@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vscode-theme-seti@1.44.2\":{\"fullPluginName\":\"vscode.vscode-theme-seti@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.merge-conflict@1.44.2\":{\"fullPluginName\":\"vscode.merge-conflict@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.references-view@0.0.47\":{\"fullPluginName\":\"ms-vscode.references-view@0.0.47\",\"url\":\"local\",\"kind\":\"builtin\"},\"EditorConfig.EditorConfig@0.15.1\":{\"fullPluginName\":\"editorconfig.editorconfig@0.15.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.docker@1.47.3\":{\"fullPluginName\":\"vscode.docker@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"karunamurti.haml@1.3.1\":{\"fullPluginName\":\"karunamurti.haml@1.3.1\",\"url\":\"https://open-vsx.org/api/karunamurti/haml/1.3.1/file/karunamurti.haml-1.3.1.vsix\",\"kind\":\"workspace\"},\"wingrunr21.vscode-ruby@0.27.0\":{\"fullPluginName\":\"wingrunr21.vscode-ruby@0.27.0\",\"url\":\"https://open-vsx.org/api/wingrunr21/vscode-ruby/0.27.0/file/wingrunr21.vscode-ruby-0.27.0.vsix\",\"kind\":\"workspace\"},\"rebornix.ruby@0.28.0\":{\"fullPluginName\":\"rebornix.ruby@0.28.0\",\"url\":\"https://open-vsx.org/api/rebornix/ruby/0.28.0/file/rebornix.ruby-0.28.0.vsix\",\"kind\":\"workspace\"},\"octref.vetur@0.34.1\":{\"fullPluginName\":\"octref.vetur@0.34.1\",\"url\":\"https://open-vsx.org/api/octref/vetur/0.34.1/file/octref.vetur-0.34.1.vsix\",\"kind\":\"workspace\"},\"dbaeumer.vscode-eslint@2.1.8\":{\"fullPluginName\":\"dbaeumer.vscode-eslint@2.1.8\",\"url\":\"https://open-vsx.org/api/dbaeumer/vscode-eslint/2.1.8/file/dbaeumer.vscode-eslint-2.1.8.vsix\",\"kind\":\"workspace\"},\"gitlab.gitlab-workflow@3.24.0\":{\"fullPluginName\":\"gitlab.gitlab-workflow@3.24.0\",\"url\":\"https://open-vsx.org/api/GitLab/gitlab-workflow/3.24.0/file/GitLab.gitlab-workflow-3.24.0.vsix\",\"kind\":\"workspace\"}}" + }, + { + "value": "[]", + "name": "GITPOD_EXTERNAL_EXTENSIONS" + }, + { + "name": "GITPOD_INTERVAL", + "value": "30000" + }, + { + "value": "1879", + "name": "GITPOD_MEMORY" + }, + { + "name": "GITPOD_HEADLESS", + "value": "true" + } + ], + "name": "workspace", + "image": "reg.gitpod.io:31001/remote/50bff6fd-2b1f-4d33-8b74-5362739add6f", + "command": [ + "/.supervisor/workspacekit", + "ring0" + ], + "volumeMounts": [ + { + "name": "vol-this-workspace", + "mountPropagation": "HostToContainer", + "mountPath": "/workspace" + }, + { + "name": "daemon-mount", + "mountPropagation": "HostToContainer", + "mountPath": "/.workspace" + } + ], + "ports": [ + { + "protocol": "TCP", + "containerPort": 23000 + } + ], + "readinessProbe": { + "failureThreshold": 600, + "initialDelaySeconds": 2, + "periodSeconds": 1, + "successThreshold": 1, + "timeoutSeconds": 1, + "httpGet": { + "path": "/_supervisor/v1/status/content/wait/true", + "scheme": "HTTP", + "port": 22999 + } + }, + "terminationMessagePath": "/dev/termination-log", + "securityContext": { + "capabilities": { + "drop": [ + "SETPCAP", + "CHOWN", + "NET_RAW", + "DAC_OVERRIDE", + "FOWNER", + "SYS_CHROOT", + "SETFCAP", + "SETUID", + "SETGID" + ], + "add": [ + "AUDIT_WRITE", + "FSETID", + "KILL", + "NET_BIND_SERVICE", + "SYS_PTRACE" + ] + }, + "runAsUser": 33333, + "runAsNonRoot": true, + "privileged": false, + "runAsGroup": 33333, + "readOnlyRootFilesystem": false, + "allowPrivilegeEscalation": true + }, + "imagePullPolicy": "IfNotPresent", + "terminationMessagePolicy": "File" + } + ], + "dnsConfig": { + "nameservers": [ + "1.1.1.1", + "8.8.8.8" + ] + }, + "imagePullSecrets": [ + { + "name": "workspace-registry-pull-secret" + } + ], + "preemptionPolicy": "PreemptLowerPriority", + "automountServiceAccountToken": false, + "volumes": [ + { + "hostPath": { + "path": "/mnt/disks/ssd0/workspaces/50bff6fd-2b1f-4d33-8b74-5362739add6f", + "type": "DirectoryOrCreate" + }, + "name": "vol-this-workspace" + }, + { + "name": "daemon-mount", + "hostPath": { + "path": "/mnt/disks/ssd0/workspaces/50bff6fd-2b1f-4d33-8b74-5362739add6f-daemon", + "type": "DirectoryOrCreate" + } + } + ], + "nodeName": "gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v", + "schedulerName": "workspace-scheduler", + "serviceAccount": "workspace", + "enableServiceLinks": false, + "dnsPolicy": "None", + "priority": 0, + "terminationGracePeriodSeconds": 30, + "affinity": { + "nodeAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "operator": "Exists", + "key": "gitpod.io/workload_headless" + } + ] + } + ] + } + } + }, + "serviceAccountName": "workspace", + "tolerations": [ + { + "effect": "NoExecute", + "key": "node.kubernetes.io/disk-pressure", + "operator": "Exists" + }, + { + "operator": "Exists", + "effect": "NoExecute", + "key": "node.kubernetes.io/memory-pressure" + }, + { + "tolerationSeconds": 30, + "effect": "NoExecute", + "operator": "Exists", + "key": "node.kubernetes.io/network-unavailable" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/not-ready", + "operator": "Exists", + "tolerationSeconds": 300 + }, + { + "effect": "NoExecute", + "tolerationSeconds": 300, + "operator": "Exists", + "key": "node.kubernetes.io/unreachable" + } + ], + "restartPolicy": "Never", + "securityContext": { + "seccompProfile": { + "type": "Localhost", + "localhostProfile": "workspace_default_main.1260.json" + }, + "fsGroup": 1, + "supplementalGroups": [ + 1 + ] + } + }, + "status": { + "hostIP": "10.138.15.219", + "phase": "Running", + "podIPs": [ + { + "ip": "10.44.12.82" + } + ], + "podIP": "10.44.12.82", + "containerStatuses": [ + { + "containerID": "containerd://5575ec1d5b32dd8d80fc8fe07967b94f4c111766ed3bf2732deb798660c45977", + "name": "workspace", + "state": { + "running": { + "startedAt": "2021-08-19T12:07:53Z" + } + }, + "restartCount": 0, + "imageID": "reg.gitpod.io:31001/remote/08e6ae52-3acc-4106-960f-55fd718a48a3@sha256:f48f0aecd9fab5faf27454b3dd30f2b06787bd3d7b7b26bcb99d497bd13becd6", + "lastState": {}, + "ready": false, + "image": "reg.gitpod.io:31001/remote/b0217b0b-e142-45be-88a2-122b4a9e0f73:latest", + "started": true + } + ], + "conditions": [ + { + "type": "Initialized", + "status": "True", + "lastTransitionTime": "2021-08-19T12:07:50Z", + "lastProbeTime": null + }, + { + "lastProbeTime": null, + "lastTransitionTime": "2021-08-19T12:07:50Z", + "message": "containers with unready status: [workspace]", + "type": "Ready", + "status": "False", + "reason": "ContainersNotReady" + }, + { + "lastTransitionTime": "2021-08-19T12:07:50Z", + "status": "False", + "type": "ContainersReady", + "reason": "ContainersNotReady", + "message": "containers with unready status: [workspace]", + "lastProbeTime": null + }, + { + "lastProbeTime": null, + "lastTransitionTime": "2021-08-19T12:07:50Z", + "status": "True", + "type": "PodScheduled" + } + ], + "qosClass": "Burstable", + "startTime": "2021-08-19T12:07:50Z" + } + }, + "events": [ + { + "eventTime": null, + "reportingComponent": "", + "source": { + "component": "workspace-scheduler" + }, + "count": 1, + "reason": "Scheduled", + "firstTimestamp": "2021-08-19T12:07:50Z", + "message": "Placed pod [default/prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f] on gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v\n", + "type": "Normal", + "involvedObject": { + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "kind": "Pod", + "uid": "e02fe4fe-850a-4877-858a-96f65fba0b63", + "namespace": "default" + }, + "metadata": { + "uid": "f93be1d5-b8f7-4f41-96de-8fb00b524f1d", + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f - scheduledrgwt9", + "generateName": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f - scheduled", + "namespace": "default", + "resourceVersion": "447623", + "managedFields": [ + { + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "manager": "ws-scheduler", + "fieldsV1": { + "f:involvedObject": { + "f:namespace": {}, + "f:kind": {}, + "f:uid": {}, + "f:name": {} + }, + "f:metadata": { + "f:generateName": {} + }, + "f:lastTimestamp": {}, + "f:firstTimestamp": {}, + "f:count": {}, + "f:reason": {}, + "f:source": { + "f:component": {} + }, + "f:type": {}, + "f:message": {} + }, + "time": "2021-08-19T12:07:50Z", + "operation": "Update" + } + ], + "creationTimestamp": "2021-08-19T12:07:50Z" + }, + "reportingInstance": "", + "lastTimestamp": "2021-08-19T12:07:50Z" + }, + { + "reportingInstance": "", + "lastTimestamp": "2021-08-19T12:07:51Z", + "message": "Pulling image \"reg.gitpod.io:31001/remote/50bff6fd-2b1f-4d33-8b74-5362739add6f\"", + "firstTimestamp": "2021-08-19T12:07:51Z", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v" + }, + "reportingComponent": "", + "count": 1, + "eventTime": null, + "reason": "Pulling", + "metadata": { + "namespace": "default", + "creationTimestamp": "2021-08-19T12:07:51Z", + "managedFields": [ + { + "operation": "Update", + "apiVersion": "v1", + "manager": "kubelet", + "fieldsType": "FieldsV1", + "time": "2021-08-19T12:07:51Z", + "fieldsV1": { + "f:message": {}, + "f:lastTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:reason": {}, + "f:involvedObject": { + "f:resourceVersion": {}, + "f:name": {}, + "f:namespace": {}, + "f:kind": {}, + "f:uid": {}, + "f:apiVersion": {}, + "f:fieldPath": {} + }, + "f:type": {}, + "f:count": {}, + "f:firstTimestamp": {} + } + } + ], + "resourceVersion": "447624", + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f.169cb3d0006040e4", + "uid": "71716be3-da87-434f-9eb1-771624883c85" + }, + "type": "Normal", + "involvedObject": { + "namespace": "default", + "uid": "e02fe4fe-850a-4877-858a-96f65fba0b63", + "fieldPath": "spec.containers{workspace}", + "apiVersion": "v1", + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "kind": "Pod", + "resourceVersion": "7672995" + } + }, + { + "reportingComponent": "", + "eventTime": null, + "reportingInstance": "", + "involvedObject": { + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "resourceVersion": "7672995", + "apiVersion": "v1", + "namespace": "default", + "kind": "Pod", + "fieldPath": "spec.containers{workspace}", + "uid": "e02fe4fe-850a-4877-858a-96f65fba0b63" + }, + "source": { + "host": "gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v", + "component": "kubelet" + }, + "metadata": { + "resourceVersion": "447625", + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f.169cb3d09083d249", + "managedFields": [ + { + "time": "2021-08-19T12:07:53Z", + "operation": "Update", + "fieldsV1": { + "f:message": {}, + "f:reason": {}, + "f:firstTimestamp": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:lastTimestamp": {}, + "f:count": {}, + "f:involvedObject": { + "f:fieldPath": {}, + "f:apiVersion": {}, + "f:uid": {}, + "f:kind": {}, + "f:resourceVersion": {}, + "f:namespace": {}, + "f:name": {} + }, + "f:type": {} + }, + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "manager": "kubelet" + } + ], + "namespace": "default", + "uid": "b56cdd9c-bbc5-4e70-a176-35c5d2658eb3", + "creationTimestamp": "2021-08-19T12:07:53Z" + }, + "lastTimestamp": "2021-08-19T12:07:53Z", + "firstTimestamp": "2021-08-19T12:07:53Z", + "message": "Successfully pulled image \"reg.gitpod.io:31001/remote/50bff6fd-2b1f-4d33-8b74-5362739add6f\" in 2.418226735s", + "count": 1, + "type": "Normal", + "reason": "Pulled" + }, + { + "involvedObject": { + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "uid": "e02fe4fe-850a-4877-858a-96f65fba0b63", + "kind": "Pod", + "apiVersion": "v1", + "resourceVersion": "7672995", + "namespace": "default", + "fieldPath": "spec.containers{workspace}" + }, + "message": "Created container workspace", + "reportingComponent": "", + "type": "Normal", + "count": 1, + "lastTimestamp": "2021-08-19T12:07:53Z", + "reportingInstance": "", + "metadata": { + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f.169cb3d0927bb83d", + "uid": "a9cccd14-881a-4f92-b379-b81b76a127c7", + "resourceVersion": "447626", + "namespace": "default", + "managedFields": [ + { + "time": "2021-08-19T12:07:53Z", + "operation": "Update", + "manager": "kubelet", + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "fieldsV1": { + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:count": {}, + "f:lastTimestamp": {}, + "f:firstTimestamp": {}, + "f:involvedObject": { + "f:apiVersion": {}, + "f:uid": {}, + "f:kind": {}, + "f:name": {}, + "f:fieldPath": {}, + "f:resourceVersion": {}, + "f:namespace": {} + }, + "f:message": {}, + "f:type": {}, + "f:reason": {} + } + } + ], + "creationTimestamp": "2021-08-19T12:07:53Z" + }, + "eventTime": null, + "reason": "Created", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v" + }, + "firstTimestamp": "2021-08-19T12:07:53Z" + }, + { + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v" + }, + "reason": "Started", + "reportingInstance": "", + "count": 1, + "metadata": { + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f.169cb3d0980feb0d", + "uid": "7f30545a-9ff5-4957-98ef-e8db98dc758a", + "resourceVersion": "447627", + "creationTimestamp": "2021-08-19T12:07:53Z", + "namespace": "default", + "managedFields": [ + { + "manager": "kubelet", + "operation": "Update", + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "time": "2021-08-19T12:07:53Z", + "fieldsV1": { + "f:count": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:reason": {}, + "f:firstTimestamp": {}, + "f:message": {}, + "f:lastTimestamp": {}, + "f:type": {}, + "f:involvedObject": { + "f:kind": {}, + "f:fieldPath": {}, + "f:resourceVersion": {}, + "f:uid": {}, + "f:namespace": {}, + "f:apiVersion": {}, + "f:name": {} + } + } + } + ] + }, + "reportingComponent": "", + "lastTimestamp": "2021-08-19T12:07:53Z", + "involvedObject": { + "resourceVersion": "7672995", + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "uid": "e02fe4fe-850a-4877-858a-96f65fba0b63", + "apiVersion": "v1", + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "kind": "Pod" + }, + "eventTime": null, + "type": "Normal", + "firstTimestamp": "2021-08-19T12:07:53Z", + "message": "Started container workspace" + }, + { + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us15-us--headless-pool-64a87cf8-bw7v" + }, + "eventTime": null, + "type": "Warning", + "metadata": { + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f.169cb3d127e90152", + "uid": "b69397b4-06f1-4140-b96e-4a14cb5e907a", + "namespace": "default", + "resourceVersion": "447648", + "creationTimestamp": "2021-08-19T12:07:56Z", + "managedFields": [ + { + "manager": "kubelet", + "fieldsV1": { + "f:lastTimestamp": {}, + "f:involvedObject": { + "f:resourceVersion": {}, + "f:uid": {}, + "f:namespace": {}, + "f:kind": {}, + "f:apiVersion": {}, + "f:name": {}, + "f:fieldPath": {} + }, + "f:reason": {}, + "f:type": {}, + "f:message": {}, + "f:firstTimestamp": {}, + "f:count": {}, + "f:source": { + "f:component": {}, + "f:host": {} + } + }, + "fieldsType": "FieldsV1", + "time": "2021-08-19T12:07:56Z", + "operation": "Update", + "apiVersion": "v1" + } + ] + }, + "reportingComponent": "", + "firstTimestamp": "2021-08-19T12:07:56Z", + "lastTimestamp": "2021-08-19T12:08:16Z", + "reason": "Unhealthy", + "reportingInstance": "", + "count": 21, + "involvedObject": { + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "apiVersion": "v1", + "uid": "e02fe4fe-850a-4877-858a-96f65fba0b63", + "name": "prebuild-50bff6fd-2b1f-4d33-8b74-5362739add6f", + "kind": "Pod", + "resourceVersion": "7672995" + }, + "message": "Readiness probe failed: Get \"http://10.44.12.82:22999/_supervisor/v1/status/content/wait/true\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)" + } + ] +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_errimgpull_CREATING01.golden b/components/ws-manager/pkg/manager/testdata/status_errimgpull_CREATING01.golden index b8427f6394d563..2cc485baaed559 100644 --- a/components/ws-manager/pkg/manager/testdata/status_errimgpull_CREATING01.golden +++ b/components/ws-manager/pkg/manager/testdata/status_errimgpull_CREATING01.golden @@ -14,7 +14,7 @@ "url": "http://f29012c4-c6b9-4bd1-9c48-151bdeec6940.ws-dev.cw-registry.staging.gitpod-dev.com", "timeout": "30m" }, - "phase": 5, + "phase": 6, "conditions": { "failed": "cannot pull image: Back-off pulling image \"reg.gitpod.io:227/i/79be1e8b-a6de-4572-8627-99ef12303a88:latest\"", "deployed": 1 diff --git a/components/ws-manager/pkg/manager/testdata/status_failedBeforeStopping_explicitFail.golden b/components/ws-manager/pkg/manager/testdata/status_failedBeforeStopping_explicitFail.golden index e2fc9f220ddf80..935845e3cba2fe 100644 --- a/components/ws-manager/pkg/manager/testdata/status_failedBeforeStopping_explicitFail.golden +++ b/components/ws-manager/pkg/manager/testdata/status_failedBeforeStopping_explicitFail.golden @@ -12,7 +12,7 @@ "workspace_image": "eu.gcr.io/gitpod-dev/workspace-images/b24b4698d67f493b801d17196870fd8a422ffa1e/eu.gcr.io/gitpod-dev/workspace-full:sha256-535009d8cf429001e17f0f6388f33065c53cb70a62904800aa3f424403c7cb7e", "url": "http://eb694666-269a-4d8c-a031-3cd6ea8135f9.ws-eu.gh-2510.staging.gitpod.io" }, - "phase": 5, + "phase": 6, "conditions": { "failed": "cannot init workspace content: rpc error: code = Internal desc = cannot initialize workspace", "deployed": 1 diff --git a/components/ws-manager/pkg/manager/testdata/status_failedLogs_UNKNOWN00.golden b/components/ws-manager/pkg/manager/testdata/status_failedLogs_RUNNING00.golden similarity index 98% rename from components/ws-manager/pkg/manager/testdata/status_failedLogs_UNKNOWN00.golden rename to components/ws-manager/pkg/manager/testdata/status_failedLogs_RUNNING00.golden index ff52af61bd43b6..490ca9b508f012 100644 --- a/components/ws-manager/pkg/manager/testdata/status_failedLogs_UNKNOWN00.golden +++ b/components/ws-manager/pkg/manager/testdata/status_failedLogs_RUNNING00.golden @@ -21,6 +21,7 @@ ], "timeout": "30m" }, + "phase": 4, "conditions": { "failed": "IDE failed to start: fork/exec /theia/node_modules/@gitpod/gitpod-ide/startup.sh: no such file or directory", "service_exists": 1, diff --git a/components/ws-manager/pkg/manager/testdata/status_failedLogs_UNKNOWN00.json b/components/ws-manager/pkg/manager/testdata/status_failedLogs_RUNNING00.json similarity index 100% rename from components/ws-manager/pkg/manager/testdata/status_failedLogs_UNKNOWN00.json rename to components/ws-manager/pkg/manager/testdata/status_failedLogs_RUNNING00.json diff --git a/components/ws-manager/pkg/manager/testdata/status_failedPending_evicted_UNKNOWN02.golden b/components/ws-manager/pkg/manager/testdata/status_failedPending_evicted_UNKNOWN02.golden index 4d06f2ae1a1633..dd4318a9fe5981 100644 --- a/components/ws-manager/pkg/manager/testdata/status_failedPending_evicted_UNKNOWN02.golden +++ b/components/ws-manager/pkg/manager/testdata/status_failedPending_evicted_UNKNOWN02.golden @@ -13,7 +13,7 @@ "url": "https://ab451d8b-7a3a-42ec-b173-20a0e49773d4.ws-eu01.gitpod.io", "timeout": "60m" }, - "phase": 5, + "phase": 6, "conditions": { "failed": "Evicted: Pod The node was low on resource: [DiskPressure]. ", "service_exists": 1, diff --git a/components/ws-manager/pkg/manager/testdata/status_ideFailedToStart_005_RUNNING00.golden b/components/ws-manager/pkg/manager/testdata/status_ideFailedToStart_005_RUNNING00.golden new file mode 100644 index 00000000000000..4c9b896f59a9c1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_ideFailedToStart_005_RUNNING00.golden @@ -0,0 +1,32 @@ +{ + "status": { + "id": "9ff933b3-d487-4b45-a966-e715767f91df", + "metadata": { + "owner": "d20bf9c2-e802-43ba-b647-ffa89f8ff17e", + "meta_id": "rose-donkey-wfapr095", + "started_at": { + "seconds": 1629308528 + } + }, + "spec": { + "workspace_image": "eu.gcr.io/gitpod-dev/workspace-images:aeed577d8b4785088120a7d24d056ee2d553a69d2bcc413a572e82a3039cd6cd", + "ide_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-0941a0805dc3c7345c45bd926317eaf045d4b7fb", + "url": "https://rose-donkey-wfapr095.ws-eu14.gitpod.io", + "timeout": "30m" + }, + "phase": 4, + "conditions": { + "failed": "IDE failed to start: exit status 127", + "service_exists": 1, + "deployed": 1 + }, + "runtime": { + "node_name": "gke-gp-prod-ws-eu14-eu-workspace-pool-b6e0759a-3lb1", + "pod_name": "ws-9ff933b3-d487-4b45-a966-e715767f91df", + "node_ip": "10.132.0.110" + }, + "auth": { + "owner_token": "-Jlxl8PUpKylHGFNjZaYXSmhg8qlFbck" + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_ideFailedToStart_005_RUNNING00.json b/components/ws-manager/pkg/manager/testdata/status_ideFailedToStart_005_RUNNING00.json new file mode 100644 index 00000000000000..815ac98463833b --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_ideFailedToStart_005_RUNNING00.json @@ -0,0 +1,1162 @@ +{ + "events": [ + { + "type": "Normal", + "eventTime": null, + "count": 1, + "reason": "Scheduled", + "metadata": { + "managedFields": [ + { + "operation": "Update", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:message": {}, + "f:firstTimestamp": {}, + "f:metadata": { + "f:generateName": {} + }, + "f:type": {}, + "f:lastTimestamp": {}, + "f:involvedObject": { + "f:uid": {}, + "f:namespace": {}, + "f:kind": {}, + "f:name": {} + }, + "f:reason": {}, + "f:count": {}, + "f:source": { + "f:component": {} + } + }, + "time": "2021-08-18T17:42:08Z", + "apiVersion": "v1", + "manager": "ws-scheduler" + } + ], + "resourceVersion": "619605", + "creationTimestamp": "2021-08-18T17:42:08Z", + "uid": "5fc26cb8-acfb-4b01-aaed-6de7087f339c", + "namespace": "default", + "generateName": "ws-9ff933b3-d487-4b45-a966-e715767f91df - scheduled", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df - scheduledtp27q" + }, + "message": "Placed pod [default/ws-9ff933b3-d487-4b45-a966-e715767f91df] on gke-gp-prod-ws-eu14-eu-workspace-pool-b6e0759a-3lb1\n", + "source": { + "component": "workspace-scheduler" + }, + "lastTimestamp": "2021-08-18T17:42:08Z", + "reportingInstance": "", + "reportingComponent": "", + "firstTimestamp": "2021-08-18T17:42:08Z", + "involvedObject": { + "namespace": "default", + "kind": "Pod", + "uid": "e74b492c-cad8-4e18-bbfc-971eba8803fd", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df" + } + }, + { + "reason": "Pulling", + "count": 1, + "lastTimestamp": "2021-08-18T17:42:09Z", + "source": { + "host": "gke-gp-prod-ws-eu14-eu-workspace-pool-b6e0759a-3lb1", + "component": "kubelet" + }, + "involvedObject": { + "resourceVersion": "17004930", + "namespace": "default", + "fieldPath": "spec.containers{workspace}", + "uid": "e74b492c-cad8-4e18-bbfc-971eba8803fd", + "kind": "Pod", + "apiVersion": "v1", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df" + }, + "eventTime": null, + "metadata": { + "namespace": "default", + "uid": "cb0ce9a4-35ad-4ed1-8696-9657244552a9", + "managedFields": [ + { + "fieldsType": "FieldsV1", + "operation": "Update", + "manager": "kubelet", + "time": "2021-08-18T17:42:09Z", + "apiVersion": "v1", + "fieldsV1": { + "f:involvedObject": { + "f:resourceVersion": {}, + "f:name": {}, + "f:kind": {}, + "f:uid": {}, + "f:fieldPath": {}, + "f:apiVersion": {}, + "f:namespace": {} + }, + "f:lastTimestamp": {}, + "f:message": {}, + "f:type": {}, + "f:firstTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:count": {}, + "f:reason": {} + } + } + ], + "resourceVersion": "619606", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df.169c77799d79f8e6", + "creationTimestamp": "2021-08-18T17:42:09Z" + }, + "firstTimestamp": "2021-08-18T17:42:09Z", + "type": "Normal", + "reportingComponent": "", + "message": "Pulling image \"reg.gitpod.io:31001/remote/9ff933b3-d487-4b45-a966-e715767f91df\"", + "reportingInstance": "" + }, + { + "metadata": { + "resourceVersion": "619652", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df.169c777e94f2d95e", + "uid": "4833a03a-fd09-4132-8a03-75c5c2c02deb", + "managedFields": [ + { + "apiVersion": "v1", + "manager": "kubelet", + "operation": "Update", + "fieldsV1": { + "f:reason": {}, + "f:count": {}, + "f:lastTimestamp": {}, + "f:message": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:firstTimestamp": {}, + "f:involvedObject": { + "f:uid": {}, + "f:name": {}, + "f:fieldPath": {}, + "f:namespace": {}, + "f:kind": {}, + "f:apiVersion": {}, + "f:resourceVersion": {} + }, + "f:type": {} + }, + "time": "2021-08-18T17:42:30Z", + "fieldsType": "FieldsV1" + } + ], + "namespace": "default", + "creationTimestamp": "2021-08-18T17:42:30Z" + }, + "type": "Normal", + "message": "Successfully pulled image \"reg.gitpod.io:31001/remote/9ff933b3-d487-4b45-a966-e715767f91df\" in 21.331736475s", + "eventTime": null, + "reason": "Pulled", + "count": 1, + "firstTimestamp": "2021-08-18T17:42:30Z", + "involvedObject": { + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df", + "kind": "Pod", + "resourceVersion": "17004930", + "uid": "e74b492c-cad8-4e18-bbfc-971eba8803fd", + "fieldPath": "spec.containers{workspace}", + "apiVersion": "v1", + "namespace": "default" + }, + "source": { + "host": "gke-gp-prod-ws-eu14-eu-workspace-pool-b6e0759a-3lb1", + "component": "kubelet" + }, + "lastTimestamp": "2021-08-18T17:42:30Z", + "reportingInstance": "", + "reportingComponent": "" + }, + { + "reportingInstance": "", + "reportingComponent": "", + "lastTimestamp": "2021-08-18T17:42:38Z", + "type": "Normal", + "count": 1, + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-eu14-eu-workspace-pool-b6e0759a-3lb1" + }, + "metadata": { + "uid": "cfb2e9ff-4934-4866-9556-37954053c4bc", + "creationTimestamp": "2021-08-18T17:42:38Z", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df.169c77805851df17", + "resourceVersion": "619666", + "namespace": "default", + "managedFields": [ + { + "fieldsV1": { + "f:involvedObject": { + "f:kind": {}, + "f:name": {}, + "f:resourceVersion": {}, + "f:uid": {}, + "f:fieldPath": {}, + "f:apiVersion": {}, + "f:namespace": {} + }, + "f:reason": {}, + "f:type": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:message": {}, + "f:firstTimestamp": {}, + "f:count": {}, + "f:lastTimestamp": {} + }, + "time": "2021-08-18T17:42:38Z", + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "manager": "kubelet", + "operation": "Update" + } + ] + }, + "message": "Created container workspace", + "reason": "Created", + "firstTimestamp": "2021-08-18T17:42:38Z", + "involvedObject": { + "resourceVersion": "17004930", + "fieldPath": "spec.containers{workspace}", + "apiVersion": "v1", + "uid": "e74b492c-cad8-4e18-bbfc-971eba8803fd", + "kind": "Pod", + "namespace": "default", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df" + }, + "eventTime": null + }, + { + "reportingInstance": "", + "count": 1, + "reportingComponent": "", + "eventTime": null, + "metadata": { + "namespace": "default", + "uid": "7105502e-c602-4551-b528-71633da3227d", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df.169c77805ec94da1", + "resourceVersion": "619668", + "creationTimestamp": "2021-08-18T17:42:38Z", + "managedFields": [ + { + "apiVersion": "v1", + "time": "2021-08-18T17:42:38Z", + "manager": "kubelet", + "operation": "Update", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:involvedObject": { + "f:uid": {}, + "f:name": {}, + "f:apiVersion": {}, + "f:kind": {}, + "f:fieldPath": {}, + "f:namespace": {}, + "f:resourceVersion": {} + }, + "f:type": {}, + "f:firstTimestamp": {}, + "f:lastTimestamp": {}, + "f:count": {}, + "f:reason": {}, + "f:message": {} + } + } + ] + }, + "firstTimestamp": "2021-08-18T17:42:38Z", + "involvedObject": { + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df", + "uid": "e74b492c-cad8-4e18-bbfc-971eba8803fd", + "resourceVersion": "17004930", + "kind": "Pod", + "namespace": "default", + "apiVersion": "v1", + "fieldPath": "spec.containers{workspace}" + }, + "type": "Normal", + "lastTimestamp": "2021-08-18T17:42:38Z", + "source": { + "host": "gke-gp-prod-ws-eu14-eu-workspace-pool-b6e0759a-3lb1", + "component": "kubelet" + }, + "message": "Started container workspace", + "reason": "Started" + } + ], + "pod": { + "spec": { + "terminationGracePeriodSeconds": 30, + "preemptionPolicy": "PreemptLowerPriority", + "tolerations": [ + { + "operator": "Exists", + "effect": "NoExecute", + "key": "node.kubernetes.io/disk-pressure" + }, + { + "key": "node.kubernetes.io/memory-pressure", + "effect": "NoExecute", + "operator": "Exists" + }, + { + "key": "node.kubernetes.io/network-unavailable", + "tolerationSeconds": 30, + "effect": "NoExecute", + "operator": "Exists" + }, + { + "tolerationSeconds": 300, + "effect": "NoExecute", + "key": "node.kubernetes.io/not-ready", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/unreachable", + "operator": "Exists", + "tolerationSeconds": 300 + } + ], + "securityContext": { + "seccompProfile": { + "type": "Localhost", + "localhostProfile": "workspace_default_main.1254.json" + }, + "supplementalGroups": [ + 1 + ], + "fsGroup": 1 + }, + "dnsConfig": { + "nameservers": [ + "1.1.1.1", + "8.8.8.8" + ] + }, + "dnsPolicy": "None", + "schedulerName": "workspace-scheduler", + "nodeName": "gke-gp-prod-ws-eu14-eu-workspace-pool-b6e0759a-3lb1", + "affinity": { + "nodeAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "key": "gitpod.io/workload_workspace", + "operator": "Exists" + } + ] + } + ] + } + } + }, + "imagePullSecrets": [ + { + "name": "workspace-registry-pull-secret" + } + ], + "automountServiceAccountToken": false, + "priority": 0, + "containers": [ + { + "image": "reg.gitpod.io:31001/remote/9ff933b3-d487-4b45-a966-e715767f91df", + "readinessProbe": { + "periodSeconds": 1, + "failureThreshold": 600, + "timeoutSeconds": 1, + "httpGet": { + "scheme": "HTTP", + "path": "/_supervisor/v1/status/content/wait/true", + "port": 22999 + }, + "initialDelaySeconds": 2, + "successThreshold": 1 + }, + "env": [ + { + "value": "/workspace/property-match-api", + "name": "GITPOD_REPO_ROOT" + }, + { + "value": "QitkoUMrwwr0EYh5eNvHCgrt6KOpw5dH", + "name": "GITPOD_CLI_APITOKEN" + }, + { + "value": "rose-donkey-wfapr095", + "name": "GITPOD_WORKSPACE_ID" + }, + { + "value": "9ff933b3-d487-4b45-a966-e715767f91df", + "name": "GITPOD_INSTANCE_ID" + }, + { + "name": "GITPOD_THEIA_PORT", + "value": "23000" + }, + { + "value": "/workspace/property-match-api", + "name": "THEIA_WORKSPACE_ROOT" + }, + { + "name": "GITPOD_HOST", + "value": "https://gitpod.io" + }, + { + "name": "GITPOD_WORKSPACE_URL", + "value": "https://rose-donkey-wfapr095.ws-eu14.gitpod.io" + }, + { + "name": "GITPOD_WORKSPACE_CLUSTER_HOST", + "value": "ws-eu14.gitpod.io" + }, + { + "name": "THEIA_SUPERVISOR_ENDPOINT", + "value": ":22999" + }, + { + "name": "THEIA_WEBVIEW_EXTERNAL_ENDPOINT", + "value": "webview-{{hostname}}" + }, + { + "value": "browser-{{hostname}}", + "name": "THEIA_MINI_BROWSER_HOST_PATTERN" + }, + { + "name": "GITPOD_GIT_USER_NAME", + "value": "Tautvydas Musteikis" + }, + { + "name": "GITPOD_GIT_USER_EMAIL", + "value": "tautvydas@cornercasetech.com" + }, + { + "value": "https://gitlab.com/corner-case-technologies/property-match/property-match-api/-/tree/ft/gitpod-integration/", + "name": "GITPOD_WORKSPACE_CONTEXT_URL" + }, + { + "value": "{\"isFile\":false,\"path\":\"\",\"title\":\"corner-case-technologies/property-match/property-match-api - ft/gitpod-integration\",\"ref\":\"ft/gitpod-integration\",\"revision\":\"0eb0f04491c75742ef2eddcd2102f65d2bb9bb33\",\"refType\":\"branch\",\"repository\":{\"host\":\"gitlab.com\",\"name\":\"property-match-api\",\"owner\":\"corner-case-technologies/property-match\",\"cloneUrl\":\"https://gitlab.com/corner-case-technologies/property-match/property-match-api.git\",\"defaultBranch\":\"master\",\"private\":true}}", + "name": "GITPOD_WORKSPACE_CONTEXT" + }, + { + "value": "{\"vscode.bat@1.44.2\":{\"fullPluginName\":\"vscode.bat@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.clojure@1.44.2\":{\"fullPluginName\":\"vscode.clojure@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.coffeescript@1.44.2\":{\"fullPluginName\":\"vscode.coffeescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.cpp@1.44.2\":{\"fullPluginName\":\"vscode.cpp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.csharp@1.44.2\":{\"fullPluginName\":\"vscode.csharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"llvm-vs-code-extensions.vscode-clangd@0.1.5\":{\"fullPluginName\":\"llvm-vs-code-extensions.vscode-clangd@0.1.5\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css@1.51.1\":{\"fullPluginName\":\"vscode.css@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css-language-features@1.51.1\":{\"fullPluginName\":\"vscode.css-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.debug-auto-launch@1.44.2\":{\"fullPluginName\":\"vscode.debug-auto-launch@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.emmet@1.44.2\":{\"fullPluginName\":\"vscode.emmet@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.fsharp@1.44.2\":{\"fullPluginName\":\"vscode.fsharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.go@1.44.2\":{\"fullPluginName\":\"vscode.go@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.groovy@1.44.2\":{\"fullPluginName\":\"vscode.groovy@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.handlebars@1.44.2\":{\"fullPluginName\":\"vscode.handlebars@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.hlsl@1.44.2\":{\"fullPluginName\":\"vscode.hlsl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html@1.51.1\":{\"fullPluginName\":\"vscode.html@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html-language-features@1.51.1\":{\"fullPluginName\":\"vscode.html-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ini@1.44.2\":{\"fullPluginName\":\"vscode.ini@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.java@1.53.2\":{\"fullPluginName\":\"vscode.java@1.53.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.javascript@1.44.2\":{\"fullPluginName\":\"vscode.javascript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json@1.44.2\":{\"fullPluginName\":\"vscode.json@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json-language-features@1.46.1\":{\"fullPluginName\":\"vscode.json-language-features@1.46.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.less@1.44.2\":{\"fullPluginName\":\"vscode.less@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.log@1.44.2\":{\"fullPluginName\":\"vscode.log@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.lua@1.44.2\":{\"fullPluginName\":\"vscode.lua@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.make@1.44.2\":{\"fullPluginName\":\"vscode.make@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.markdown@1.44.2\":{\"fullPluginName\":\"vscode.markdown@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.npm@1.39.1\":{\"fullPluginName\":\"vscode.npm@1.39.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.objective-c@1.44.2\":{\"fullPluginName\":\"vscode.objective-c@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.perl@1.44.2\":{\"fullPluginName\":\"vscode.perl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.php@1.44.2\":{\"fullPluginName\":\"vscode.php@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.powershell@1.44.2\":{\"fullPluginName\":\"vscode.powershell@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.pug@1.44.2\":{\"fullPluginName\":\"vscode.pug@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.python@1.47.3\":{\"fullPluginName\":\"vscode.python@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.r@1.44.2\":{\"fullPluginName\":\"vscode.r@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.razor@1.44.2\":{\"fullPluginName\":\"vscode.razor@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ruby@1.44.2\":{\"fullPluginName\":\"vscode.ruby@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.rust@1.44.2\":{\"fullPluginName\":\"vscode.rust@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.scss@1.44.2\":{\"fullPluginName\":\"vscode.scss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shaderlab@1.44.2\":{\"fullPluginName\":\"vscode.shaderlab@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shellscript@1.44.2\":{\"fullPluginName\":\"vscode.shellscript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.sql@1.44.2\":{\"fullPluginName\":\"vscode.sql@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.swift@1.44.2\":{\"fullPluginName\":\"vscode.swift@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript@1.44.2\":{\"fullPluginName\":\"vscode.typescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript-language-features@1.44.2\":{\"fullPluginName\":\"vscode.typescript-language-features@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vb@1.44.2\":{\"fullPluginName\":\"vscode.vb@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.xml@1.44.2\":{\"fullPluginName\":\"vscode.xml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.yaml@1.44.2\":{\"fullPluginName\":\"vscode.yaml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.java@0.75.0\":{\"fullPluginName\":\"redhat.java@0.75.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-debug@0.27.1\":{\"fullPluginName\":\"vscjava.vscode-java-debug@0.27.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-dependency@0.18.0\":{\"fullPluginName\":\"vscjava.vscode-java-dependency@0.18.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug@1.38.4\":{\"fullPluginName\":\"ms-vscode.node-debug@1.38.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug2@1.33.0\":{\"fullPluginName\":\"ms-vscode.node-debug2@1.33.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-python.python@2020.7.96456\":{\"fullPluginName\":\"ms-python.python@2020.7.96456\",\"url\":\"local\",\"kind\":\"builtin\"},\"golang.Go@0.14.4\":{\"fullPluginName\":\"golang.go@0.14.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-xml@0.11.0\":{\"fullPluginName\":\"redhat.vscode-xml@0.11.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-yaml@0.8.0\":{\"fullPluginName\":\"redhat.vscode-yaml@0.8.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"bmewburn.vscode-intelephense-client@1.4.0\":{\"fullPluginName\":\"bmewburn.vscode-intelephense-client@1.4.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"felixfbecker.php-debug@1.13.0\":{\"fullPluginName\":\"felixfbecker.php-debug@1.13.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"rust-lang.rust@0.7.8\":{\"fullPluginName\":\"rust-lang.rust@0.7.8\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-abyss@1.44.2\":{\"fullPluginName\":\"vscode.theme-abyss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-kimbie-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-kimbie-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai-dimmed@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai-dimmed@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-quietlight@1.44.2\":{\"fullPluginName\":\"vscode.theme-quietlight@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-red@1.44.2\":{\"fullPluginName\":\"vscode.theme-red@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-light@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-light@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-tomorrow-night-blue@1.44.2\":{\"fullPluginName\":\"vscode.theme-tomorrow-night-blue@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vscode-theme-seti@1.44.2\":{\"fullPluginName\":\"vscode.vscode-theme-seti@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.merge-conflict@1.44.2\":{\"fullPluginName\":\"vscode.merge-conflict@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.references-view@0.0.47\":{\"fullPluginName\":\"ms-vscode.references-view@0.0.47\",\"url\":\"local\",\"kind\":\"builtin\"},\"EditorConfig.EditorConfig@0.15.1\":{\"fullPluginName\":\"editorconfig.editorconfig@0.15.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.docker@1.47.3\":{\"fullPluginName\":\"vscode.docker@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"}}", + "name": "GITPOD_RESOLVED_EXTENSIONS" + }, + { + "name": "GITPOD_EXTERNAL_EXTENSIONS", + "value": "[]" + }, + { + "name": "THEIA_SUPERVISOR_TOKENS", + "value": "[{\"tokenOTS\":\"https://gitpod.io/api/ots/get/9b717d67-d03d-454b-aa5a-cd9c4bade6f0\",\"token\":\"ots\",\"kind\":\"gitpod\",\"host\":\"gitpod.io\",\"scope\":[\"function:getWorkspace\",\"function:getLoggedInUser\",\"function:getPortAuthenticationToken\",\"function:getWorkspaceOwner\",\"function:getWorkspaceUsers\",\"function:isWorkspaceOwner\",\"function:controlAdmission\",\"function:setWorkspaceTimeout\",\"function:getWorkspaceTimeout\",\"function:sendHeartBeat\",\"function:getOpenPorts\",\"function:openPort\",\"function:closePort\",\"function:getLayout\",\"function:generateNewGitpodToken\",\"function:takeSnapshot\",\"function:storeLayout\",\"function:stopWorkspace\",\"function:getToken\",\"function:getContentBlobUploadUrl\",\"function:getContentBlobDownloadUrl\",\"function:accessCodeSyncStorage\",\"function:guessGitTokenScopes\",\"function:getEnvVars\",\"function:setEnvVar\",\"function:deleteEnvVar\",\"function:trackEvent\",\"resource:workspace::rose-donkey-wfapr095::get/update\",\"resource:workspaceInstance::9ff933b3-d487-4b45-a966-e715767f91df::get/update/delete\",\"resource:snapshot::ws-rose-donkey-wfapr095::create\",\"resource:gitpodToken::*::create\",\"resource:userStorage::*::create/get/update\",\"resource:token::*::get\",\"resource:contentBlob::*::create/get\",\"resource:envVar::corner-case-technologies/property-match/property-match-api::create/get/update/delete\"],\"expiryDate\":\"2021-08-19T17:42:08.755Z\",\"reuse\":2}]" + }, + { + "name": "GITPOD_INTERVAL", + "value": "30000" + }, + { + "value": "1879", + "name": "GITPOD_MEMORY" + }, + { + "value": "50", + "name": "THEIA_RATELIMIT_LOG" + }, + { + "value": "segment", + "name": "GITPOD_ANALYTICS_WRITER" + }, + { + "name": "GITPOD_ANALYTICS_SEGMENT_KEY", + "value": "bUY8IRdJ42KjLOBS9LoIHMYFBD8rSzjU" + } + ], + "terminationMessagePath": "/dev/termination-log", + "volumeMounts": [ + { + "mountPropagation": "HostToContainer", + "name": "vol-this-workspace", + "mountPath": "/workspace" + }, + { + "mountPropagation": "HostToContainer", + "mountPath": "/.workspace", + "name": "daemon-mount" + } + ], + "resources": { + "requests": { + "memory": "1792Mi", + "cpu": "1m" + }, + "limits": { + "cpu": "6", + "memory": "12Gi" + } + }, + "name": "workspace", + "imagePullPolicy": "IfNotPresent", + "ports": [ + { + "protocol": "TCP", + "containerPort": 23000 + } + ], + "command": [ + "/.supervisor/workspacekit", + "ring0" + ], + "securityContext": { + "readOnlyRootFilesystem": false, + "runAsNonRoot": true, + "privileged": false, + "runAsUser": 33333, + "allowPrivilegeEscalation": true, + "capabilities": { + "drop": [ + "SETPCAP", + "CHOWN", + "NET_RAW", + "DAC_OVERRIDE", + "FOWNER", + "SYS_CHROOT", + "SETFCAP", + "SETUID", + "SETGID" + ], + "add": [ + "AUDIT_WRITE", + "FSETID", + "KILL", + "NET_BIND_SERVICE", + "SYS_PTRACE" + ] + }, + "runAsGroup": 33333 + }, + "terminationMessagePolicy": "File" + } + ], + "serviceAccountName": "workspace", + "enableServiceLinks": false, + "serviceAccount": "workspace", + "volumes": [ + { + "hostPath": { + "path": "/mnt/disks/raid0/workspaces/9ff933b3-d487-4b45-a966-e715767f91df", + "type": "DirectoryOrCreate" + }, + "name": "vol-this-workspace" + }, + { + "name": "daemon-mount", + "hostPath": { + "type": "DirectoryOrCreate", + "path": "/mnt/disks/raid0/workspaces/9ff933b3-d487-4b45-a966-e715767f91df-daemon" + } + } + ], + "restartPolicy": "Never" + }, + "status": { + "startTime": "2021-08-18T17:42:08Z", + "podIP": "10.104.19.47", + "podIPs": [ + { + "ip": "10.104.19.47" + } + ], + "phase": "Failed", + "conditions": [ + { + "status": "True", + "lastProbeTime": null, + "lastTransitionTime": "2021-08-18T17:42:08Z", + "type": "Initialized" + }, + { + "lastProbeTime": null, + "lastTransitionTime": "2021-08-18T17:42:08Z", + "status": "False", + "message": "containers with unready status: [workspace]", + "type": "Ready", + "reason": "ContainersNotReady" + }, + { + "message": "containers with unready status: [workspace]", + "lastTransitionTime": "2021-08-18T17:42:08Z", + "reason": "ContainersNotReady", + "type": "ContainersReady", + "lastProbeTime": null, + "status": "False" + }, + { + "lastTransitionTime": "2021-08-18T17:42:08Z", + "status": "True", + "type": "PodScheduled", + "lastProbeTime": null + } + ], + "containerStatuses": [ + { + "imageID": "reg.gitpod.io:31001/remote/9ff933b3-d487-4b45-a966-e715767f91df@sha256:9bcabd042b0562853642869fdc8a9b42e58cbfc764cd20debf50a341e01291c9", + "restartCount": 0, + "state": { + "terminated": { + "message": "IDE failed to start: exit status 127", + "reason": "Error", + "containerID": "containerd://0fea19e0ab07d7587295e2de3ac44a33d93826188cf5794582b51005d2577ea5", + "startedAt": "2021-08-18T17:42:38Z", + "exitCode": 1, + "finishedAt": "2021-08-18T17:42:38Z" + } + }, + "lastState": {}, + "name": "workspace", + "ready": false, + "image": "reg.gitpod.io:31001/remote/9ff933b3-d487-4b45-a966-e715767f91df:latest", + "started": false, + "containerID": "containerd://0fea19e0ab07d7587295e2de3ac44a33d93826188cf5794582b51005d2577ea5" + } + ], + "hostIP": "10.132.0.110", + "qosClass": "Burstable" + }, + "metadata": { + "managedFields": [ + { + "fieldsV1": { + "f:spec": { + "f:automountServiceAccountToken": {}, + "f:schedulerName": {}, + "f:terminationGracePeriodSeconds": {}, + "f:restartPolicy": {}, + "f:enableServiceLinks": {}, + "f:imagePullSecrets": { + ".": {}, + "k:{\"name\":\"workspace-registry-pull-secret\"}": { + "f:name": {}, + ".": {} + } + }, + "f:affinity": { + ".": {}, + "f:nodeAffinity": { + ".": {}, + "f:requiredDuringSchedulingIgnoredDuringExecution": { + ".": {}, + "f:nodeSelectorTerms": {} + } + } + }, + "f:tolerations": {}, + "f:containers": { + "k:{\"name\":\"workspace\"}": { + "f:terminationMessagePolicy": {}, + "f:imagePullPolicy": {}, + ".": {}, + "f:ports": { + ".": {}, + "k:{\"containerPort\":23000,\"protocol\":\"TCP\"}": { + "f:containerPort": {}, + ".": {}, + "f:protocol": {} + } + }, + "f:resources": { + ".": {}, + "f:requests": { + ".": {}, + "f:memory": {}, + "f:cpu": {} + }, + "f:limits": { + "f:memory": {}, + "f:cpu": {}, + ".": {} + } + }, + "f:readinessProbe": { + ".": {}, + "f:timeoutSeconds": {}, + "f:failureThreshold": {}, + "f:periodSeconds": {}, + "f:successThreshold": {}, + "f:httpGet": { + "f:port": {}, + "f:scheme": {}, + "f:path": {}, + ".": {} + }, + "f:initialDelaySeconds": {} + }, + "f:image": {}, + "f:name": {}, + "f:command": {}, + "f:env": { + "k:{\"name\":\"GITPOD_INTERVAL\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_NAME\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + ".": {}, + "k:{\"name\":\"GITPOD_REPO_ROOT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_SEGMENT_KEY\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CLUSTER_HOST\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"THEIA_MINI_BROWSER_HOST_PATTERN\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_HOST\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_MEMORY\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_INSTANCE_ID\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_TOKENS\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT_URL\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_URL\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_THEIA_PORT\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_EXTERNAL_EXTENSIONS\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_CLI_APITOKEN\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_RESOLVED_EXTENSIONS\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_RATELIMIT_LOG\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_ID\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_ENDPOINT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_WORKSPACE_ROOT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_WEBVIEW_EXTERNAL_ENDPOINT\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_WRITER\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_EMAIL\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + } + }, + "f:volumeMounts": { + "k:{\"mountPath\":\"/.workspace\"}": { + "f:mountPath": {}, + ".": {}, + "f:name": {}, + "f:mountPropagation": {} + }, + ".": {}, + "k:{\"mountPath\":\"/workspace\"}": { + ".": {}, + "f:mountPath": {}, + "f:name": {}, + "f:mountPropagation": {} + } + }, + "f:securityContext": { + "f:privileged": {}, + "f:capabilities": { + "f:drop": {}, + ".": {}, + "f:add": {} + }, + "f:readOnlyRootFilesystem": {}, + "f:runAsNonRoot": {}, + "f:runAsGroup": {}, + "f:runAsUser": {}, + "f:allowPrivilegeEscalation": {}, + ".": {} + }, + "f:terminationMessagePath": {} + } + }, + "f:serviceAccountName": {}, + "f:serviceAccount": {}, + "f:securityContext": {}, + "f:dnsPolicy": {}, + "f:volumes": { + ".": {}, + "k:{\"name\":\"vol-this-workspace\"}": { + "f:name": {}, + ".": {}, + "f:hostPath": { + "f:type": {}, + "f:path": {}, + ".": {} + } + }, + "k:{\"name\":\"daemon-mount\"}": { + "f:hostPath": { + ".": {}, + "f:path": {}, + "f:type": {} + }, + ".": {}, + "f:name": {} + } + }, + "f:dnsConfig": { + "f:nameservers": {}, + ".": {} + } + }, + "f:metadata": { + "f:labels": { + "f:workspaceType": {}, + "f:gpwsman": {}, + "f:headless": {}, + ".": {}, + "f:gitpod.io/networkpolicy": {}, + "f:metaID": {}, + "f:component": {}, + "f:workspaceID": {}, + "f:owner": {}, + "f:app": {} + }, + "f:annotations": { + ".": {}, + "f:gitpod/traceid": {}, + "f:seccomp.security.alpha.kubernetes.io/pod": {}, + "f:gitpod/imageSpec": {}, + "f:prometheus.io/scrape": {}, + "f:container.apparmor.security.beta.kubernetes.io/workspace": {}, + "f:gitpod/never-ready": {}, + "f:prometheus.io/port": {}, + "f:cluster-autoscaler.kubernetes.io/safe-to-evict": {}, + "f:gitpod.io/requiredNodeServices": {}, + "f:prometheus.io/path": {}, + "f:gitpod/ownerToken": {}, + "f:gitpod/contentInitializer": {}, + "f:gitpod/servicePrefix": {}, + "f:gitpod/customTimeout": {}, + "f:gitpod/url": {}, + "f:gitpod/id": {}, + "f:gitpod/admission": {} + } + } + }, + "fieldsType": "FieldsV1", + "time": "2021-08-18T17:42:08Z", + "operation": "Update", + "apiVersion": "v1", + "manager": "ws-manager" + }, + { + "operation": "Update", + "fieldsType": "FieldsV1", + "manager": "calico", + "apiVersion": "v1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + "f:cni.projectcalico.org/podIPs": {}, + "f:cni.projectcalico.org/podIP": {} + } + } + }, + "time": "2021-08-18T17:42:09Z" + }, + { + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "fieldsV1": { + "f:status": { + "f:podIP": {}, + "f:startTime": {}, + "f:phase": {}, + "f:podIPs": { + "k:{\"ip\":\"10.104.19.47\"}": { + ".": {}, + "f:ip": {} + }, + ".": {} + }, + "f:hostIP": {}, + "f:conditions": { + "k:{\"type\":\"ContainersReady\"}": { + "f:message": {}, + "f:reason": {}, + "f:lastTransitionTime": {}, + "f:type": {}, + "f:lastProbeTime": {}, + "f:status": {}, + ".": {} + }, + "k:{\"type\":\"Initialized\"}": { + "f:status": {}, + "f:lastTransitionTime": {}, + "f:type": {}, + ".": {}, + "f:lastProbeTime": {} + }, + "k:{\"type\":\"Ready\"}": { + "f:message": {}, + "f:type": {}, + ".": {}, + "f:lastProbeTime": {}, + "f:lastTransitionTime": {}, + "f:reason": {}, + "f:status": {} + } + }, + "f:containerStatuses": {} + } + }, + "manager": "kubelet", + "time": "2021-08-18T17:42:38Z", + "operation": "Update" + } + ], + "annotations": { + "gitpod/customTimeout": "30m", + "gitpod/admission": "admit_owner_only", + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false", + "gitpod/traceid": "AAAAAAAAAAD3gf+o6O8nGkgUot0tZUuET8Onc3VIpXABAAAAAA==", + "cni.projectcalico.org/podIPs": "10.104.19.47/32", + "gitpod.io/requiredNodeServices": "ws-daemon,registry-facade", + "gitpod/url": "https://rose-donkey-wfapr095.ws-eu14.gitpod.io", + "prometheus.io/path": "/metrics", + "seccomp.security.alpha.kubernetes.io/pod": "localhost/workspace_default_main.1254.json", + "cni.projectcalico.org/podIP": "10.104.19.47/32", + "gitpod/ownerToken": "-Jlxl8PUpKylHGFNjZaYXSmhg8qlFbck", + "gitpod/id": "9ff933b3-d487-4b45-a966-e715767f91df", + "gitpod/imageSpec": "CmZldS5nY3IuaW8vZ2l0cG9kLWRldi93b3Jrc3BhY2UtaW1hZ2VzOmFlZWQ1NzdkOGI0Nzg1MDg4MTIwYTdkMjRkMDU2ZWUyZDU1M2E2OWQyYmNjNDEzYTU3MmU4MmEzMDM5Y2Q2Y2QSWGV1Lmdjci5pby9naXRwb2QtY29yZS1kZXYvYnVpbGQvaWRlL2NvZGU6Y29tbWl0LTA5NDFhMDgwNWRjM2M3MzQ1YzQ1YmQ5MjYzMTdlYWYwNDVkNGI3ZmI=", + "prometheus.io/port": "23000", + "prometheus.io/scrape": "true", + "container.apparmor.security.beta.kubernetes.io/workspace": "unconfined", + "gitpod/contentInitializer": "[redacted]", + "gitpod/never-ready": "true", + "gitpod/servicePrefix": "rose-donkey-wfapr095", + "kubernetes.io/psp": "default-ns-workspace" + }, + "namespace": "default", + "creationTimestamp": "2021-08-18T17:42:08Z", + "resourceVersion": "17005389", + "name": "ws-9ff933b3-d487-4b45-a966-e715767f91df", + "labels": { + "headless": "false", + "component": "workspace", + "workspaceType": "regular", + "owner": "d20bf9c2-e802-43ba-b647-ffa89f8ff17e", + "workspaceID": "9ff933b3-d487-4b45-a966-e715767f91df", + "app": "gitpod", + "gpwsman": "true", + "metaID": "rose-donkey-wfapr095", + "gitpod.io/networkpolicy": "default" + }, + "uid": "e74b492c-cad8-4e18-bbfc-971eba8803fd" + }, + "apiVersion": "v1", + "kind": "Pod" + }, + "theiaService": { + "spec": { + "clusterIPs": [ + "10.108.5.7" + ], + "type": "ClusterIP", + "ports": [ + { + "protocol": "TCP", + "targetPort": 23000, + "port": 23000, + "name": "ide" + }, + { + "targetPort": 22999, + "port": 22999, + "name": "supervisor", + "protocol": "TCP" + } + ], + "clusterIP": "10.108.5.7", + "selector": { + "app": "gitpod", + "workspaceType": "regular", + "headless": "false", + "workspaceID": "9ff933b3-d487-4b45-a966-e715767f91df", + "metaID": "rose-donkey-wfapr095", + "gpwsman": "true", + "component": "workspace", + "owner": "d20bf9c2-e802-43ba-b647-ffa89f8ff17e" + }, + "sessionAffinity": "None" + }, + "status": { + "loadBalancer": {} + }, + "metadata": { + "name": "ws-rose-donkey-wfapr095-theia", + "namespace": "default", + "managedFields": [ + { + "operation": "Update", + "manager": "ws-manager", + "time": "2021-08-18T17:42:08Z", + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "fieldsV1": { + "f:spec": { + "f:type": {}, + "f:ports": { + "k:{\"port\":22999,\"protocol\":\"TCP\"}": { + "f:targetPort": {}, + "f:name": {}, + "f:protocol": {}, + "f:port": {}, + ".": {} + }, + "k:{\"port\":23000,\"protocol\":\"TCP\"}": { + "f:protocol": {}, + ".": {}, + "f:port": {}, + "f:name": {}, + "f:targetPort": {} + }, + ".": {} + }, + "f:sessionAffinity": {}, + "f:selector": { + "f:gpwsman": {}, + "f:workspaceType": {}, + ".": {}, + "f:owner": {}, + "f:metaID": {}, + "f:headless": {}, + "f:app": {}, + "f:workspaceID": {}, + "f:component": {} + } + }, + "f:metadata": { + "f:labels": { + "f:workspaceType": {}, + ".": {}, + "f:gpwsman": {}, + "f:workspaceID": {}, + "f:metaID": {}, + "f:headless": {}, + "f:component": {}, + "f:app": {}, + "f:owner": {} + } + } + } + } + ], + "resourceVersion": "17004933", + "creationTimestamp": "2021-08-18T17:42:08Z", + "labels": { + "metaID": "rose-donkey-wfapr095", + "owner": "d20bf9c2-e802-43ba-b647-ffa89f8ff17e", + "component": "workspace", + "headless": "false", + "gpwsman": "true", + "workspaceID": "9ff933b3-d487-4b45-a966-e715767f91df", + "workspaceType": "regular", + "app": "gitpod" + }, + "uid": "3545c953-f083-48b2-bfa2-8e65a49a4fb5" + }, + "kind": "Service", + "apiVersion": "v1" + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_RUNNING00.golden b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_RUNNING00.golden new file mode 100644 index 00000000000000..8346913f0963e1 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_RUNNING00.golden @@ -0,0 +1,42 @@ +{ + "status": { + "id": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "metadata": { + "owner": "00000000-0000-0000-0000-000000000000", + "meta_id": "purple-raven-cu9cj532", + "started_at": { + "seconds": 1629350059 + } + }, + "spec": { + "workspace_image": "eu.gcr.io/gitpod-dev/workspace-images:68c61eb0bb4e8fbafd16b876390fc2c78a7887866ef0bd53534bb8ffc2682bdc", + "ide_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-0941a0805dc3c7345c45bd926317eaf045d4b7fb", + "url": "https://purple-raven-cu9cj532.ws-us14.gitpod.io", + "exposed_ports": [ + { + "port": 8000, + "url": "https://8000-purple-raven-cu9cj532.ws-us14.gitpod.io" + }, + { + "port": 31997, + "url": "https://31997-purple-raven-cu9cj532.ws-us14.gitpod.io" + } + ], + "timeout": "30m" + }, + "phase": 4, + "conditions": { + "failed": "container workspace ran with an error: exit code 1", + "service_exists": 1, + "deployed": 1 + }, + "runtime": { + "node_name": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s", + "pod_name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "node_ip": "10.138.0.13" + }, + "auth": { + "owner_token": "T.DhLiYyx1ZfeOgyf5zYE4MYLnCMBJ8p" + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_RUNNING00.json b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_RUNNING00.json new file mode 100644 index 00000000000000..311a2b2d74e7ba --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_RUNNING00.json @@ -0,0 +1,1340 @@ +{ + "portsService": { + "metadata": { + "deletionTimestamp": "2021-08-19T05:14:53Z", + "deletionGracePeriodSeconds": 0, + "managedFields": [ + { + "time": "2021-08-19T05:14:19Z", + "operation": "Update", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:gitpod/port-url-31997": {}, + "f:gitpod/port-url-8000": {} + }, + "f:labels": { + "f:serviceType": {}, + ".": {}, + "f:workspaceID": {}, + "f:metaID": {}, + "f:gpwsman": {} + } + }, + "f:spec": { + "f:sessionAffinity": {}, + "f:selector": { + "f:workspaceID": {}, + ".": {}, + "f:gpwsman": {} + }, + "f:ports": { + ".": {}, + "k:{\"port\":8000,\"protocol\":\"TCP\"}": { + "f:port": {}, + "f:protocol": {}, + ".": {}, + "f:targetPort": {}, + "f:name": {} + }, + "k:{\"port\":31997,\"protocol\":\"TCP\"}": { + "f:name": {}, + "f:port": {}, + "f:protocol": {}, + ".": {}, + "f:targetPort": {} + } + }, + "f:type": {} + } + }, + "apiVersion": "v1", + "manager": "ws-manager" + } + ], + "annotations": { + "gitpod/port-url-8000": "https://8000-purple-raven-cu9cj532.ws-us14.gitpod.io", + "gitpod/port-url-31997": "https://31997-purple-raven-cu9cj532.ws-us14.gitpod.io" + }, + "labels": { + "metaID": "purple-raven-cu9cj532", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "gpwsman": "true", + "serviceType": "ports" + }, + "resourceVersion": "18667294", + "name": "ws-purple-raven-cu9cj532-ports", + "creationTimestamp": "2021-08-19T05:14:19Z", + "namespace": "default", + "finalizers": [ + "foregroundDeletion" + ], + "uid": "bf728250-00fb-4e51-aa83-bb9c9054768e" + }, + "apiVersion": "v1", + "status": { + "loadBalancer": {} + }, + "spec": { + "clusterIPs": [ + "10.112.148.72" + ], + "sessionAffinity": "None", + "ports": [ + { + "name": "p8000-private", + "protocol": "TCP", + "targetPort": 8000, + "port": 8000 + }, + { + "targetPort": 31997, + "port": 31997, + "protocol": "TCP", + "name": "p31997-private" + } + ], + "type": "ClusterIP", + "selector": { + "gpwsman": "true", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + "clusterIP": "10.112.148.72" + }, + "kind": "Service" + }, + "theiaService": { + "status": { + "loadBalancer": {} + }, + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "uid": "cb3f0763-4a16-4d2c-a06d-8d6bf83aeb0e", + "labels": { + "app": "gitpod", + "metaID": "purple-raven-cu9cj532", + "owner": "00000000-0000-0000-0000-000000000000", + "gpwsman": "true", + "workspaceType": "regular", + "headless": "false", + "component": "workspace", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + "deletionTimestamp": "2021-08-19T05:14:53Z", + "finalizers": [ + "foregroundDeletion" + ], + "name": "ws-purple-raven-cu9cj532-theia", + "managedFields": [ + { + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "time": "2021-08-19T05:14:19Z", + "operation": "Update", + "fieldsV1": { + "f:metadata": { + "f:labels": { + "f:headless": {}, + "f:component": {}, + "f:app": {}, + "f:workspaceType": {}, + "f:workspaceID": {}, + "f:metaID": {}, + "f:owner": {}, + ".": {}, + "f:gpwsman": {} + } + }, + "f:spec": { + "f:selector": { + "f:workspaceType": {}, + "f:app": {}, + "f:headless": {}, + "f:gpwsman": {}, + ".": {}, + "f:component": {}, + "f:metaID": {}, + "f:workspaceID": {}, + "f:owner": {} + }, + "f:type": {}, + "f:ports": { + "k:{\"port\":22999,\"protocol\":\"TCP\"}": { + "f:targetPort": {}, + ".": {}, + "f:protocol": {}, + "f:port": {}, + "f:name": {} + }, + "k:{\"port\":23000,\"protocol\":\"TCP\"}": { + ".": {}, + "f:name": {}, + "f:port": {}, + "f:protocol": {}, + "f:targetPort": {} + }, + ".": {} + }, + "f:sessionAffinity": {} + } + }, + "manager": "ws-manager" + } + ], + "deletionGracePeriodSeconds": 0, + "resourceVersion": "18667290", + "creationTimestamp": "2021-08-19T05:14:19Z", + "namespace": "default" + }, + "spec": { + "clusterIPs": [ + "10.112.150.21" + ], + "selector": { + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "headless": "false", + "metaID": "purple-raven-cu9cj532", + "workspaceType": "regular", + "gpwsman": "true", + "app": "gitpod", + "owner": "00000000-0000-0000-0000-000000000000", + "component": "workspace" + }, + "clusterIP": "10.112.150.21", + "type": "ClusterIP", + "ports": [ + { + "port": 23000, + "targetPort": 23000, + "name": "ide", + "protocol": "TCP" + }, + { + "port": 22999, + "targetPort": 22999, + "name": "supervisor", + "protocol": "TCP" + } + ], + "sessionAffinity": "None" + } + }, + "events": [ + { + "involvedObject": { + "kind": "Pod", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "namespace": "default" + }, + "message": "Placed pod [default/ws-48f13cc4-6311-48c2-950a-4b7ddedc3037] on gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s\n", + "reportingInstance": "", + "firstTimestamp": "2021-08-19T05:14:19Z", + "type": "Normal", + "eventTime": null, + "lastTimestamp": "2021-08-19T05:14:19Z", + "metadata": { + "managedFields": [ + { + "apiVersion": "v1", + "manager": "ws-scheduler", + "operation": "Update", + "fieldsType": "FieldsV1", + "time": "2021-08-19T05:14:19Z", + "fieldsV1": { + "f:message": {}, + "f:firstTimestamp": {}, + "f:involvedObject": { + "f:name": {}, + "f:uid": {}, + "f:namespace": {}, + "f:kind": {} + }, + "f:count": {}, + "f:metadata": { + "f:generateName": {} + }, + "f:reason": {}, + "f:lastTimestamp": {}, + "f:type": {}, + "f:source": { + "f:component": {} + } + } + } + ], + "generateName": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037 - scheduled", + "resourceVersion": "1030986", + "creationTimestamp": "2021-08-19T05:14:19Z", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037 - scheduledvd7jh", + "namespace": "default", + "uid": "f24bc657-b104-43a8-b820-bc37a10bbf70" + }, + "reason": "Scheduled", + "count": 1, + "source": { + "component": "workspace-scheduler" + }, + "reportingComponent": "" + }, + { + "message": "Pulling image \"reg.gitpod.io:31001/remote/48f13cc4-6311-48c2-950a-4b7ddedc3037\"", + "firstTimestamp": "2021-08-19T05:14:20Z", + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s", + "component": "kubelet" + }, + "type": "Normal", + "lastTimestamp": "2021-08-19T05:14:20Z", + "count": 1, + "reportingComponent": "", + "reason": "Pulling", + "eventTime": null, + "involvedObject": { + "apiVersion": "v1", + "resourceVersion": "18666899", + "kind": "Pod", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + "metadata": { + "resourceVersion": "1030987", + "creationTimestamp": "2021-08-19T05:14:20Z", + "managedFields": [ + { + "fieldsV1": { + "f:type": {}, + "f:firstTimestamp": {}, + "f:lastTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:message": {}, + "f:reason": {}, + "f:involvedObject": { + "f:resourceVersion": {}, + "f:kind": {}, + "f:name": {}, + "f:apiVersion": {}, + "f:namespace": {}, + "f:fieldPath": {}, + "f:uid": {} + }, + "f:count": {} + }, + "time": "2021-08-19T05:14:20Z", + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "manager": "kubelet", + "operation": "Update" + } + ], + "uid": "c6a43840-2aae-4c68-9fb3-581194ed1a02", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3f46a41eb0", + "namespace": "default" + }, + "reportingInstance": "" + }, + { + "message": "Successfully pulled image \"reg.gitpod.io:31001/remote/48f13cc4-6311-48c2-950a-4b7ddedc3037\" in 2.352836471s", + "lastTimestamp": "2021-08-19T05:14:22Z", + "reportingInstance": "", + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s", + "component": "kubelet" + }, + "firstTimestamp": "2021-08-19T05:14:22Z", + "count": 1, + "reportingComponent": "", + "type": "Normal", + "eventTime": null, + "metadata": { + "namespace": "default", + "resourceVersion": "1030990", + "managedFields": [ + { + "operation": "Update", + "fieldsV1": { + "f:count": {}, + "f:type": {}, + "f:involvedObject": { + "f:namespace": {}, + "f:apiVersion": {}, + "f:resourceVersion": {}, + "f:kind": {}, + "f:uid": {}, + "f:name": {}, + "f:fieldPath": {} + }, + "f:reason": {}, + "f:message": {}, + "f:firstTimestamp": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:lastTimestamp": {} + }, + "manager": "kubelet", + "apiVersion": "v1", + "time": "2021-08-19T05:14:22Z", + "fieldsType": "FieldsV1" + } + ], + "creationTimestamp": "2021-08-19T05:14:22Z", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3fd2e1ffd6", + "uid": "10e83dc8-795e-4e4d-89ef-acc2577911db" + }, + "reason": "Pulled", + "involvedObject": { + "apiVersion": "v1", + "resourceVersion": "18666899", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "kind": "Pod", + "fieldPath": "spec.containers{workspace}", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "namespace": "default" + } + }, + { + "reportingInstance": "", + "metadata": { + "managedFields": [ + { + "time": "2021-08-19T05:14:22Z", + "fieldsV1": { + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:firstTimestamp": {}, + "f:reason": {}, + "f:message": {}, + "f:lastTimestamp": {}, + "f:count": {}, + "f:type": {}, + "f:involvedObject": { + "f:name": {}, + "f:namespace": {}, + "f:kind": {}, + "f:uid": {}, + "f:resourceVersion": {}, + "f:apiVersion": {}, + "f:fieldPath": {} + } + }, + "apiVersion": "v1", + "operation": "Update", + "manager": "kubelet", + "fieldsType": "FieldsV1" + } + ], + "creationTimestamp": "2021-08-19T05:14:22Z", + "namespace": "default", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3fd6df31e1", + "resourceVersion": "1030991", + "uid": "60a3085b-27a2-4ca7-ab52-848de06b1cba" + }, + "reportingComponent": "", + "count": 1, + "involvedObject": { + "apiVersion": "v1", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "resourceVersion": "18666899", + "namespace": "default", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "kind": "Pod", + "fieldPath": "spec.containers{workspace}" + }, + "eventTime": null, + "firstTimestamp": "2021-08-19T05:14:22Z", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s" + }, + "lastTimestamp": "2021-08-19T05:14:22Z", + "type": "Normal", + "reason": "Created", + "message": "Created container workspace" + }, + { + "metadata": { + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3fdde57fd8", + "creationTimestamp": "2021-08-19T05:14:22Z", + "resourceVersion": "1030992", + "namespace": "default", + "managedFields": [ + { + "manager": "kubelet", + "fieldsV1": { + "f:reason": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:lastTimestamp": {}, + "f:type": {}, + "f:firstTimestamp": {}, + "f:involvedObject": { + "f:resourceVersion": {}, + "f:fieldPath": {}, + "f:namespace": {}, + "f:name": {}, + "f:uid": {}, + "f:kind": {}, + "f:apiVersion": {} + }, + "f:message": {}, + "f:count": {} + }, + "fieldsType": "FieldsV1", + "time": "2021-08-19T05:14:22Z", + "apiVersion": "v1", + "operation": "Update" + } + ], + "uid": "edf8af51-2c6c-4af6-a6e9-bd65183051ae" + }, + "eventTime": null, + "reportingComponent": "", + "type": "Normal", + "firstTimestamp": "2021-08-19T05:14:22Z", + "source": { + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s", + "component": "kubelet" + }, + "reportingInstance": "", + "count": 1, + "lastTimestamp": "2021-08-19T05:14:22Z", + "reason": "Started", + "message": "Started container workspace", + "involvedObject": { + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "namespace": "default", + "fieldPath": "spec.containers{workspace}", + "apiVersion": "v1", + "kind": "Pod", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "resourceVersion": "18666899" + } + }, + { + "firstTimestamp": "2021-08-19T05:14:24Z", + "reportingInstance": "", + "metadata": { + "creationTimestamp": "2021-08-19T05:14:24Z", + "managedFields": [ + { + "fieldsV1": { + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:lastTimestamp": {}, + "f:reason": {}, + "f:count": {}, + "f:type": {}, + "f:involvedObject": { + "f:resourceVersion": {}, + "f:kind": {}, + "f:namespace": {}, + "f:uid": {}, + "f:apiVersion": {}, + "f:name": {}, + "f:fieldPath": {} + }, + "f:firstTimestamp": {}, + "f:message": {} + }, + "operation": "Update", + "fieldsType": "FieldsV1", + "manager": "kubelet", + "apiVersion": "v1", + "time": "2021-08-19T05:14:24Z" + } + ], + "resourceVersion": "1031021", + "uid": "e87b9154-cbcc-429f-8794-e94711ff7719", + "namespace": "default", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d4052984760" + }, + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s" + }, + "eventTime": null, + "message": "Readiness probe failed: Get \"http://10.4.12.227:22999/_supervisor/v1/status/content/wait/true\": dial tcp 10.4.12.227:22999: connect: connection refused", + "count": 21, + "involvedObject": { + "fieldPath": "spec.containers{workspace}", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "kind": "Pod", + "apiVersion": "v1", + "namespace": "default", + "resourceVersion": "18666899", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + "reason": "Unhealthy", + "reportingComponent": "", + "lastTimestamp": "2021-08-19T05:14:44Z", + "type": "Warning" + } + ], + "pod": { + "metadata": { + "creationTimestamp": "2021-08-19T05:14:19Z", + "namespace": "default", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "managedFields": [ + { + "fieldsV1": { + "f:metadata": { + "f:annotations": { + "f:cni.projectcalico.org/podIPs": {}, + "f:cni.projectcalico.org/podIP": {} + } + } + }, + "manager": "calico", + "fieldsType": "FieldsV1", + "operation": "Update", + "time": "2021-08-19T05:14:20Z", + "apiVersion": "v1" + }, + { + "manager": "kubelet", + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "operation": "Update", + "fieldsV1": { + "f:status": { + "f:hostIP": {}, + "f:conditions": { + "k:{\"type\":\"Ready\"}": { + "f:lastTransitionTime": {}, + ".": {}, + "f:message": {}, + "f:reason": {}, + "f:lastProbeTime": {}, + "f:type": {}, + "f:status": {} + }, + "k:{\"type\":\"ContainersReady\"}": { + "f:message": {}, + "f:status": {}, + "f:reason": {}, + "f:lastTransitionTime": {}, + "f:lastProbeTime": {}, + ".": {}, + "f:type": {} + }, + "k:{\"type\":\"Initialized\"}": { + "f:lastProbeTime": {}, + "f:status": {}, + "f:type": {}, + "f:lastTransitionTime": {}, + ".": {} + } + }, + "f:startTime": {}, + "f:phase": {}, + "f:podIP": {}, + "f:containerStatuses": {}, + "f:podIPs": { + "k:{\"ip\":\"10.4.12.227\"}": { + "f:ip": {}, + ".": {} + }, + ".": {} + } + } + }, + "time": "2021-08-19T05:14:23Z" + }, + { + "fieldsType": "FieldsV1", + "apiVersion": "v1", + "operation": "Update", + "fieldsV1": { + "f:spec": { + "f:enableServiceLinks": {}, + "f:volumes": { + ".": {}, + "k:{\"name\":\"daemon-mount\"}": { + ".": {}, + "f:name": {}, + "f:hostPath": { + ".": {}, + "f:path": {}, + "f:type": {} + } + }, + "k:{\"name\":\"vol-this-workspace\"}": { + "f:hostPath": { + ".": {}, + "f:path": {}, + "f:type": {} + }, + "f:name": {}, + ".": {} + } + }, + "f:restartPolicy": {}, + "f:serviceAccountName": {}, + "f:dnsPolicy": {}, + "f:serviceAccount": {}, + "f:containers": { + "k:{\"name\":\"workspace\"}": { + "f:image": {}, + "f:env": { + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT_URL\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_CLI_APITOKEN\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_WEBVIEW_EXTERNAL_ENDPOINT\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_SEGMENT_KEY\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CLUSTER_HOST\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + ".": {}, + "k:{\"name\":\"GITPOD_RESOLVED_EXTENSIONS\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_MEMORY\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"THEIA_RATELIMIT_LOG\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_EMAIL\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_REPO_ROOT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_WRITER\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_TOKENS\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_THEIA_PORT\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_HOST\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_ENDPOINT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_INTERVAL\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_MINI_BROWSER_HOST_PATTERN\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_ID\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_NAME\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_TASKS\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_WORKSPACE_ROOT\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_URL\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_INSTANCE_ID\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_EXTERNAL_EXTENSIONS\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + } + }, + "f:terminationMessagePath": {}, + "f:terminationMessagePolicy": {}, + "f:volumeMounts": { + "k:{\"mountPath\":\"/.workspace\"}": { + "f:mountPropagation": {}, + "f:mountPath": {}, + ".": {}, + "f:name": {} + }, + ".": {}, + "k:{\"mountPath\":\"/workspace\"}": { + ".": {}, + "f:name": {}, + "f:mountPropagation": {}, + "f:mountPath": {} + } + }, + "f:imagePullPolicy": {}, + "f:name": {}, + "f:securityContext": { + "f:privileged": {}, + "f:readOnlyRootFilesystem": {}, + "f:runAsUser": {}, + "f:runAsNonRoot": {}, + "f:runAsGroup": {}, + "f:capabilities": { + ".": {}, + "f:add": {}, + "f:drop": {} + }, + ".": {}, + "f:allowPrivilegeEscalation": {} + }, + "f:command": {}, + "f:resources": { + "f:requests": { + "f:cpu": {}, + ".": {}, + "f:memory": {} + }, + ".": {}, + "f:limits": { + "f:cpu": {}, + ".": {}, + "f:memory": {} + } + }, + ".": {}, + "f:ports": { + "k:{\"containerPort\":23000,\"protocol\":\"TCP\"}": { + "f:protocol": {}, + ".": {}, + "f:containerPort": {} + }, + ".": {} + }, + "f:readinessProbe": { + "f:failureThreshold": {}, + "f:httpGet": { + "f:scheme": {}, + "f:port": {}, + ".": {}, + "f:path": {} + }, + "f:successThreshold": {}, + "f:periodSeconds": {}, + "f:initialDelaySeconds": {}, + ".": {}, + "f:timeoutSeconds": {} + } + } + }, + "f:securityContext": {}, + "f:schedulerName": {}, + "f:affinity": { + ".": {}, + "f:nodeAffinity": { + "f:requiredDuringSchedulingIgnoredDuringExecution": { + ".": {}, + "f:nodeSelectorTerms": {} + }, + ".": {} + } + }, + "f:tolerations": {}, + "f:imagePullSecrets": { + "k:{\"name\":\"workspace-registry-pull-secret\"}": { + "f:name": {}, + ".": {} + }, + ".": {} + }, + "f:terminationGracePeriodSeconds": {}, + "f:automountServiceAccountToken": {}, + "f:dnsConfig": { + "f:nameservers": {}, + ".": {} + } + }, + "f:metadata": { + "f:labels": { + "f:metaID": {}, + "f:workspaceID": {}, + ".": {}, + "f:gitpod.io/networkpolicy": {}, + "f:component": {}, + "f:app": {}, + "f:gpwsman": {}, + "f:workspaceType": {}, + "f:headless": {}, + "f:owner": {} + }, + "f:annotations": { + "f:gitpod/id": {}, + "f:prometheus.io/path": {}, + "f:prometheus.io/port": {}, + "f:container.apparmor.security.beta.kubernetes.io/workspace": {}, + "f:gitpod/admission": {}, + "f:gitpod/traceid": {}, + "f:seccomp.security.alpha.kubernetes.io/pod": {}, + "f:prometheus.io/scrape": {}, + "f:gitpod/url": {}, + "f:gitpod/failedBeforeStopping": {}, + "f:gitpod/never-ready": {}, + ".": {}, + "f:gitpod/ownerToken": {}, + "f:gitpod/customTimeout": {}, + "f:gitpod/imageSpec": {}, + "f:gitpod/contentInitializer": {}, + "f:gitpod.io/requiredNodeServices": {}, + "f:gitpod/servicePrefix": {}, + "f:cluster-autoscaler.kubernetes.io/safe-to-evict": {} + } + } + }, + "time": "2021-08-19T05:14:53Z", + "manager": "ws-manager" + } + ], + "labels": { + "component": "workspace", + "gitpod.io/networkpolicy": "default", + "workspaceType": "regular", + "headless": "false", + "app": "gitpod", + "owner": "00000000-0000-0000-0000-000000000000", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "metaID": "purple-raven-cu9cj532", + "gpwsman": "true" + }, + "annotations": { + "gitpod/id": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "gitpod/failedBeforeStopping": "true", + "gitpod/never-ready": "true", + "gitpod/admission": "admit_owner_only", + "container.apparmor.security.beta.kubernetes.io/workspace": "unconfined", + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false", + "prometheus.io/scrape": "true", + "gitpod/url": "https://purple-raven-cu9cj532.ws-us14.gitpod.io", + "gitpod/imageSpec": "CmZldS5nY3IuaW8vZ2l0cG9kLWRldi93b3Jrc3BhY2UtaW1hZ2VzOjY4YzYxZWIwYmI0ZThmYmFmZDE2Yjg3NjM5MGZjMmM3OGE3ODg3ODY2ZWYwYmQ1MzUzNGJiOGZmYzI2ODJiZGMSWGV1Lmdjci5pby9naXRwb2QtY29yZS1kZXYvYnVpbGQvaWRlL2NvZGU6Y29tbWl0LTA5NDFhMDgwNWRjM2M3MzQ1YzQ1YmQ5MjYzMTdlYWYwNDVkNGI3ZmI=", + "prometheus.io/path": "/metrics", + "gitpod/servicePrefix": "purple-raven-cu9cj532", + "gitpod/ownerToken": "T.DhLiYyx1ZfeOgyf5zYE4MYLnCMBJ8p", + "gitpod/contentInitializer": "[redacted]", + "gitpod/traceid": "AAAAAAAAAABd9CSEJWTMBwf1zKjyomA/fduUhMUrUFIBAAAAAA==", + "cni.projectcalico.org/podIP": "10.4.12.227/32", + "prometheus.io/port": "23000", + "seccomp.security.alpha.kubernetes.io/pod": "localhost/workspace_default_main.1254.json", + "cni.projectcalico.org/podIPs": "10.4.12.227/32", + "gitpod.io/requiredNodeServices": "ws-daemon,registry-facade", + "kubernetes.io/psp": "default-ns-workspace", + "gitpod/customTimeout": "30m" + }, + "resourceVersion": "18667289" + }, + "spec": { + "preemptionPolicy": "PreemptLowerPriority", + "imagePullSecrets": [ + { + "name": "workspace-registry-pull-secret" + } + ], + "tolerations": [ + { + "operator": "Exists", + "effect": "NoExecute", + "key": "node.kubernetes.io/disk-pressure" + }, + { + "key": "node.kubernetes.io/memory-pressure", + "effect": "NoExecute", + "operator": "Exists" + }, + { + "tolerationSeconds": 30, + "operator": "Exists", + "key": "node.kubernetes.io/network-unavailable", + "effect": "NoExecute" + }, + { + "tolerationSeconds": 300, + "key": "node.kubernetes.io/not-ready", + "effect": "NoExecute", + "operator": "Exists" + }, + { + "key": "node.kubernetes.io/unreachable", + "effect": "NoExecute", + "operator": "Exists", + "tolerationSeconds": 300 + } + ], + "affinity": { + "nodeAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "key": "gitpod.io/workload_workspace", + "operator": "Exists" + } + ] + } + ] + } + } + }, + "securityContext": { + "fsGroup": 1, + "seccompProfile": { + "type": "Localhost", + "localhostProfile": "workspace_default_main.1254.json" + }, + "supplementalGroups": [ + 1 + ] + }, + "dnsConfig": { + "nameservers": [ + "1.1.1.1", + "8.8.8.8" + ] + }, + "nodeName": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s", + "priority": 0, + "schedulerName": "workspace-scheduler", + "dnsPolicy": "None", + "restartPolicy": "Never", + "terminationGracePeriodSeconds": 30, + "containers": [ + { + "terminationMessagePath": "/dev/termination-log", + "readinessProbe": { + "periodSeconds": 1, + "initialDelaySeconds": 2, + "timeoutSeconds": 1, + "httpGet": { + "scheme": "HTTP", + "path": "/_supervisor/v1/status/content/wait/true", + "port": 22999 + }, + "successThreshold": 1, + "failureThreshold": 600 + }, + "volumeMounts": [ + { + "mountPropagation": "HostToContainer", + "mountPath": "/workspace", + "name": "vol-this-workspace" + }, + { + "mountPath": "/.workspace", + "name": "daemon-mount", + "mountPropagation": "HostToContainer" + } + ], + "terminationMessagePolicy": "File", + "ports": [ + { + "containerPort": 23000, + "protocol": "TCP" + } + ], + "image": "reg.gitpod.io:31001/remote/48f13cc4-6311-48c2-950a-4b7ddedc3037", + "securityContext": { + "readOnlyRootFilesystem": false, + "privileged": false, + "runAsNonRoot": true, + "runAsUser": 33333, + "runAsGroup": 33333, + "allowPrivilegeEscalation": true, + "capabilities": { + "add": [ + "AUDIT_WRITE", + "FSETID", + "KILL", + "NET_BIND_SERVICE", + "SYS_PTRACE" + ], + "drop": [ + "SETPCAP", + "CHOWN", + "NET_RAW", + "DAC_OVERRIDE", + "FOWNER", + "SYS_CHROOT", + "SETFCAP", + "SETUID", + "SETGID" + ] + } + }, + "env": [ + { + "value": "/workspace/gatsby", + "name": "GITPOD_REPO_ROOT" + }, + { + "name": "GITPOD_CLI_APITOKEN", + "value": "c5nD_6RohFkJ716sOjM9jRvGjYraf8ST" + }, + { + "name": "GITPOD_WORKSPACE_ID", + "value": "purple-raven-cu9cj532" + }, + { + "name": "GITPOD_INSTANCE_ID", + "value": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + { + "value": "23000", + "name": "GITPOD_THEIA_PORT" + }, + { + "name": "THEIA_WORKSPACE_ROOT", + "value": "/workspace/gatsby" + }, + { + "name": "GITPOD_HOST", + "value": "https://gitpod.io" + }, + { + "name": "GITPOD_WORKSPACE_URL", + "value": "https://purple-raven-cu9cj532.ws-us14.gitpod.io" + }, + { + "value": "ws-us14.gitpod.io", + "name": "GITPOD_WORKSPACE_CLUSTER_HOST" + }, + { + "name": "THEIA_SUPERVISOR_ENDPOINT", + "value": ":22999" + }, + { + "value": "webview-{{hostname}}", + "name": "THEIA_WEBVIEW_EXTERNAL_ENDPOINT" + }, + { + "value": "browser-{{hostname}}", + "name": "THEIA_MINI_BROWSER_HOST_PATTERN" + }, + { + "value": "", + "name": "GITPOD_GIT_USER_NAME" + }, + { + "name": "GITPOD_GIT_USER_EMAIL", + "value": "" + }, + { + "name": "GITPOD_WORKSPACE_CONTEXT_URL", + "value": "https://github.com/gatsbyjs/gatsby" + }, + { + "value": "{\"isFile\":false,\"path\":\"\",\"title\":\"gatsbyjs/gatsby - master\",\"ref\":\"master\",\"refType\":\"branch\",\"revision\":\"fbfe3f63dec23d279a27b54b4057dd611dce74bb\",\"repository\":{\"cloneUrl\":\"https://github.com/gatsbyjs/gatsby.git\",\"host\":\"github.com\",\"name\":\"gatsby\",\"owner\":\"gatsbyjs\",\"private\":false}}", + "name": "GITPOD_WORKSPACE_CONTEXT" + }, + { + "value": "[{\"init\":\"yarn run bootstrap && cd ./examples/gatsbygram && yarn install && gatsby-dev --set-path-to-repo ../.. && gatsby-dev --scan-once && npx gatsby build && cd ../.. && touch /tmp/done.txt\\n\",\"command\":\"yarn run watch --scope={gatsby,gatsby-image,gatsby-link}\\n\"},{\"openMode\":\"split-right\",\"before\":\"cd ./examples/gatsbygram\\n\",\"command\":\"gp await-port 8000 && gatsby-dev --set-path-to-repo ../.. && gatsby-dev\\n\"},{\"before\":\"cd ./examples/gatsbygram\\n\",\"init\":\"until [ -f /tmp/done.txt ]\\ndo\\n sleep 2\\ndone\\n\",\"command\":\"npx gatsby develop\\n\"}]", + "name": "GITPOD_TASKS" + }, + { + "value": "{\"vscode.bat@1.44.2\":{\"fullPluginName\":\"vscode.bat@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.clojure@1.44.2\":{\"fullPluginName\":\"vscode.clojure@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.coffeescript@1.44.2\":{\"fullPluginName\":\"vscode.coffeescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.cpp@1.44.2\":{\"fullPluginName\":\"vscode.cpp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.csharp@1.44.2\":{\"fullPluginName\":\"vscode.csharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"llvm-vs-code-extensions.vscode-clangd@0.1.5\":{\"fullPluginName\":\"llvm-vs-code-extensions.vscode-clangd@0.1.5\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css@1.51.1\":{\"fullPluginName\":\"vscode.css@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css-language-features@1.51.1\":{\"fullPluginName\":\"vscode.css-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.debug-auto-launch@1.44.2\":{\"fullPluginName\":\"vscode.debug-auto-launch@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.emmet@1.44.2\":{\"fullPluginName\":\"vscode.emmet@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.fsharp@1.44.2\":{\"fullPluginName\":\"vscode.fsharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.go@1.44.2\":{\"fullPluginName\":\"vscode.go@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.groovy@1.44.2\":{\"fullPluginName\":\"vscode.groovy@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.handlebars@1.44.2\":{\"fullPluginName\":\"vscode.handlebars@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.hlsl@1.44.2\":{\"fullPluginName\":\"vscode.hlsl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html@1.51.1\":{\"fullPluginName\":\"vscode.html@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html-language-features@1.51.1\":{\"fullPluginName\":\"vscode.html-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ini@1.44.2\":{\"fullPluginName\":\"vscode.ini@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.java@1.53.2\":{\"fullPluginName\":\"vscode.java@1.53.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.javascript@1.44.2\":{\"fullPluginName\":\"vscode.javascript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json@1.44.2\":{\"fullPluginName\":\"vscode.json@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json-language-features@1.46.1\":{\"fullPluginName\":\"vscode.json-language-features@1.46.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.less@1.44.2\":{\"fullPluginName\":\"vscode.less@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.log@1.44.2\":{\"fullPluginName\":\"vscode.log@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.lua@1.44.2\":{\"fullPluginName\":\"vscode.lua@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.make@1.44.2\":{\"fullPluginName\":\"vscode.make@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.markdown@1.44.2\":{\"fullPluginName\":\"vscode.markdown@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.npm@1.39.1\":{\"fullPluginName\":\"vscode.npm@1.39.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.objective-c@1.44.2\":{\"fullPluginName\":\"vscode.objective-c@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.perl@1.44.2\":{\"fullPluginName\":\"vscode.perl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.php@1.44.2\":{\"fullPluginName\":\"vscode.php@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.powershell@1.44.2\":{\"fullPluginName\":\"vscode.powershell@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.pug@1.44.2\":{\"fullPluginName\":\"vscode.pug@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.python@1.47.3\":{\"fullPluginName\":\"vscode.python@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.r@1.44.2\":{\"fullPluginName\":\"vscode.r@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.razor@1.44.2\":{\"fullPluginName\":\"vscode.razor@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ruby@1.44.2\":{\"fullPluginName\":\"vscode.ruby@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.rust@1.44.2\":{\"fullPluginName\":\"vscode.rust@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.scss@1.44.2\":{\"fullPluginName\":\"vscode.scss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shaderlab@1.44.2\":{\"fullPluginName\":\"vscode.shaderlab@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shellscript@1.44.2\":{\"fullPluginName\":\"vscode.shellscript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.sql@1.44.2\":{\"fullPluginName\":\"vscode.sql@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.swift@1.44.2\":{\"fullPluginName\":\"vscode.swift@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript@1.44.2\":{\"fullPluginName\":\"vscode.typescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript-language-features@1.44.2\":{\"fullPluginName\":\"vscode.typescript-language-features@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vb@1.44.2\":{\"fullPluginName\":\"vscode.vb@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.xml@1.44.2\":{\"fullPluginName\":\"vscode.xml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.yaml@1.44.2\":{\"fullPluginName\":\"vscode.yaml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.java@0.75.0\":{\"fullPluginName\":\"redhat.java@0.75.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-debug@0.27.1\":{\"fullPluginName\":\"vscjava.vscode-java-debug@0.27.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-dependency@0.18.0\":{\"fullPluginName\":\"vscjava.vscode-java-dependency@0.18.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug@1.38.4\":{\"fullPluginName\":\"ms-vscode.node-debug@1.38.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug2@1.33.0\":{\"fullPluginName\":\"ms-vscode.node-debug2@1.33.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-python.python@2020.7.96456\":{\"fullPluginName\":\"ms-python.python@2020.7.96456\",\"url\":\"local\",\"kind\":\"builtin\"},\"golang.Go@0.14.4\":{\"fullPluginName\":\"golang.go@0.14.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-xml@0.11.0\":{\"fullPluginName\":\"redhat.vscode-xml@0.11.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-yaml@0.8.0\":{\"fullPluginName\":\"redhat.vscode-yaml@0.8.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"bmewburn.vscode-intelephense-client@1.4.0\":{\"fullPluginName\":\"bmewburn.vscode-intelephense-client@1.4.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"felixfbecker.php-debug@1.13.0\":{\"fullPluginName\":\"felixfbecker.php-debug@1.13.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"rust-lang.rust@0.7.8\":{\"fullPluginName\":\"rust-lang.rust@0.7.8\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-abyss@1.44.2\":{\"fullPluginName\":\"vscode.theme-abyss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-kimbie-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-kimbie-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai-dimmed@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai-dimmed@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-quietlight@1.44.2\":{\"fullPluginName\":\"vscode.theme-quietlight@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-red@1.44.2\":{\"fullPluginName\":\"vscode.theme-red@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-light@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-light@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-tomorrow-night-blue@1.44.2\":{\"fullPluginName\":\"vscode.theme-tomorrow-night-blue@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vscode-theme-seti@1.44.2\":{\"fullPluginName\":\"vscode.vscode-theme-seti@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.merge-conflict@1.44.2\":{\"fullPluginName\":\"vscode.merge-conflict@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.references-view@0.0.47\":{\"fullPluginName\":\"ms-vscode.references-view@0.0.47\",\"url\":\"local\",\"kind\":\"builtin\"},\"EditorConfig.EditorConfig@0.15.1\":{\"fullPluginName\":\"editorconfig.editorconfig@0.15.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.docker@1.47.3\":{\"fullPluginName\":\"vscode.docker@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"}}", + "name": "GITPOD_RESOLVED_EXTENSIONS" + }, + { + "name": "GITPOD_EXTERNAL_EXTENSIONS", + "value": "[]" + }, + { + "value": "30000", + "name": "GITPOD_INTERVAL" + }, + { + "value": "1879", + "name": "GITPOD_MEMORY" + }, + { + "name": "THEIA_RATELIMIT_LOG", + "value": "50" + }, + { + "value": "segment", + "name": "GITPOD_ANALYTICS_WRITER" + }, + { + "value": "", + "name": "GITPOD_ANALYTICS_SEGMENT_KEY" + } + ], + "imagePullPolicy": "IfNotPresent", + "resources": { + "requests": { + "memory": "1792Mi", + "cpu": "1m" + }, + "limits": { + "cpu": "6", + "memory": "12Gi" + } + }, + "command": [ + "/.supervisor/workspacekit", + "ring0" + ], + "name": "workspace" + } + ], + "serviceAccount": "workspace", + "enableServiceLinks": false, + "automountServiceAccountToken": false, + "volumes": [ + { + "hostPath": { + "path": "/mnt/disks/raid0/workspaces/48f13cc4-6311-48c2-950a-4b7ddedc3037", + "type": "DirectoryOrCreate" + }, + "name": "vol-this-workspace" + }, + { + "hostPath": { + "type": "DirectoryOrCreate", + "path": "/mnt/disks/raid0/workspaces/48f13cc4-6311-48c2-950a-4b7ddedc3037-daemon" + }, + "name": "daemon-mount" + } + ], + "serviceAccountName": "workspace" + }, + "apiVersion": "v1", + "kind": "Pod", + "status": { + "phase": "Failed", + "containerStatuses": [ + { + "started": false, + "ready": false, + "image": "reg.gitpod.io:31001/remote/3ae9808d-f417-40e2-9f7c-f8c5105fbdf9:latest", + "lastState": {}, + "imageID": "reg.gitpod.io:31001/remote/8f69a0fe-4215-4c47-be17-f099a4d4f780@sha256:760891680ff149a29dc05d25667f851de44db64db1e679b206ce194338ad3a9f", + "state": { + "terminated": { + "exitCode": 1, + "startedAt": "2021-08-19T05:14:22Z", + "containerID": "containerd://1ff16a9b77bddae23efc4f462a5f83e47651bd0ae274b4099ce5d95283c2f575", + "finishedAt": "2021-08-19T05:14:52Z", + "reason": "Error" + } + }, + "containerID": "containerd://1ff16a9b77bddae23efc4f462a5f83e47651bd0ae274b4099ce5d95283c2f575", + "name": "workspace", + "restartCount": 0 + } + ], + "podIPs": [ + { + "ip": "10.4.12.227" + } + ], + "qosClass": "Burstable", + "startTime": "2021-08-19T05:14:19Z", + "hostIP": "10.138.0.13", + "conditions": [ + { + "lastTransitionTime": "2021-08-19T05:14:19Z", + "lastProbeTime": null, + "type": "Initialized", + "status": "True" + }, + { + "reason": "ContainersNotReady", + "type": "Ready", + "status": "False", + "lastTransitionTime": "2021-08-19T05:14:19Z", + "message": "containers with unready status: [workspace]", + "lastProbeTime": null + }, + { + "status": "False", + "type": "ContainersReady", + "reason": "ContainersNotReady", + "lastProbeTime": null, + "lastTransitionTime": "2021-08-19T05:14:19Z", + "message": "containers with unready status: [workspace]" + }, + { + "type": "PodScheduled", + "lastProbeTime": null, + "lastTransitionTime": "2021-08-19T05:14:19Z", + "status": "True" + } + ], + "podIP": "10.4.12.227" + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_STOPPING00.golden b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_STOPPING00.golden new file mode 100644 index 00000000000000..4cc3808b83103d --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_STOPPING00.golden @@ -0,0 +1,41 @@ +{ + "status": { + "id": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "metadata": { + "owner": "00000000-0000-0000-0000-000000000000", + "meta_id": "purple-raven-cu9cj532", + "started_at": { + "seconds": 1629350059 + } + }, + "spec": { + "workspace_image": "eu.gcr.io/gitpod-dev/workspace-images:68c61eb0bb4e8fbafd16b876390fc2c78a7887866ef0bd53534bb8ffc2682bdc", + "ide_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-0941a0805dc3c7345c45bd926317eaf045d4b7fb", + "url": "https://purple-raven-cu9cj532.ws-us14.gitpod.io", + "exposed_ports": [ + { + "port": 8000, + "url": "https://8000-purple-raven-cu9cj532.ws-us14.gitpod.io" + }, + { + "port": 31997, + "url": "https://31997-purple-raven-cu9cj532.ws-us14.gitpod.io" + } + ], + "timeout": "30m" + }, + "phase": 6, + "conditions": { + "service_exists": 1, + "deployed": 1 + }, + "runtime": { + "node_name": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s", + "pod_name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "node_ip": "10.138.0.13" + }, + "auth": { + "owner_token": "T.DhLiYyx1ZfeOgyf5zYE4MYLnCMBJ8p" + } + } +} \ No newline at end of file diff --git a/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_STOPPING00.json b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_STOPPING00.json new file mode 100644 index 00000000000000..03bde46366fc28 --- /dev/null +++ b/components/ws-manager/pkg/manager/testdata/status_stuckInStopping_STOPPING00.json @@ -0,0 +1,1349 @@ +{ + "pod": { + "apiVersion": "v1", + "metadata": { + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "managedFields": [ + { + "time": "2021-08-19T05:14:20Z", + "operation": "Update", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + "f:cni.projectcalico.org/podIP": {}, + "f:cni.projectcalico.org/podIPs": {} + } + } + }, + "manager": "calico", + "apiVersion": "v1" + }, + { + "operation": "Update", + "manager": "kubelet", + "apiVersion": "v1", + "time": "2021-08-19T05:14:23Z", + "fieldsV1": { + "f:status": { + "f:startTime": {}, + "f:podIPs": { + "k:{\"ip\":\"10.4.12.227\"}": { + "f:ip": {}, + ".": {} + }, + ".": {} + }, + "f:hostIP": {}, + "f:containerStatuses": {}, + "f:conditions": { + "k:{\"type\":\"ContainersReady\"}": { + "f:status": {}, + "f:lastProbeTime": {}, + "f:message": {}, + ".": {}, + "f:lastTransitionTime": {}, + "f:type": {}, + "f:reason": {} + }, + "k:{\"type\":\"Initialized\"}": { + ".": {}, + "f:lastTransitionTime": {}, + "f:status": {}, + "f:lastProbeTime": {}, + "f:type": {} + }, + "k:{\"type\":\"Ready\"}": { + "f:message": {}, + "f:lastTransitionTime": {}, + "f:status": {}, + ".": {}, + "f:type": {}, + "f:lastProbeTime": {}, + "f:reason": {} + } + }, + "f:podIP": {}, + "f:phase": {} + } + }, + "fieldsType": "FieldsV1" + }, + { + "manager": "ws-manager", + "time": "2021-08-19T05:14:53Z", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + "f:gitpod/id": {}, + "f:gitpod/traceid": {}, + "f:seccomp.security.alpha.kubernetes.io/pod": {}, + "f:gitpod/servicePrefix": {}, + "f:gitpod/never-ready": {}, + "f:gitpod/failedBeforeStopping": {}, + "f:prometheus.io/path": {}, + "f:cluster-autoscaler.kubernetes.io/safe-to-evict": {}, + "f:gitpod/customTimeout": {}, + "f:gitpod/imageSpec": {}, + "f:gitpod/admission": {}, + "f:prometheus.io/scrape": {}, + ".": {}, + "f:prometheus.io/port": {}, + "f:gitpod/contentInitializer": {}, + "f:gitpod/url": {}, + "f:container.apparmor.security.beta.kubernetes.io/workspace": {}, + "f:gitpod/ownerToken": {}, + "f:gitpod.io/requiredNodeServices": {} + }, + "f:labels": { + "f:workspaceType": {}, + "f:gpwsman": {}, + ".": {}, + "f:owner": {}, + "f:app": {}, + "f:workspaceID": {}, + "f:headless": {}, + "f:metaID": {}, + "f:component": {}, + "f:gitpod.io/networkpolicy": {} + } + }, + "f:spec": { + "f:dnsPolicy": {}, + "f:serviceAccount": {}, + "f:dnsConfig": { + ".": {}, + "f:nameservers": {} + }, + "f:containers": { + "k:{\"name\":\"workspace\"}": { + "f:ports": { + ".": {}, + "k:{\"containerPort\":23000,\"protocol\":\"TCP\"}": { + "f:protocol": {}, + "f:containerPort": {}, + ".": {} + } + }, + ".": {}, + "f:name": {}, + "f:resources": { + ".": {}, + "f:requests": { + "f:memory": {}, + "f:cpu": {}, + ".": {} + }, + "f:limits": { + "f:memory": {}, + "f:cpu": {}, + ".": {} + } + }, + "f:imagePullPolicy": {}, + "f:terminationMessagePolicy": {}, + "f:command": {}, + "f:terminationMessagePath": {}, + "f:env": { + "k:{\"name\":\"THEIA_RATELIMIT_LOG\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_NAME\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_TASKS\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_INSTANCE_ID\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_WORKSPACE_ROOT\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + ".": {}, + "k:{\"name\":\"GITPOD_CLI_APITOKEN\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_THEIA_PORT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_SEGMENT_KEY\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_ID\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_GIT_USER_EMAIL\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_ANALYTICS_WRITER\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CLUSTER_HOST\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_URL\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_WEBVIEW_EXTERNAL_ENDPOINT\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_HOST\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_RESOLVED_EXTENSIONS\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT_URL\"}": { + "f:name": {}, + ".": {}, + "f:value": {} + }, + "k:{\"name\":\"GITPOD_REPO_ROOT\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_MEMORY\"}": { + "f:value": {}, + ".": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_WORKSPACE_CONTEXT\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_MINI_BROWSER_HOST_PATTERN\"}": { + "f:value": {}, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"GITPOD_INTERVAL\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_ENDPOINT\"}": { + ".": {}, + "f:value": {}, + "f:name": {} + }, + "k:{\"name\":\"GITPOD_EXTERNAL_EXTENSIONS\"}": { + "f:name": {}, + "f:value": {}, + ".": {} + }, + "k:{\"name\":\"THEIA_SUPERVISOR_TOKENS\"}": { + ".": {}, + "f:name": {}, + "f:value": {} + } + }, + "f:volumeMounts": { + ".": {}, + "k:{\"mountPath\":\"/.workspace\"}": { + "f:mountPath": {}, + ".": {}, + "f:name": {}, + "f:mountPropagation": {} + }, + "k:{\"mountPath\":\"/workspace\"}": { + "f:name": {}, + "f:mountPath": {}, + ".": {}, + "f:mountPropagation": {} + } + }, + "f:readinessProbe": { + "f:failureThreshold": {}, + "f:initialDelaySeconds": {}, + "f:httpGet": { + ".": {}, + "f:path": {}, + "f:port": {}, + "f:scheme": {} + }, + "f:periodSeconds": {}, + "f:successThreshold": {}, + ".": {}, + "f:timeoutSeconds": {} + }, + "f:securityContext": { + "f:capabilities": { + ".": {}, + "f:drop": {}, + "f:add": {} + }, + "f:privileged": {}, + "f:runAsUser": {}, + "f:readOnlyRootFilesystem": {}, + "f:runAsGroup": {}, + ".": {}, + "f:allowPrivilegeEscalation": {}, + "f:runAsNonRoot": {} + }, + "f:image": {} + } + }, + "f:volumes": { + ".": {}, + "k:{\"name\":\"daemon-mount\"}": { + "f:hostPath": { + "f:path": {}, + ".": {}, + "f:type": {} + }, + "f:name": {}, + ".": {} + }, + "k:{\"name\":\"vol-this-workspace\"}": { + ".": {}, + "f:name": {}, + "f:hostPath": { + ".": {}, + "f:type": {}, + "f:path": {} + } + } + }, + "f:restartPolicy": {}, + "f:securityContext": {}, + "f:imagePullSecrets": { + ".": {}, + "k:{\"name\":\"workspace-registry-pull-secret\"}": { + "f:name": {}, + ".": {} + } + }, + "f:affinity": { + "f:nodeAffinity": { + ".": {}, + "f:requiredDuringSchedulingIgnoredDuringExecution": { + "f:nodeSelectorTerms": {}, + ".": {} + } + }, + ".": {} + }, + "f:schedulerName": {}, + "f:enableServiceLinks": {}, + "f:tolerations": {}, + "f:automountServiceAccountToken": {}, + "f:terminationGracePeriodSeconds": {}, + "f:serviceAccountName": {} + } + }, + "apiVersion": "v1", + "operation": "Update", + "fieldsType": "FieldsV1" + } + ], + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "resourceVersion": "18667301", + "deletionTimestamp": "2021-08-19T05:14:53Z", + "creationTimestamp": "2021-08-19T05:14:19Z", + "labels": { + "gitpod.io/networkpolicy": "default", + "workspaceType": "regular", + "headless": "false", + "app": "gitpod", + "metaID": "purple-raven-cu9cj532", + "component": "workspace", + "gpwsman": "true", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "owner": "00000000-0000-0000-0000-000000000000" + }, + "namespace": "default", + "annotations": { + "gitpod/url": "https://purple-raven-cu9cj532.ws-us14.gitpod.io", + "gitpod/id": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "seccomp.security.alpha.kubernetes.io/pod": "localhost/workspace_default_main.1254.json", + "gitpod/never-ready": "true", + "cni.projectcalico.org/podIPs": "", + "prometheus.io/scrape": "true", + "gitpod/ownerToken": "T.DhLiYyx1ZfeOgyf5zYE4MYLnCMBJ8p", + "cni.projectcalico.org/podIP": "", + "gitpod/imageSpec": "CmZldS5nY3IuaW8vZ2l0cG9kLWRldi93b3Jrc3BhY2UtaW1hZ2VzOjY4YzYxZWIwYmI0ZThmYmFmZDE2Yjg3NjM5MGZjMmM3OGE3ODg3ODY2ZWYwYmQ1MzUzNGJiOGZmYzI2ODJiZGMSWGV1Lmdjci5pby9naXRwb2QtY29yZS1kZXYvYnVpbGQvaWRlL2NvZGU6Y29tbWl0LTA5NDFhMDgwNWRjM2M3MzQ1YzQ1YmQ5MjYzMTdlYWYwNDVkNGI3ZmI=", + "prometheus.io/port": "23000", + "gitpod/traceid": "AAAAAAAAAABd9CSEJWTMBwf1zKjyomA/fduUhMUrUFIBAAAAAA==", + "container.apparmor.security.beta.kubernetes.io/workspace": "unconfined", + "gitpod/failedBeforeStopping": "true", + "gitpod/admission": "admit_owner_only", + "gitpod.io/requiredNodeServices": "ws-daemon,registry-facade", + "gitpod/customTimeout": "30m", + "gitpod/servicePrefix": "purple-raven-cu9cj532", + "kubernetes.io/psp": "default-ns-workspace", + "gitpod/contentInitializer": "[redacted]", + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false", + "prometheus.io/path": "/metrics" + }, + "deletionGracePeriodSeconds": 0, + "finalizers": [ + "foregroundDeletion" + ] + }, + "kind": "Pod", + "spec": { + "containers": [ + { + "terminationMessagePolicy": "File", + "image": "reg.gitpod.io:31001/remote/48f13cc4-6311-48c2-950a-4b7ddedc3037", + "securityContext": { + "readOnlyRootFilesystem": false, + "capabilities": { + "drop": [ + "SETPCAP", + "CHOWN", + "NET_RAW", + "DAC_OVERRIDE", + "FOWNER", + "SYS_CHROOT", + "SETFCAP", + "SETUID", + "SETGID" + ], + "add": [ + "AUDIT_WRITE", + "FSETID", + "KILL", + "NET_BIND_SERVICE", + "SYS_PTRACE" + ] + }, + "privileged": false, + "runAsGroup": 33333, + "runAsNonRoot": true, + "allowPrivilegeEscalation": true, + "runAsUser": 33333 + }, + "ports": [ + { + "protocol": "TCP", + "containerPort": 23000 + } + ], + "volumeMounts": [ + { + "mountPropagation": "HostToContainer", + "mountPath": "/workspace", + "name": "vol-this-workspace" + }, + { + "mountPropagation": "HostToContainer", + "mountPath": "/.workspace", + "name": "daemon-mount" + } + ], + "readinessProbe": { + "failureThreshold": 600, + "periodSeconds": 1, + "timeoutSeconds": 1, + "initialDelaySeconds": 2, + "successThreshold": 1, + "httpGet": { + "path": "/_supervisor/v1/status/content/wait/true", + "scheme": "HTTP", + "port": 22999 + } + }, + "resources": { + "limits": { + "cpu": "6", + "memory": "12Gi" + }, + "requests": { + "memory": "1792Mi", + "cpu": "1m" + } + }, + "imagePullPolicy": "IfNotPresent", + "env": [ + { + "name": "GITPOD_REPO_ROOT", + "value": "/workspace/gatsby" + }, + { + "value": "c5nD_6RohFkJ716sOjM9jRvGjYraf8ST", + "name": "GITPOD_CLI_APITOKEN" + }, + { + "value": "purple-raven-cu9cj532", + "name": "GITPOD_WORKSPACE_ID" + }, + { + "name": "GITPOD_INSTANCE_ID", + "value": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + { + "name": "GITPOD_THEIA_PORT", + "value": "23000" + }, + { + "name": "THEIA_WORKSPACE_ROOT", + "value": "/workspace/gatsby" + }, + { + "value": "https://gitpod.io", + "name": "GITPOD_HOST" + }, + { + "value": "https://purple-raven-cu9cj532.ws-us14.gitpod.io", + "name": "GITPOD_WORKSPACE_URL" + }, + { + "name": "GITPOD_WORKSPACE_CLUSTER_HOST", + "value": "ws-us14.gitpod.io" + }, + { + "name": "THEIA_SUPERVISOR_ENDPOINT", + "value": ":22999" + }, + { + "value": "webview-{{hostname}}", + "name": "THEIA_WEBVIEW_EXTERNAL_ENDPOINT" + }, + { + "value": "browser-{{hostname}}", + "name": "THEIA_MINI_BROWSER_HOST_PATTERN" + }, + { + "name": "GITPOD_GIT_USER_NAME", + "value": "" + }, + { + "name": "GITPOD_GIT_USER_EMAIL", + "value": "" + }, + { + "value": "https://github.com/gatsbyjs/gatsby", + "name": "GITPOD_WORKSPACE_CONTEXT_URL" + }, + { + "name": "GITPOD_WORKSPACE_CONTEXT", + "value": "{\"isFile\":false,\"path\":\"\",\"title\":\"gatsbyjs/gatsby - master\",\"ref\":\"master\",\"refType\":\"branch\",\"revision\":\"fbfe3f63dec23d279a27b54b4057dd611dce74bb\",\"repository\":{\"cloneUrl\":\"https://github.com/gatsbyjs/gatsby.git\",\"host\":\"github.com\",\"name\":\"gatsby\",\"owner\":\"gatsbyjs\",\"private\":false}}" + }, + { + "name": "GITPOD_TASKS", + "value": "[{\"init\":\"yarn run bootstrap && cd ./examples/gatsbygram && yarn install && gatsby-dev --set-path-to-repo ../.. && gatsby-dev --scan-once && npx gatsby build && cd ../.. && touch /tmp/done.txt\\n\",\"command\":\"yarn run watch --scope={gatsby,gatsby-image,gatsby-link}\\n\"},{\"openMode\":\"split-right\",\"before\":\"cd ./examples/gatsbygram\\n\",\"command\":\"gp await-port 8000 && gatsby-dev --set-path-to-repo ../.. && gatsby-dev\\n\"},{\"before\":\"cd ./examples/gatsbygram\\n\",\"init\":\"until [ -f /tmp/done.txt ]\\ndo\\n sleep 2\\ndone\\n\",\"command\":\"npx gatsby develop\\n\"}]" + }, + { + "value": "{\"vscode.bat@1.44.2\":{\"fullPluginName\":\"vscode.bat@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.clojure@1.44.2\":{\"fullPluginName\":\"vscode.clojure@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.coffeescript@1.44.2\":{\"fullPluginName\":\"vscode.coffeescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.cpp@1.44.2\":{\"fullPluginName\":\"vscode.cpp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.csharp@1.44.2\":{\"fullPluginName\":\"vscode.csharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"llvm-vs-code-extensions.vscode-clangd@0.1.5\":{\"fullPluginName\":\"llvm-vs-code-extensions.vscode-clangd@0.1.5\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css@1.51.1\":{\"fullPluginName\":\"vscode.css@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.css-language-features@1.51.1\":{\"fullPluginName\":\"vscode.css-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.debug-auto-launch@1.44.2\":{\"fullPluginName\":\"vscode.debug-auto-launch@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.emmet@1.44.2\":{\"fullPluginName\":\"vscode.emmet@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.fsharp@1.44.2\":{\"fullPluginName\":\"vscode.fsharp@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.go@1.44.2\":{\"fullPluginName\":\"vscode.go@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.groovy@1.44.2\":{\"fullPluginName\":\"vscode.groovy@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.handlebars@1.44.2\":{\"fullPluginName\":\"vscode.handlebars@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.hlsl@1.44.2\":{\"fullPluginName\":\"vscode.hlsl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html@1.51.1\":{\"fullPluginName\":\"vscode.html@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.html-language-features@1.51.1\":{\"fullPluginName\":\"vscode.html-language-features@1.51.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ini@1.44.2\":{\"fullPluginName\":\"vscode.ini@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.java@1.53.2\":{\"fullPluginName\":\"vscode.java@1.53.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.javascript@1.44.2\":{\"fullPluginName\":\"vscode.javascript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json@1.44.2\":{\"fullPluginName\":\"vscode.json@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.json-language-features@1.46.1\":{\"fullPluginName\":\"vscode.json-language-features@1.46.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.less@1.44.2\":{\"fullPluginName\":\"vscode.less@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.log@1.44.2\":{\"fullPluginName\":\"vscode.log@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.lua@1.44.2\":{\"fullPluginName\":\"vscode.lua@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.make@1.44.2\":{\"fullPluginName\":\"vscode.make@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.markdown@1.44.2\":{\"fullPluginName\":\"vscode.markdown@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.npm@1.39.1\":{\"fullPluginName\":\"vscode.npm@1.39.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.objective-c@1.44.2\":{\"fullPluginName\":\"vscode.objective-c@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.perl@1.44.2\":{\"fullPluginName\":\"vscode.perl@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.php@1.44.2\":{\"fullPluginName\":\"vscode.php@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.powershell@1.44.2\":{\"fullPluginName\":\"vscode.powershell@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.pug@1.44.2\":{\"fullPluginName\":\"vscode.pug@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.python@1.47.3\":{\"fullPluginName\":\"vscode.python@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.r@1.44.2\":{\"fullPluginName\":\"vscode.r@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.razor@1.44.2\":{\"fullPluginName\":\"vscode.razor@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.ruby@1.44.2\":{\"fullPluginName\":\"vscode.ruby@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.rust@1.44.2\":{\"fullPluginName\":\"vscode.rust@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.scss@1.44.2\":{\"fullPluginName\":\"vscode.scss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shaderlab@1.44.2\":{\"fullPluginName\":\"vscode.shaderlab@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.shellscript@1.44.2\":{\"fullPluginName\":\"vscode.shellscript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.sql@1.44.2\":{\"fullPluginName\":\"vscode.sql@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.swift@1.44.2\":{\"fullPluginName\":\"vscode.swift@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript@1.44.2\":{\"fullPluginName\":\"vscode.typescript@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.typescript-language-features@1.44.2\":{\"fullPluginName\":\"vscode.typescript-language-features@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vb@1.44.2\":{\"fullPluginName\":\"vscode.vb@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.xml@1.44.2\":{\"fullPluginName\":\"vscode.xml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.yaml@1.44.2\":{\"fullPluginName\":\"vscode.yaml@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.java@0.75.0\":{\"fullPluginName\":\"redhat.java@0.75.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-debug@0.27.1\":{\"fullPluginName\":\"vscjava.vscode-java-debug@0.27.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscjava.vscode-java-dependency@0.18.0\":{\"fullPluginName\":\"vscjava.vscode-java-dependency@0.18.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug@1.38.4\":{\"fullPluginName\":\"ms-vscode.node-debug@1.38.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.node-debug2@1.33.0\":{\"fullPluginName\":\"ms-vscode.node-debug2@1.33.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-python.python@2020.7.96456\":{\"fullPluginName\":\"ms-python.python@2020.7.96456\",\"url\":\"local\",\"kind\":\"builtin\"},\"golang.Go@0.14.4\":{\"fullPluginName\":\"golang.go@0.14.4\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-xml@0.11.0\":{\"fullPluginName\":\"redhat.vscode-xml@0.11.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"redhat.vscode-yaml@0.8.0\":{\"fullPluginName\":\"redhat.vscode-yaml@0.8.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"bmewburn.vscode-intelephense-client@1.4.0\":{\"fullPluginName\":\"bmewburn.vscode-intelephense-client@1.4.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"felixfbecker.php-debug@1.13.0\":{\"fullPluginName\":\"felixfbecker.php-debug@1.13.0\",\"url\":\"local\",\"kind\":\"builtin\"},\"rust-lang.rust@0.7.8\":{\"fullPluginName\":\"rust-lang.rust@0.7.8\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-abyss@1.44.2\":{\"fullPluginName\":\"vscode.theme-abyss@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-kimbie-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-kimbie-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-monokai-dimmed@1.44.2\":{\"fullPluginName\":\"vscode.theme-monokai-dimmed@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-quietlight@1.44.2\":{\"fullPluginName\":\"vscode.theme-quietlight@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-red@1.44.2\":{\"fullPluginName\":\"vscode.theme-red@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-dark@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-dark@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-solarized-light@1.44.2\":{\"fullPluginName\":\"vscode.theme-solarized-light@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.theme-tomorrow-night-blue@1.44.2\":{\"fullPluginName\":\"vscode.theme-tomorrow-night-blue@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.vscode-theme-seti@1.44.2\":{\"fullPluginName\":\"vscode.vscode-theme-seti@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.merge-conflict@1.44.2\":{\"fullPluginName\":\"vscode.merge-conflict@1.44.2\",\"url\":\"local\",\"kind\":\"builtin\"},\"ms-vscode.references-view@0.0.47\":{\"fullPluginName\":\"ms-vscode.references-view@0.0.47\",\"url\":\"local\",\"kind\":\"builtin\"},\"EditorConfig.EditorConfig@0.15.1\":{\"fullPluginName\":\"editorconfig.editorconfig@0.15.1\",\"url\":\"local\",\"kind\":\"builtin\"},\"vscode.docker@1.47.3\":{\"fullPluginName\":\"vscode.docker@1.47.3\",\"url\":\"local\",\"kind\":\"builtin\"}}", + "name": "GITPOD_RESOLVED_EXTENSIONS" + }, + { + "name": "GITPOD_EXTERNAL_EXTENSIONS", + "value": "[]" + }, + { + "value": "[{\"tokenOTS\":\"https://gitpod.io/api/ots/get/42bdf413-3242-4388-a692-e279aaa65cc6\",\"token\":\"ots\",\"kind\":\"gitpod\",\"host\":\"gitpod.io\",\"scope\":[\"function:getWorkspace\",\"function:getLoggedInUser\",\"function:getPortAuthenticationToken\",\"function:getWorkspaceOwner\",\"function:getWorkspaceUsers\",\"function:isWorkspaceOwner\",\"function:controlAdmission\",\"function:setWorkspaceTimeout\",\"function:getWorkspaceTimeout\",\"function:sendHeartBeat\",\"function:getOpenPorts\",\"function:openPort\",\"function:closePort\",\"function:getLayout\",\"function:generateNewGitpodToken\",\"function:takeSnapshot\",\"function:storeLayout\",\"function:stopWorkspace\",\"function:getToken\",\"function:getContentBlobUploadUrl\",\"function:getContentBlobDownloadUrl\",\"function:accessCodeSyncStorage\",\"function:guessGitTokenScopes\",\"function:getEnvVars\",\"function:setEnvVar\",\"function:deleteEnvVar\",\"function:trackEvent\",\"resource:workspace::purple-raven-cu9cj532::get/update\",\"resource:workspaceInstance::48f13cc4-6311-48c2-950a-4b7ddedc3037::get/update/delete\",\"resource:snapshot::ws-purple-raven-cu9cj532::create\",\"resource:gitpodToken::*::create\",\"resource:userStorage::*::create/get/update\",\"resource:token::*::get\",\"resource:contentBlob::*::create/get\",\"resource:envVar::gatsbyjs/gatsby::create/get/update/delete\"],\"expiryDate\":\"2021-08-20T05:14:19.578Z\",\"reuse\":2}]", + "name": "THEIA_SUPERVISOR_TOKENS" + }, + { + "value": "30000", + "name": "GITPOD_INTERVAL" + }, + { + "name": "GITPOD_MEMORY", + "value": "1879" + }, + { + "value": "50", + "name": "THEIA_RATELIMIT_LOG" + }, + { + "name": "GITPOD_ANALYTICS_WRITER", + "value": "segment" + }, + { + "value": "", + "name": "GITPOD_ANALYTICS_SEGMENT_KEY" + } + ], + "command": [ + "/.supervisor/workspacekit", + "ring0" + ], + "name": "workspace", + "terminationMessagePath": "/dev/termination-log" + } + ], + "dnsPolicy": "None", + "serviceAccountName": "workspace", + "imagePullSecrets": [ + { + "name": "workspace-registry-pull-secret" + } + ], + "securityContext": { + "seccompProfile": { + "type": "Localhost", + "localhostProfile": "workspace_default_main.1254.json" + }, + "supplementalGroups": [ + 1 + ], + "fsGroup": 1 + }, + "serviceAccount": "workspace", + "enableServiceLinks": false, + "priority": 0, + "preemptionPolicy": "PreemptLowerPriority", + "volumes": [ + { + "hostPath": { + "type": "DirectoryOrCreate", + "path": "/mnt/disks/raid0/workspaces/48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + "name": "vol-this-workspace" + }, + { + "name": "daemon-mount", + "hostPath": { + "type": "DirectoryOrCreate", + "path": "/mnt/disks/raid0/workspaces/48f13cc4-6311-48c2-950a-4b7ddedc3037-daemon" + } + } + ], + "restartPolicy": "Never", + "nodeName": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s", + "automountServiceAccountToken": false, + "terminationGracePeriodSeconds": 30, + "schedulerName": "workspace-scheduler", + "dnsConfig": { + "nameservers": [ + "1.1.1.1", + "8.8.8.8" + ] + }, + "affinity": { + "nodeAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "key": "gitpod.io/workload_workspace", + "operator": "Exists" + } + ] + } + ] + } + } + }, + "tolerations": [ + { + "effect": "NoExecute", + "operator": "Exists", + "key": "node.kubernetes.io/disk-pressure" + }, + { + "key": "node.kubernetes.io/memory-pressure", + "effect": "NoExecute", + "operator": "Exists" + }, + { + "tolerationSeconds": 30, + "effect": "NoExecute", + "operator": "Exists", + "key": "node.kubernetes.io/network-unavailable" + }, + { + "tolerationSeconds": 300, + "key": "node.kubernetes.io/not-ready", + "effect": "NoExecute", + "operator": "Exists" + }, + { + "operator": "Exists", + "key": "node.kubernetes.io/unreachable", + "tolerationSeconds": 300, + "effect": "NoExecute" + } + ] + }, + "status": { + "containerStatuses": [ + { + "lastState": {}, + "image": "reg.gitpod.io:31001/remote/3ae9808d-f417-40e2-9f7c-f8c5105fbdf9:latest", + "ready": false, + "started": false, + "state": { + "terminated": { + "containerID": "containerd://1ff16a9b77bddae23efc4f462a5f83e47651bd0ae274b4099ce5d95283c2f575", + "startedAt": "2021-08-19T05:14:22Z", + "finishedAt": "2021-08-19T05:14:52Z", + "reason": "Error", + "exitCode": 1 + } + }, + "imageID": "reg.gitpod.io:31001/remote/8f69a0fe-4215-4c47-be17-f099a4d4f780@sha256:760891680ff149a29dc05d25667f851de44db64db1e679b206ce194338ad3a9f", + "restartCount": 0, + "name": "workspace", + "containerID": "containerd://1ff16a9b77bddae23efc4f462a5f83e47651bd0ae274b4099ce5d95283c2f575" + } + ], + "phase": "Failed", + "podIPs": [ + { + "ip": "10.4.12.227" + } + ], + "qosClass": "Burstable", + "startTime": "2021-08-19T05:14:19Z", + "conditions": [ + { + "lastTransitionTime": "2021-08-19T05:14:19Z", + "type": "Initialized", + "status": "True", + "lastProbeTime": null + }, + { + "message": "containers with unready status: [workspace]", + "lastProbeTime": null, + "status": "False", + "reason": "ContainersNotReady", + "type": "Ready", + "lastTransitionTime": "2021-08-19T05:14:19Z" + }, + { + "message": "containers with unready status: [workspace]", + "reason": "ContainersNotReady", + "status": "False", + "lastTransitionTime": "2021-08-19T05:14:19Z", + "type": "ContainersReady", + "lastProbeTime": null + }, + { + "type": "PodScheduled", + "lastTransitionTime": "2021-08-19T05:14:19Z", + "status": "True", + "lastProbeTime": null + } + ], + "podIP": "10.4.12.227", + "hostIP": "10.138.0.13" + } + }, + "portsService": { + "status": { + "loadBalancer": {} + }, + "metadata": { + "labels": { + "serviceType": "ports", + "gpwsman": "true", + "metaID": "purple-raven-cu9cj532", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037" + }, + "annotations": { + "gitpod/port-url-31997": "https://31997-purple-raven-cu9cj532.ws-us14.gitpod.io", + "gitpod/port-url-8000": "https://8000-purple-raven-cu9cj532.ws-us14.gitpod.io" + }, + "name": "ws-purple-raven-cu9cj532-ports", + "uid": "bf728250-00fb-4e51-aa83-bb9c9054768e", + "deletionTimestamp": "2021-08-19T05:14:53Z", + "managedFields": [ + { + "operation": "Update", + "fieldsType": "FieldsV1", + "time": "2021-08-19T05:14:19Z", + "manager": "ws-manager", + "apiVersion": "v1", + "fieldsV1": { + "f:spec": { + "f:type": {}, + "f:ports": { + "k:{\"port\":31997,\"protocol\":\"TCP\"}": { + "f:port": {}, + "f:targetPort": {}, + "f:name": {}, + ".": {}, + "f:protocol": {} + }, + ".": {}, + "k:{\"port\":8000,\"protocol\":\"TCP\"}": { + ".": {}, + "f:protocol": {}, + "f:port": {}, + "f:name": {}, + "f:targetPort": {} + } + }, + "f:selector": { + "f:gpwsman": {}, + "f:workspaceID": {}, + ".": {} + }, + "f:sessionAffinity": {} + }, + "f:metadata": { + "f:labels": { + "f:gpwsman": {}, + ".": {}, + "f:serviceType": {}, + "f:workspaceID": {}, + "f:metaID": {} + }, + "f:annotations": { + ".": {}, + "f:gitpod/port-url-31997": {}, + "f:gitpod/port-url-8000": {} + } + } + } + } + ], + "finalizers": [ + "foregroundDeletion" + ], + "namespace": "default", + "deletionGracePeriodSeconds": 0, + "resourceVersion": "18667294", + "creationTimestamp": "2021-08-19T05:14:19Z" + }, + "spec": { + "ports": [ + { + "protocol": "TCP", + "name": "p8000-private", + "targetPort": 8000, + "port": 8000 + }, + { + "protocol": "TCP", + "targetPort": 31997, + "name": "p31997-private", + "port": 31997 + } + ], + "clusterIPs": [ + "10.112.148.72" + ], + "type": "ClusterIP", + "sessionAffinity": "None", + "selector": { + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "gpwsman": "true" + }, + "clusterIP": "10.112.148.72" + }, + "apiVersion": "v1", + "kind": "Service" + }, + "theiaService": { + "kind": "Service", + "metadata": { + "managedFields": [ + { + "time": "2021-08-19T05:14:19Z", + "manager": "ws-manager", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:workspaceID": {}, + "f:workspaceType": {}, + "f:metaID": {}, + "f:gpwsman": {}, + "f:headless": {}, + "f:app": {}, + "f:owner": {}, + "f:component": {} + } + }, + "f:spec": { + "f:type": {}, + "f:sessionAffinity": {}, + "f:selector": { + ".": {}, + "f:app": {}, + "f:workspaceID": {}, + "f:workspaceType": {}, + "f:metaID": {}, + "f:component": {}, + "f:gpwsman": {}, + "f:owner": {}, + "f:headless": {} + }, + "f:ports": { + ".": {}, + "k:{\"port\":23000,\"protocol\":\"TCP\"}": { + "f:name": {}, + ".": {}, + "f:port": {}, + "f:protocol": {}, + "f:targetPort": {} + }, + "k:{\"port\":22999,\"protocol\":\"TCP\"}": { + "f:name": {}, + "f:targetPort": {}, + "f:port": {}, + "f:protocol": {}, + ".": {} + } + } + } + }, + "apiVersion": "v1", + "operation": "Update" + } + ], + "finalizers": [ + "foregroundDeletion" + ], + "deletionGracePeriodSeconds": 0, + "resourceVersion": "18667290", + "deletionTimestamp": "2021-08-19T05:14:53Z", + "name": "ws-purple-raven-cu9cj532-theia", + "uid": "cb3f0763-4a16-4d2c-a06d-8d6bf83aeb0e", + "labels": { + "headless": "false", + "metaID": "purple-raven-cu9cj532", + "owner": "00000000-0000-0000-0000-000000000000", + "component": "workspace", + "workspaceType": "regular", + "gpwsman": "true", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "app": "gitpod" + }, + "creationTimestamp": "2021-08-19T05:14:19Z", + "namespace": "default" + }, + "spec": { + "ports": [ + { + "name": "ide", + "targetPort": 23000, + "port": 23000, + "protocol": "TCP" + }, + { + "targetPort": 22999, + "name": "supervisor", + "port": 22999, + "protocol": "TCP" + } + ], + "clusterIP": "10.112.150.21", + "sessionAffinity": "None", + "clusterIPs": [ + "10.112.150.21" + ], + "selector": { + "workspaceType": "regular", + "component": "workspace", + "app": "gitpod", + "metaID": "purple-raven-cu9cj532", + "gpwsman": "true", + "owner": "00000000-0000-0000-0000-000000000000", + "workspaceID": "48f13cc4-6311-48c2-950a-4b7ddedc3037", + "headless": "false" + }, + "type": "ClusterIP" + }, + "status": { + "loadBalancer": {} + }, + "apiVersion": "v1" + }, + "events": [ + { + "lastTimestamp": "2021-08-19T05:14:19Z", + "message": "Placed pod [default/ws-48f13cc4-6311-48c2-950a-4b7ddedc3037] on gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s\n", + "eventTime": null, + "firstTimestamp": "2021-08-19T05:14:19Z", + "type": "Normal", + "count": 1, + "reportingInstance": "", + "source": { + "component": "workspace-scheduler" + }, + "metadata": { + "managedFields": [ + { + "apiVersion": "v1", + "fieldsV1": { + "f:lastTimestamp": {}, + "f:source": { + "f:component": {} + }, + "f:reason": {}, + "f:type": {}, + "f:message": {}, + "f:firstTimestamp": {}, + "f:count": {}, + "f:involvedObject": { + "f:name": {}, + "f:kind": {}, + "f:namespace": {}, + "f:uid": {} + }, + "f:metadata": { + "f:generateName": {} + } + }, + "manager": "ws-scheduler", + "operation": "Update", + "fieldsType": "FieldsV1", + "time": "2021-08-19T05:14:19Z" + } + ], + "generateName": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037 - scheduled", + "namespace": "default", + "creationTimestamp": "2021-08-19T05:14:19Z", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037 - scheduledvd7jh", + "uid": "f24bc657-b104-43a8-b820-bc37a10bbf70", + "resourceVersion": "1030986" + }, + "reportingComponent": "", + "reason": "Scheduled", + "involvedObject": { + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "kind": "Pod", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "namespace": "default" + } + }, + { + "lastTimestamp": "2021-08-19T05:14:20Z", + "involvedObject": { + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "apiVersion": "v1", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "resourceVersion": "18666899", + "namespace": "default", + "kind": "Pod", + "fieldPath": "spec.containers{workspace}" + }, + "message": "Pulling image \"reg.gitpod.io:31001/remote/48f13cc4-6311-48c2-950a-4b7ddedc3037\"", + "reportingInstance": "", + "eventTime": null, + "reason": "Pulling", + "metadata": { + "creationTimestamp": "2021-08-19T05:14:20Z", + "managedFields": [ + { + "fieldsV1": { + "f:lastTimestamp": {}, + "f:reason": {}, + "f:type": {}, + "f:message": {}, + "f:firstTimestamp": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:involvedObject": { + "f:resourceVersion": {}, + "f:uid": {}, + "f:kind": {}, + "f:fieldPath": {}, + "f:namespace": {}, + "f:name": {}, + "f:apiVersion": {} + }, + "f:count": {} + }, + "fieldsType": "FieldsV1", + "operation": "Update", + "manager": "kubelet", + "time": "2021-08-19T05:14:20Z", + "apiVersion": "v1" + } + ], + "resourceVersion": "1030987", + "namespace": "default", + "uid": "c6a43840-2aae-4c68-9fb3-581194ed1a02", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3f46a41eb0" + }, + "reportingComponent": "", + "count": 1, + "firstTimestamp": "2021-08-19T05:14:20Z", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s" + }, + "type": "Normal" + }, + { + "involvedObject": { + "fieldPath": "spec.containers{workspace}", + "apiVersion": "v1", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "namespace": "default", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "resourceVersion": "18666899", + "kind": "Pod" + }, + "reason": "Pulled", + "type": "Normal", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s" + }, + "message": "Successfully pulled image \"reg.gitpod.io:31001/remote/48f13cc4-6311-48c2-950a-4b7ddedc3037\" in 2.352836471s", + "lastTimestamp": "2021-08-19T05:14:22Z", + "reportingInstance": "", + "count": 1, + "reportingComponent": "", + "eventTime": null, + "metadata": { + "uid": "10e83dc8-795e-4e4d-89ef-acc2577911db", + "managedFields": [ + { + "operation": "Update", + "apiVersion": "v1", + "time": "2021-08-19T05:14:22Z", + "manager": "kubelet", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:message": {}, + "f:count": {}, + "f:firstTimestamp": {}, + "f:lastTimestamp": {}, + "f:type": {}, + "f:involvedObject": { + "f:name": {}, + "f:resourceVersion": {}, + "f:fieldPath": {}, + "f:apiVersion": {}, + "f:kind": {}, + "f:uid": {}, + "f:namespace": {} + }, + "f:reason": {} + } + } + ], + "resourceVersion": "1030990", + "namespace": "default", + "creationTimestamp": "2021-08-19T05:14:22Z", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3fd2e1ffd6" + }, + "firstTimestamp": "2021-08-19T05:14:22Z" + }, + { + "message": "Created container workspace", + "firstTimestamp": "2021-08-19T05:14:22Z", + "metadata": { + "namespace": "default", + "uid": "60a3085b-27a2-4ca7-ab52-848de06b1cba", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3fd6df31e1", + "creationTimestamp": "2021-08-19T05:14:22Z", + "managedFields": [ + { + "fieldsType": "FieldsV1", + "time": "2021-08-19T05:14:22Z", + "apiVersion": "v1", + "operation": "Update", + "fieldsV1": { + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:reason": {}, + "f:firstTimestamp": {}, + "f:involvedObject": { + "f:namespace": {}, + "f:kind": {}, + "f:apiVersion": {}, + "f:fieldPath": {}, + "f:uid": {}, + "f:resourceVersion": {}, + "f:name": {} + }, + "f:lastTimestamp": {}, + "f:type": {}, + "f:message": {}, + "f:count": {} + }, + "manager": "kubelet" + } + ], + "resourceVersion": "1030991" + }, + "eventTime": null, + "lastTimestamp": "2021-08-19T05:14:22Z", + "type": "Normal", + "reportingInstance": "", + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s" + }, + "count": 1, + "reason": "Created", + "reportingComponent": "", + "involvedObject": { + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "namespace": "default", + "resourceVersion": "18666899", + "fieldPath": "spec.containers{workspace}", + "kind": "Pod", + "apiVersion": "v1" + } + }, + { + "lastTimestamp": "2021-08-19T05:14:22Z", + "type": "Normal", + "reason": "Started", + "reportingInstance": "", + "reportingComponent": "", + "eventTime": null, + "message": "Started container workspace", + "firstTimestamp": "2021-08-19T05:14:22Z", + "involvedObject": { + "namespace": "default", + "kind": "Pod", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "apiVersion": "v1", + "resourceVersion": "18666899", + "fieldPath": "spec.containers{workspace}" + }, + "count": 1, + "metadata": { + "resourceVersion": "1030992", + "creationTimestamp": "2021-08-19T05:14:22Z", + "uid": "edf8af51-2c6c-4af6-a6e9-bd65183051ae", + "namespace": "default", + "managedFields": [ + { + "operation": "Update", + "apiVersion": "v1", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:involvedObject": { + "f:namespace": {}, + "f:kind": {}, + "f:uid": {}, + "f:apiVersion": {}, + "f:fieldPath": {}, + "f:resourceVersion": {}, + "f:name": {} + }, + "f:message": {}, + "f:source": { + "f:host": {}, + "f:component": {} + }, + "f:reason": {}, + "f:firstTimestamp": {}, + "f:lastTimestamp": {}, + "f:count": {}, + "f:type": {} + }, + "manager": "kubelet", + "time": "2021-08-19T05:14:22Z" + } + ], + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d3fdde57fd8" + }, + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s" + } + }, + { + "message": "Readiness probe failed: Get \"http://10.4.12.227:22999/_supervisor/v1/status/content/wait/true\": dial tcp 10.4.12.227:22999: connect: connection refused", + "reportingInstance": "", + "firstTimestamp": "2021-08-19T05:14:24Z", + "lastTimestamp": "2021-08-19T05:14:44Z", + "count": 21, + "source": { + "component": "kubelet", + "host": "gke-gp-prod-ws-us14-us-workspace-pool-67d93ed3-l67s" + }, + "metadata": { + "managedFields": [ + { + "apiVersion": "v1", + "fieldsV1": { + "f:reason": {}, + "f:source": { + "f:component": {}, + "f:host": {} + }, + "f:count": {}, + "f:lastTimestamp": {}, + "f:firstTimestamp": {}, + "f:message": {}, + "f:involvedObject": { + "f:namespace": {}, + "f:fieldPath": {}, + "f:apiVersion": {}, + "f:resourceVersion": {}, + "f:uid": {}, + "f:name": {}, + "f:kind": {} + }, + "f:type": {} + }, + "time": "2021-08-19T05:14:24Z", + "fieldsType": "FieldsV1", + "operation": "Update", + "manager": "kubelet" + } + ], + "resourceVersion": "1031021", + "namespace": "default", + "uid": "e87b9154-cbcc-429f-8794-e94711ff7719", + "creationTimestamp": "2021-08-19T05:14:24Z", + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037.169c9d4052984760" + }, + "type": "Warning", + "involvedObject": { + "name": "ws-48f13cc4-6311-48c2-950a-4b7ddedc3037", + "fieldPath": "spec.containers{workspace}", + "namespace": "default", + "resourceVersion": "18666899", + "uid": "c2b82229-a63c-433f-9c80-d5fae3a34d45", + "apiVersion": "v1", + "kind": "Pod" + }, + "reason": "Unhealthy", + "eventTime": null, + "reportingComponent": "" + } + ] +} \ No newline at end of file