Skip to content

Commit 5aad4a2

Browse files
committed
show secrets and configs in service inspect --pretty
1 parent 9d7ad9f commit 5aad4a2

File tree

3 files changed

+76
-2
lines changed

3 files changed

+76
-2
lines changed

cli/command/service/formatter.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,14 +129,26 @@ Mounts:
129129
{{- if .Configs}}
130130
Configs:
131131
{{- range $config := .Configs }}
132-
Target: {{$config.File.Name}}
132+
Target: {{ if $config.File }}{{$config.File.Name}}{{ else }}[runtime]{{ end }}
133133
Source: {{$config.ConfigName}}
134+
ID: {{$config.ConfigID}}
135+
{{- if $config.File }}
136+
UID: {{$config.File.UID}}
137+
GID: {{$config.File.GID}}
138+
Mode: {{$config.File.Mode}}
139+
{{- end }}
134140
{{- end }}{{ end }}
135141
{{- if .Secrets }}
136142
Secrets:
137143
{{- range $secret := .Secrets }}
138-
Target: {{$secret.File.Name}}
144+
Target: {{ if $secret.File }}{{$secret.File.Name}}{{ else }}[runtime]{{ end }}
139145
Source: {{$secret.SecretName}}
146+
ID: {{$secret.SecretID}}
147+
{{- if $secret.File }}
148+
UID: {{$secret.File.UID}}
149+
GID: {{$secret.File.GID}}
150+
Mode: {{$secret.File.Mode}}
151+
{{- end }}
140152
{{- end }}{{ end }}
141153
{{- if .HasLogDriver }}
142154
Log Driver:

cli/command/service/inspect_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,4 +193,58 @@ func TestPrettyPrintWithConfigsAndSecrets(t *testing.T) {
193193
assert.Check(t, is.Contains(s, "Configs:"), "Pretty print missing configs")
194194
assert.Check(t, is.Contains(s, "Secrets:"), "Pretty print missing secrets")
195195
assert.Check(t, is.Contains(s, "Healthcheck:"), "Pretty print missing healthcheck")
196+
assert.Check(t, is.Contains(s, "configtest.conf"), "Pretty print missing config name")
197+
assert.Check(t, is.Contains(s, "mtc3i44r1awdoziy2iceg73z8"), "Pretty print missing config ID")
198+
assert.Check(t, is.Contains(s, "secrettest.conf"), "Pretty print missing secret name")
199+
assert.Check(t, is.Contains(s, "3hv39ehbbb4hdozo7spod9ftn"), "Pretty print missing secret ID")
200+
}
201+
202+
func TestPrettyPrintWithRuntimeConfig(t *testing.T) {
203+
b := new(bytes.Buffer)
204+
endpointSpec := &swarm.EndpointSpec{Mode: "vip"}
205+
two := uint64(2)
206+
207+
s := swarm.Service{
208+
ID: "runtimeconfigservice",
209+
Spec: swarm.ServiceSpec{
210+
Annotations: swarm.Annotations{Name: "runtime_svc"},
211+
TaskTemplate: swarm.TaskSpec{
212+
ContainerSpec: &swarm.ContainerSpec{
213+
Image: "foo/bar:latest",
214+
Configs: []*swarm.ConfigReference{
215+
{
216+
ConfigID: "abc123",
217+
ConfigName: "my-runtime-config",
218+
Runtime: &swarm.ConfigReferenceRuntimeTarget{},
219+
},
220+
},
221+
},
222+
},
223+
Mode: swarm.ServiceMode{
224+
Replicated: &swarm.ReplicatedService{Replicas: &two},
225+
},
226+
EndpointSpec: endpointSpec,
227+
},
228+
Endpoint: swarm.Endpoint{Spec: *endpointSpec},
229+
}
230+
231+
ctx := formatter.Context{
232+
Output: b,
233+
Format: newFormat("pretty"),
234+
}
235+
236+
err := inspectFormatWrite(ctx, []string{"runtimeconfigservice"},
237+
func(ref string) (any, []byte, error) {
238+
return s, nil, nil
239+
},
240+
func(ref string) (any, []byte, error) {
241+
return network.Summary{}, nil, nil
242+
},
243+
)
244+
assert.NilError(t, err)
245+
output := b.String()
246+
assert.Check(t, is.Contains(output, "Configs:"), "Pretty print missing configs")
247+
assert.Check(t, is.Contains(output, "[runtime]"), "Pretty print should show [runtime] for configs without File target")
248+
assert.Check(t, is.Contains(output, "my-runtime-config"), "Pretty print missing runtime config name")
249+
assert.Check(t, is.Contains(output, "abc123"), "Pretty print missing runtime config ID")
196250
}

cli/command/service/testdata/service-inspect-pretty.golden

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,17 @@ ContainerSpec:
1111
Configs:
1212
Target: /configtest.conf
1313
Source: configtest.conf
14+
ID: mtc3i44r1awdoziy2iceg73z8
15+
UID:
16+
GID:
17+
Mode: ----------
1418
Secrets:
1519
Target: /secrettest.conf
1620
Source: secrettest.conf
21+
ID: 3hv39ehbbb4hdozo7spod9ftn
22+
UID:
23+
GID:
24+
Mode: ----------
1725
Log Driver:
1826
Name: driver
1927
LogOpts:

0 commit comments

Comments
 (0)