|
|
|
We needed to update the local path provisioner that comes with k3s so it used `/data` on kubekorner instead of the default in `/var/lib/rancher/k3s/storage`. This configuration is stored in a ConfigMap called `local-path-config` in a key called `config.json`.
|
|
|
|
|
|
|
|
The original ConfigMap:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ kubectl get -n kube-system cm/local-path-config -o yaml
|
|
|
|
apiVersion: v1
|
|
|
|
data:
|
|
|
|
config.json: |-
|
|
|
|
{
|
|
|
|
"nodePathMap":[
|
|
|
|
{
|
|
|
|
"node":"DEFAULT_PATH_FOR_NON_LISTED_NODES",
|
|
|
|
"paths":["/var/lib/rancher/k3s/storage"]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
kind: ConfigMap
|
|
|
|
metadata:
|
|
|
|
annotations:
|
|
|
|
objectset.rio.cattle.io/applied: '{"apiVersion":"v1","data":{"config.json":"{\n \"nodePathMap\":[\n {\n \"node\":\"DEFAULT_PATH_FOR_NON_LISTED_NODES\",\n \"paths\":[\"/var/lib/rancher/k3s/storage\"]\n }\n ]\n}"},"kind":"ConfigMap","metadata":{"annotations":{"objectset.rio.cattle.io/id":"","objectset.rio.cattle.io/owner-gvk":"k3s.cattle.io/v1,
|
|
|
|
Kind=Addon","objectset.rio.cattle.io/owner-name":"local-storage","objectset.rio.cattle.io/owner-namespace":"kube-system"},"labels":{"objectset.rio.cattle.io/hash":"183f35c65ffbc3064603f43f1580d8c68a2dabd4"},"name":"local-path-config","namespace":"kube-system"}}'
|
|
|
|
objectset.rio.cattle.io/id: ""
|
|
|
|
objectset.rio.cattle.io/owner-gvk: k3s.cattle.io/v1, Kind=Addon
|
|
|
|
objectset.rio.cattle.io/owner-name: local-storage
|
|
|
|
objectset.rio.cattle.io/owner-namespace: kube-system
|
|
|
|
creationTimestamp: "2020-05-28T15:36:43Z"
|
|
|
|
labels:
|
|
|
|
objectset.rio.cattle.io/hash: 183f35c65ffbc3064603f43f1580d8c68a2dabd4
|
|
|
|
managedFields:
|
|
|
|
- apiVersion: v1
|
|
|
|
fieldsType: FieldsV1
|
|
|
|
fieldsV1:
|
|
|
|
f:data:
|
|
|
|
.: {}
|
|
|
|
f:config.json: {}
|
|
|
|
f:metadata:
|
|
|
|
f:annotations:
|
|
|
|
.: {}
|
|
|
|
f:objectset.rio.cattle.io/applied: {}
|
|
|
|
f:objectset.rio.cattle.io/id: {}
|
|
|
|
f:objectset.rio.cattle.io/owner-gvk: {}
|
|
|
|
f:objectset.rio.cattle.io/owner-name: {}
|
|
|
|
f:objectset.rio.cattle.io/owner-namespace: {}
|
|
|
|
f:labels:
|
|
|
|
.: {}
|
|
|
|
f:objectset.rio.cattle.io/hash: {}
|
|
|
|
manager: k3s
|
|
|
|
operation: Update
|
|
|
|
time: "2020-05-28T15:36:43Z"
|
|
|
|
name: local-path-config
|
|
|
|
namespace: kube-system
|
|
|
|
resourceVersion: "180"
|
|
|
|
selfLink: /api/v1/namespaces/kube-system/configmaps/local-path-config
|
|
|
|
uid: 65a44fba-67b9-4e16-83fb-a7e6e4e15b24
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
To update with the file stored in `admin/k3s-local-path-config.json`:
|
|
|
|
|
|
|
|
```
|
|
|
|
echo -e "data:\n config.json: |-" > tmp.yaml
|
|
|
|
cat k3s-local-path-config.json | awk '{ print " " $0 }' >> tmp.yaml
|
|
|
|
# dry run
|
|
|
|
kubectl patch -n kube-system cm/local-path-config --type merge --patch "$(cat tmp.yaml)" --dry-run=client
|
|
|
|
# not dry run
|
|
|
|
kubectl patch -n kube-system cm/local-path-config --type merge --patch "$(cat tmp.yaml)"
|
|
|
|
```
|
|
|
|
|
|
|
|
Verify:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ kubectl get -n kube-system cm/local-path-config -o yaml
|
|
|
|
apiVersion: v1
|
|
|
|
data:
|
|
|
|
config.json: |-
|
|
|
|
{
|
|
|
|
"nodePathMap":[
|
|
|
|
{
|
|
|
|
"node":"DEFAULT_PATH_FOR_NON_LISTED_NODES",
|
|
|
|
"paths":["/var/lib/rancher/k3s/storage"]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"node":"kubekorner.ssec.wisc.edu",
|
|
|
|
"paths":["/data"]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"node":"presto.ssec.wisc.edu",
|
|
|
|
"paths":["/data"]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
kind: ConfigMap
|
|
|
|
metadata:
|
|
|
|
annotations:
|
|
|
|
objectset.rio.cattle.io/applied: '{"apiVersion":"v1","data":{"config.json":"{\n \"nodePathMap\":[\n {\n \"node\":\"DEFAULT_PATH_FOR_NON_LISTED_NODES\",\n \"paths\":[\"/var/lib/rancher/k3s/storage\"]\n }\n ]\n}"},"kind":"ConfigMap","metadata":{"annotations":{"objectset.rio.cattle.io/id":"","objectset.rio.cattle.io/owner-gvk":"k3s.cattle.io/v1,
|
|
|
|
Kind=Addon","objectset.rio.cattle.io/owner-name":"local-storage","objectset.rio.cattle.io/owner-namespace":"kube-system"},"labels":{"objectset.rio.cattle.io/hash":"183f35c65ffbc3064603f43f1580d8c68a2dabd4"},"name":"local-path-config","namespace":"kube-system"}}'
|
|
|
|
objectset.rio.cattle.io/id: ""
|
|
|
|
objectset.rio.cattle.io/owner-gvk: k3s.cattle.io/v1, Kind=Addon
|
|
|
|
objectset.rio.cattle.io/owner-name: local-storage
|
|
|
|
objectset.rio.cattle.io/owner-namespace: kube-system
|
|
|
|
creationTimestamp: "2020-05-28T15:36:43Z"
|
|
|
|
labels:
|
|
|
|
objectset.rio.cattle.io/hash: 183f35c65ffbc3064603f43f1580d8c68a2dabd4
|
|
|
|
managedFields:
|
|
|
|
- apiVersion: v1
|
|
|
|
fieldsType: FieldsV1
|
|
|
|
fieldsV1:
|
|
|
|
f:data: {}
|
|
|
|
f:metadata:
|
|
|
|
f:annotations:
|
|
|
|
.: {}
|
|
|
|
f:objectset.rio.cattle.io/applied: {}
|
|
|
|
f:objectset.rio.cattle.io/id: {}
|
|
|
|
f:objectset.rio.cattle.io/owner-gvk: {}
|
|
|
|
f:objectset.rio.cattle.io/owner-name: {}
|
|
|
|
f:objectset.rio.cattle.io/owner-namespace: {}
|
|
|
|
f:labels:
|
|
|
|
.: {}
|
|
|
|
f:objectset.rio.cattle.io/hash: {}
|
|
|
|
manager: k3s
|
|
|
|
operation: Update
|
|
|
|
time: "2020-05-28T15:36:43Z"
|
|
|
|
- apiVersion: v1
|
|
|
|
fieldsType: FieldsV1
|
|
|
|
fieldsV1:
|
|
|
|
f:data:
|
|
|
|
f:config.json: {}
|
|
|
|
manager: kubectl
|
|
|
|
operation: Update
|
|
|
|
time: "2020-07-10T21:01:24Z"
|
|
|
|
name: local-path-config
|
|
|
|
namespace: kube-system
|
|
|
|
resourceVersion: "2644738"
|
|
|
|
selfLink: /api/v1/namespaces/kube-system/configmaps/local-path-config
|
|
|
|
uid: 65a44fba-67b9-4e16-83fb-a7e6e4e15b24
|
|
|
|
``` |
|
|
|
\ No newline at end of file |