diff --git a/cmd/ps.go b/cmd/ps.go
index 66ee0200..916773ab 100644
--- a/cmd/ps.go
+++ b/cmd/ps.go
@@ -127,6 +127,17 @@ func (d *DryccCmd) PsDescribe(appID, podID string) error {
 		for _, arg := range containerState.Args {
 			table.Append([]string{"", fmt.Sprintf("- %v", arg)})
 		}
+		// Status/Reason/Message
+		if containerState.Status != "" {
+			table.Append([]string{"Status:", containerState.Status})
+		}
+		if containerState.Reason != "" {
+			table.Append([]string{"Reason:", containerState.Reason})
+		}
+		if containerState.Message != "" {
+			table.Append([]string{"Message:", containerState.Message})
+		}
+
 		// State
 		for key := range containerState.State {
 			table.Append([]string{"State:", key})
diff --git a/cmd/pts.go b/cmd/pts.go
index 7eb106ce..295b6ea3 100644
--- a/cmd/pts.go
+++ b/cmd/pts.go
@@ -140,47 +140,51 @@ func printProcessTypes(d *DryccCmd, appID string, ptypes api.Ptypes) {
 func printProcessTypeDetail(d *DryccCmd, ptypeStates api.PtypeStates, events api.AppEvents) {
 	// table process type
 	tpt := d.getDefaultFormatTable([]string{})
-	for _, containerState := range ptypeStates {
-		// tpt.Append([]string{"Container: " + containerState.Container})
-		// tpt.Append([]string{"Image: " + containerState.Image})
-		tpt.Append([]string{"Container:", containerState.Container})
-		tpt.Append([]string{"Image:", containerState.Image})
-		if len(containerState.Command) != 0 {
+	for _, ptypeState := range ptypeStates {
+		tpt.Append([]string{"Container:", ptypeState.Container})
+		tpt.Append([]string{"Image:", ptypeState.Image})
+		if len(ptypeState.Command) != 0 {
 			tpt.Append([]string{"Command:"})
-			for _, command := range containerState.Command {
+			for _, command := range ptypeState.Command {
 				tpt.Append([]string{"", fmt.Sprintf("- %v", command)})
 			}
 		}
-		if len(containerState.Args) != 0 {
+		if len(ptypeState.Args) != 0 {
 			tpt.Append([]string{"Args:"})
-			for _, arg := range containerState.Args {
+			for _, arg := range ptypeState.Args {
 				tpt.Append([]string{"", fmt.Sprintf("- %v", arg)})
 			}
 		}
-		if containerState.Limits != nil {
+		if ptypeState.Limits != nil {
 			tpt.Append([]string{"Limits:"})
-			for r, q := range containerState.Limits {
+			for r, q := range ptypeState.Limits {
 				tpt.Append([]string{"", fmt.Sprintf("%s %s", r, q)})
 			}
 		}
-		if len(containerState.VolumeMounts) != 0 {
+		if len(ptypeState.VolumeMounts) != 0 {
 			tpt.Append([]string{"Mounts:"})
-			for _, mount := range containerState.VolumeMounts {
+			for _, mount := range ptypeState.VolumeMounts {
 				tpt.Append([]string{"", fmt.Sprintf("%s from %s", mount.MountPath, mount.Name)})
 			}
 		}
-		sp := getHealthcheckString("", "", &containerState.StartupProbe)
+		sp := getHealthcheckString("", "", &ptypeState.StartupProbe)
 		if sp != "" {
 			tpt.Append([]string{"Startup:", strings.TrimSpace(sp)})
 		}
-		lp := getHealthcheckString("", "", &containerState.LivenessProbe)
+		lp := getHealthcheckString("", "", &ptypeState.LivenessProbe)
 		if lp != "" {
 			tpt.Append([]string{"Liveness:", strings.TrimSpace(lp)})
 		}
-		rp := getHealthcheckString("", "", &containerState.ReadinessProbe)
+		rp := getHealthcheckString("", "", &ptypeState.ReadinessProbe)
 		if rp != "" {
 			tpt.Append([]string{"Readiness:", strings.TrimSpace(rp)})
 		}
+		if ptypeState.NodeSelector != nil {
+			tpt.Append([]string{"Node-Selectors:"})
+			for k, v := range ptypeState.NodeSelector {
+				tpt.Append([]string{"", fmt.Sprintf("%s=%s", k, v)})
+			}
+		}
 
 	}
 	tpt.Render()
diff --git a/go.mod b/go.mod
index f47aa05b..7410f068 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22
 require (
 	github.com/containerd/console v1.0.4
 	github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
-	github.com/drycc/controller-sdk-go v0.0.0-20240715005708-f3fdd9e41b77
+	github.com/drycc/controller-sdk-go v0.0.0-20240716030229-3308f6815ac7
 	github.com/drycc/pkg v0.0.0-20240225112316-78fc9239f51f
 	github.com/olekukonko/tablewriter v0.0.5
 	github.com/stretchr/testify v1.9.0
diff --git a/go.sum b/go.sum
index b9e7d238..4dc363f7 100644
--- a/go.sum
+++ b/go.sum
@@ -4,8 +4,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ=
 github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/drycc/controller-sdk-go v0.0.0-20240715005708-f3fdd9e41b77 h1:ETETjyAklTuimZ4itKzo8a6OkHo+fX1ueTa0zn/9h3M=
-github.com/drycc/controller-sdk-go v0.0.0-20240715005708-f3fdd9e41b77/go.mod h1:n6eQe1irJqjwLo/7t9+Dhdv6faSESQN+ATnZRBP3/Uc=
+github.com/drycc/controller-sdk-go v0.0.0-20240716030229-3308f6815ac7 h1:FsfkRvOhAM8JCNstK5gVqcOJHYlEdFNh0YCCU6pB3Vo=
+github.com/drycc/controller-sdk-go v0.0.0-20240716030229-3308f6815ac7/go.mod h1:n6eQe1irJqjwLo/7t9+Dhdv6faSESQN+ATnZRBP3/Uc=
 github.com/drycc/pkg v0.0.0-20240225112316-78fc9239f51f h1:kgjvUQJeAszDoU1Vo4vTTE92KI8Av3JPb6Qn890niXg=
 github.com/drycc/pkg v0.0.0-20240225112316-78fc9239f51f/go.mod h1:n+QxGif6ha9CEoxVnlipxb9IdmerybcUSzTEDFkvjiA=
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
