master
h 43 lines 1.1 KB
Raw
1 /*++
2
3 Copyright (c) Microsoft. All rights reserved.
4
5 Module Name:
6
7 WSLCVolumeMetadata.h
8
9 Abstract:
10
11 JSON schema for WSLC volume metadata stored in Docker volume labels.
12
13 --*/
14
15 #pragma once
16
17 #include "JsonUtils.h"
18
19 namespace wsl::windows::service::wslc {
20
21 // Label key used to store WSLC volume metadata in Docker volume labels.
22 constexpr auto WSLCVolumeMetadataLabel = "com.microsoft.wsl.volume.metadata";
23
24 // Volume driver name for VHD-backed volumes.
25 constexpr auto WSLCVhdVolumeDriver = "vhd";
26
27 // Volume driver name for guest-backed volumes (passthrough to docker's built-in "local" driver).
28 constexpr auto WSLCGuestVolumeDriver = "guest";
29
30 // The level at which a volume exists: "local" (machine level) or "global" (cluster-wide).
31 // Every WSLC volume is machine level.
32 constexpr auto WSLCVolumeScope = "local";
33
34 struct WSLCVolumeMetadata
35 {
36 std::string Driver;
37 std::map<std::string, std::string> DriverOpts;
38 std::map<std::string, std::string> Properties;
39
40 NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(WSLCVolumeMetadata, Driver, DriverOpts, Properties);
41 };
42
43 } // namespace wsl::windows::service::wslc