|
16 | 16 |
|
17 | 17 | from argparse import Namespace
|
18 | 18 |
|
| 19 | +import yaml |
19 | 20 | from kubernetes import client as k8s_client
|
20 | 21 | from kubernetes.client import ApiClient
|
21 | 22 | from kubernetes.client.rest import ApiException
|
@@ -72,9 +73,13 @@ def storage_create(args: Namespace) -> None:
|
72 | 73 | filestore_client.create_instance(
|
73 | 74 | vol=args.vol, size=args.size, tier=args.tier, network=filestore_network
|
74 | 75 | )
|
75 |
| - manifest = filestore_client.manifest( |
76 |
| - args.name, args.vol, args.access_mode, filestore_network |
77 |
| - ) |
| 76 | + if args.manifest is not None: |
| 77 | + with open(args.manifest, "r", encoding="utf-8") as f: |
| 78 | + manifest = list(yaml.safe_load_all(f)) |
| 79 | + else: |
| 80 | + manifest = filestore_client.manifest( |
| 81 | + args.name, args.vol, args.access_mode, filestore_network |
| 82 | + ) |
78 | 83 |
|
79 | 84 | k8s_api_client = setup_k8s_env(args)
|
80 | 85 | create_storage_crds(k8s_api_client, args, manifest)
|
@@ -137,22 +142,30 @@ def storage_attach(args: Namespace) -> None:
|
137 | 142 | xpk_print(f"Filestore instance {args.instance} does not exists.")
|
138 | 143 | xpk_exit(1)
|
139 | 144 |
|
140 |
| - filestore_network = get_cluster_network(args) |
141 |
| - manifest = filestore_client.manifest( |
142 |
| - args.name, args.vol, args.access_mode, filestore_network |
143 |
| - ) |
| 145 | + if args.manifest is not None: |
| 146 | + with open(args.manifest, "r", encoding="utf-8") as f: |
| 147 | + manifest = list(yaml.safe_load_all(f)) |
| 148 | + else: |
| 149 | + filestore_network = get_cluster_network(args) |
| 150 | + manifest = filestore_client.manifest( |
| 151 | + args.name, args.vol, args.access_mode, filestore_network |
| 152 | + ) |
144 | 153 |
|
145 | 154 | else: # args.type == GCS_FUSE_TYPE:
|
146 |
| - if args.size is None: |
| 155 | + if args.manifest is None and args.size is None: |
147 | 156 | xpk_print("--size is required when attaching gcsfuse storage.")
|
148 | 157 | xpk_exit(1)
|
149 | 158 |
|
150 | 159 | if args.bucket is None:
|
151 | 160 | args.bucket = args.name
|
152 | 161 |
|
153 |
| - manifest = gcsfuse.manifest( |
154 |
| - name=args.name, bucket=args.bucket, size=args.size |
155 |
| - ) |
| 162 | + if args.manifest is not None: |
| 163 | + with open(args.manifest, "r", encoding="utf-8") as f: |
| 164 | + manifest = list(yaml.safe_load_all(f)) |
| 165 | + else: |
| 166 | + manifest = gcsfuse.manifest( |
| 167 | + name=args.name, bucket=args.bucket, size=args.size |
| 168 | + ) |
156 | 169 |
|
157 | 170 | k8s_api_client = setup_k8s_env(args)
|
158 | 171 | create_storage_crds(k8s_api_client, args, manifest)
|
|
0 commit comments