MCPcopy Index your code
hub / github.com/docker/cli / convertServiceSecrets

Function convertServiceSecrets

cli/compose/convert/service.go:245–281  ·  view source on GitHub ↗

TODO: fix secrets API so that SecretAPIClient is not required here

(
	ctx context.Context,
	apiClient client.SecretAPIClient,
	namespace Namespace,
	secrets []composetypes.ServiceSecretConfig,
	secretSpecs map[string]composetypes.SecretConfig,
)

Source from the content-addressed store, hash-verified

243
244// TODO: fix secrets API so that SecretAPIClient is not required here
245func convertServiceSecrets(
246 ctx context.Context,
247 apiClient client.SecretAPIClient,
248 namespace Namespace,
249 secrets []composetypes.ServiceSecretConfig,
250 secretSpecs map[string]composetypes.SecretConfig,
251) ([]*swarm.SecretReference, error) {
252 lookup := func(key string) (composetypes.FileObjectConfig, error) {
253 secretSpec, exists := secretSpecs[key]
254 if !exists {
255 return composetypes.FileObjectConfig{}, fmt.Errorf("undefined secret %q", key)
256 }
257 return composetypes.FileObjectConfig(secretSpec), nil
258 }
259
260 refs := make([]*swarm.SecretReference, 0, len(secrets))
261 for _, secret := range secrets {
262 obj, err := convertFileObject(namespace, composetypes.FileReferenceConfig(secret), lookup)
263 if err != nil {
264 return nil, err
265 }
266
267 file := swarm.SecretReferenceFileTarget(obj.File)
268 refs = append(refs, &swarm.SecretReference{
269 File: &file,
270 SecretName: obj.Name,
271 })
272 }
273
274 secrs, err := servicecli.ParseSecrets(ctx, apiClient, refs)
275 if err != nil {
276 return nil, err
277 }
278 // sort to ensure idempotence (don't restart services just because the entries are in different order)
279 sort.SliceStable(secrs, func(i, j int) bool { return secrs[i].SecretName < secrs[j].SecretName })
280 return secrs, err
281}
282
283// convertServiceConfigObjs takes an API client, a namespace, a ServiceConfig,
284// and a set of compose Config specs, and creates the swarm ConfigReferences

Callers 2

ServicesFunction · 0.85

Calls 1

convertFileObjectFunction · 0.85

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…