func remoteNamespacedConfigProvider()

in internal/config/plugin/client.go [16:46]


func remoteNamespacedConfigProvider(
	namespace string,
	name string,
	impl Interface,
) config.Provider {
	return config.Provide[ResolveRequest](
		fmt.Sprintf("%s/%s", namespace, name),
		func(
			ctx context.Context,
			target target.Target,
			userInput map[string]any,
		) (ResolveRequest, error) {
			kubeconfig, _ := target.GetKubeconfig()
			rv := ResolveRequest{
				Name:             name,
				TargetKubeconfig: kubeconfig,
				UserInput:        userInput,
			}

			deadline, hasDeadline := ctx.Deadline()
			if hasDeadline {
				rv.ContextDeadlineInUnixNano = deadline.UnixNano()
			}

			return rv, nil
		},
		func(ctx context.Context, target target.Target, params ResolveRequest) (string, error) {
			return impl.Resolve(params)
		},
	)
}