{"id":34069,"date":"2020-05-19T11:35:53","date_gmt":"2020-05-19T02:35:53","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kr\/?p=810"},"modified":"2020-05-19T11:35:53","modified_gmt":"2020-05-19T02:35:53","slug":"using-kubernetes-from-goland-ko","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/ko\/2020\/05\/19\/using-kubernetes-from-goland-ko\/","title":{"rendered":"GoLand\uc5d0\uc11c Kubernetes \uc0ac\uc6a9\ud558\uae30"},"content":{"rendered":"Docker, Docker Compose \ub610\ub294 Kubernetes\ub97c \uc0ac\uc6a9\ud558\uc5ec Go \uc11c\ube44\uc2a4\ub97c \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc5d0 \uad00\ud55c \uc2dc\ub9ac\uc988 \uc911 \ub9c8\uc9c0\ub9c9 \uae00\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc5d0\uc11c\ub294 Kubernetes \ud074\ub7ec\uc2a4\ud130\ub97c \uc0ac\uc6a9\ud560 \ub54c \uc2e4\ud589 \ubc0f \ub514\ubc84\uadf8\ud558\ub294 \ubc29\ubc95\uc744 \uc9d1\uc911\uc801\uc73c\ub85c \ub2e4\ub8f0 \uac83\uc785\ub2c8\ub2e4.\r\nKubernetes \ud074\ub7ec\uc2a4\ud130 \uc124\uce58 \ubc0f \uad6c\uc131 \ubc29\ubc95\uc740 \ub2e4\ub8e8\uc9c0 \uc54a\uc9c0\ub9cc \uc774 \uc791\uc5c5\uc740 kubeadm, minikube, microk8s\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Windows\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 Windows\uc6a9 Docker Desktop\uc5d0 \ub0b4\uc7a5\ub41cKubernetes \uc9c0\uc6d0\uc774 \ud568\uaed8 \uc81c\uacf5\ub429\ub2c8\ub2e4. Raspberry Pi 4\uc640 \uac19\uc774 ARM \uce69 \uae30\ubc18 \ud50c\ub7ab\ud3fc\uc744 \ub300\uc2e0 \uc0ac\uc6a9\ud558\ub824\ub294 \uacbd\uc6b0 k3s \ub4f1\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\ub610\ud55c Kubernetes \ud50c\ub7ec\uadf8\uc778\uc740 IDE\uc5d0\uc11c \ubc88\ub4e4\ub85c \uc81c\uacf5\ub418\uc9c0 \uc54a\uc73c\ubbc0\ub85c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \uc124\uce58\ud574\uc57c \ud569\ub2c8\ub2e4. \uc124\uce58\ud558\ub824\uba74 Settings(\uc124\uc815)\/Preferences(\ud658\uacbd \uc124\uc815) | Plugins(\ud50c\ub7ec\uadf8\uc778) | Marketplace(\ub9c8\ucf13\ud50c\ub808\uc774\uc2a4)\ub85c \uc774\ub3d9\ud558\uc5ec Kubernetes\uc744 \uac80\uc0c9\ud558\uba74 \ub429\ub2c8\ub2e4.\r\n\r\nIDE\ub97c \ud1b5\ud574 Kubernetes\uc5d0\uc11c \uc11c\ube44\uc2a4 \uc2e4\ud589\r\n\uc9c0\uae08\uae4c\uc9c0 \uc774 \uc2dc\ub9ac\uc988 \uae00\uc744 \uc77d\uc73c\uc168\ub2e4\uba74 \ubaa8\ub4e0 \ucf54\ub4dc\uac00 \ub2e4\uc6b4\ub85c\ub4dc \ubc0f \uc0ac\uc6a9 \uac00\ub2a5\ud558\ub3c4\ub85d \uc81c\uacf5\ub41c\ub2e4\ub294 \uc0ac\uc2e4\uc744 \uc54c\uace0 \uacc4\uc2e4 \uac81\ub2c8\ub2e4. \ub9c8\ucc2c\uac00\uc9c0\ub85c \uc5ec\uae30\uc5d0\uc11c\ub3c4 Kubernetes\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c \ucf54\ub4dc\uac00 \uc81c\uacf5\ub429\ub2c8\ub2e4. \uba3c\uc800 Kubernetes \ube0c\ub79c\uce58\ubd80\ud130 \uc2dc\uc791\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.\r\n\uc5ec\uae30\uc5d0\uc11c\ub294 db.yaml\uacfc web.yaml\uc774\ub77c\ub294 \ub450 \uac00\uc9c0 \ud30c\uc77c\uc744 \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud30c\uc77c\uc740 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c GoLand \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2dc\uc791\ud558\ub294 \ub370 \ud544\uc694\ud55c \ubaa8\ub4e0 \uc815\uc758\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4. \ub610\ud55c \uc774 \ud30c\uc77c\uc5d0\uc11c\ub294 \ud3b8\uc758\uc0c1 Kubernetes\uac00 IDE\uc640 \ub3d9\uc77c\ud55c \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc2e4\ud589\ub418\uace0 \uc788\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.\r\ndb.yaml\uc744 \uc5f4\uc5b4\ubd05\uc2dc\ub2e4.apiVersion: v1\r\nkind: ConfigMap\r\nmetadata:\r\n  name: db-config\r\n  labels:\r\n    dockerdev: db\r\ndata:\r\n  POSTGRES_DB: goland\r\n  POSTGRES_USER: goland\r\n  POSTGRES_PASSWORD: goland\r\n---\r\napiVersion: apps\/v1\r\nkind: StatefulSet\r\nmetadata:\r\n  labels:\r\n    dockerdev: db\r\n  name: db\r\nspec:\r\n  serviceName: dockerdev-db\r\n  selector:\r\n    matchLabels:\r\n      dockerdev: db\r\n  template:\r\n    metadata:\r\n      labels:\r\n        dockerdev: db\r\n    spec:\r\n      containers:\r\n        - name: db\r\n          image: postgres:12.2-alpine\r\n          imagePullPolicy: IfNotPresent\r\n          envFrom:\r\n            - configMapRef:\r\n                name: db-config\r\n          ports:\r\n            - containerPort: 5432\r\n          volumeMounts:\r\n            - name: db-init\r\n              mountPath: \/docker-entrypoint-initdb.d\/init.sql\r\n              subPath: init.sql\r\n      volumes:\r\n        -  name: db-init\r\n           hostPath:\r\n             path: \/d\/GoLandProjects\/dockerdev\r\n---\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n  labels:\r\n    dockerdev: db\r\n  name: dockerdev-db-exported\r\nspec:\r\n  type: NodePort\r\n  ports:\r\n    - name: 5432-tcp\r\n      port: 5432\r\n      targetPort: 5432\r\n      nodePort: 30432\r\n  selector:\r\n    dockerdev: db\ucc38\uace0: \uc774 \uc608\uc2dc\ub97c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ud638\uc2a4\ud2b8\uc5d0\uc11c init.sql \ud30c\uc77c\uc758 \uc704\uce58\ub97c \ubcc0\uacbd\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub294 path: \/d\/GoLandProjects\/dockerdev\ub97c \uc774\uc804\uc5d0 \ud504\ub85c\uc81d\ud2b8\ub97c \ubcf5\uc81c\ud55c \uc704\uce58 \uacbd\ub85c\ub85c \ubc14\uafb8\uba74 \ud574\uacb0\ub429\ub2c8\ub2e4.\r\n\uc774 \uc791\uc5c5\uc774 \uc644\ub8cc\ub418\uba74 \ud30c\uc77c \uc0c1\ub2e8\uc758 \uc5d0\ub514\ud130 \uc5ec\ubc31\uc5d0 \uc788\ub294 \ub179\uc0c9 \ud654\uc0b4\ud45c\ub97c \uc0ac\uc6a9\ud558\uc5ec Kubernetes\uc5d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ubc30\ud3ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ubc30\ud3ec\ud558\uba74 StatefulSet\uc774 \uc0dd\uc131\ub418\uace0 \ud3ec\ub4dc \ub0b4\uc5d0\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \uc2e4\ud589\ub429\ub2c8\ub2e4. \uadf8\ub9ac\uace0 Services(\uc11c\ube44\uc2a4) \ub3c4\uad6c \ucc3d\uc774 \ub098\ud0c0\ub098\uace0 \ub9ac\uc18c\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uba85\ub839\uc5b4\uc640 \ud574\ub2f9 \uba85\ub839\uc5b4\uc758 \ucd9c\ub825\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4.\r\nKubernetes \ud074\ub7ec\uc2a4\ud130 \uac1c\uc694\r\nKubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0\ub294 Pods, Deployments, Stateful Sets, Daemon Sets, Jobs, Cron Jobs, Replica Sets, Replication Controllers \ub4f1\uc774 \uc2e4\ud589\ub418\ub294 Workloads \uc815\ubcf4\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.\r\n\r\n\ub610\ud55c \uc11c\ube44\uc2a4 \ubc0f \uc778\uadf8\ub808\uc2a4 \uc9c0\uc810\uc5d0 \uad00\ud55c \ub124\ud2b8\uc6cc\ud06c \uc815\ubcf4\ub3c4 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\r\nConfiguration(\uad6c\uc131) \uc139\uc158\uc5d0\ub294 Namespaces, Nodes, Cluster Roles, Roles, Config Maps, Secrets \uc2e4\ud589\uc5d0 \uad00\ud55c \uc815\ubcf4 \ub4f1 \ud604\uc7ac \ub124\uc784\uc2a4\ud398\uc774\uc2a4 \ub610\ub294 \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub300\ud55c \ubaa8\ub4e0 \uad6c\uc131 \uc815\ubcf4\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.\r\n\r\n\ub9c8\uc9c0\ub9c9\uc73c\ub85c Storage(\uc2a4\ud1a0\ub9ac\uc9c0) \uc139\uc158\uc5d0\ub294 \ud604\uc7ac \uad6c\uc131\uc758 Persistent Volumes, Persistent Volume Claims, Storage Classes\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.\r\n\r\nIDE\ub97c \ud1b5\ud574 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c Go \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc2e4\ud589\r\n\ub3d9\uc77c\ud55c Kubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c Go \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\uc5ec \uadf8 \uc791\ub3d9 \ubc29\uc2dd\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.\r\n\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\ub824\uba74 \uba3c\uc800 \ud574\ub2f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ud3ec\ud568\ub41c Docker \ucee8\ud14c\uc774\ub108\ub97c \ube4c\ub4dc\ud574\uc57c \ud569\ub2c8\ub2e4. \uc608\uc2dc \uc800\uc7a5\uc18c\uc5d0\ub294 build Dockerfile\uc774\ub77c\ub294 \uc2e4\ud589 \uad6c\uc131\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc73c\uba70 \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80\uc5d0\uc11c \ucee8\ud14c\uc774\ub108\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \uc774 \uc2e4\ud589 \uad6c\uc131\uc744 \uba3c\uc800 \uc2e4\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.\r\n\uc774\ubbf8 \uc9d0\uc791\ud558\uc168\uaca0\uc9c0\ub9cc, \uadf8 \ub2e4\uc74c\uc5d0\ub294 \uc774\uc804\uc5d0 db.yaml \ud30c\uc77c\uc5d0\uc11c \uc0ac\uc6a9\ud588\ub358 \ub179\uc0c9 \ud654\uc0b4\ud45c\ub97c \uc774\ubc88\uc5d0\ub294 web.yaml \ud30c\uc77c\uc5d0\uc11c \ub3d9\uc77c\ud558\uac8c \uc0ac\uc6a9\ud558\uc5ec Kubernetes \ub0b4\uc5d0\uc11c Go \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.apiVersion: apps\/v1\r\nkind: Deployment\r\nmetadata:\r\n  labels:\r\n    dockerdev: web\r\n  name: web\r\nspec:\r\n  selector:\r\n    matchLabels:\r\n      dockerdev: web\r\n  template:\r\n    metadata:\r\n      labels:\r\n        dockerdev: web\r\n    spec:\r\n      containers:\r\n        - name: dockerdev-web\r\n          image: dockerdev-web:latest\r\n          imagePullPolicy: Never\r\n          env:\r\n            - name: DD_DB_HOST\r\n              value: \"dockerdev-db-exported\"\r\n          ports:\r\n            - containerPort: 8000\r\n---\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n  labels:\r\n    dockerdev: web\r\n  name: dockerdev-web-exported\r\nspec:\r\n  type: NodePort\r\n  ports:\r\n    - name: 8000-tcp\r\n      port: 8000\r\n      targetPort: 8000\r\n      nodePort: 30800\r\n  selector:\r\n    dockerdev: web\r\n\ud504\ub85c \ud301: HTTP \uc694\uccad \ud30c\uc77c \uc811\uadfc \ubc29\uc2dd\uc744 \uc0ac\uc6a9\ud574 IDE\uc758 \uc694\uccad\uc744 \uc2e4\ud589\ud558\uc5ec \uc11c\ube44\uc2a4\uac00 \uc791\ub3d9 \uc911\uc778\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\r\nKubernetes \uc11c\ube44\uc2a4 \ub514\ubc84\uadf8\r\nGoLand\ub97c \uc0ac\uc6a9\ud558\uc5ec Kubernetes \uc11c\ube44\uc2a4\ub97c \ub514\ubc84\uae45\ud558\ub824\uba74 web.yaml \ud30c\uc77c\uc744 \uc57d\uac04 \ubcc0\uacbd\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubcc0\uacbd \ub0b4\uc6a9\uc740 \uc800\uc7a5\uc18c\uc758 kubernetes-debug \ube0c\ub79c\uce58\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\ubcc0\uacbd \ub0b4\uc6a9\uc740 \uc77c\ubc18 Docker \ucee8\ud14c\uc774\ub108\ub97c \ub514\ubc84\uadf8\ud558\uae30 \uc704\ud574 \ubcc0\uacbd\ud55c \uac83\uacfc \ub9e4\uc6b0 \uc720\uc0ac\ud558\uac8c \uc801\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.\r\n\uba3c\uc800 Dockerfile\uc744 \uc870\uc815\ud55c \ub2e4\uc74c, Run(\uc2e4\ud589) | Run\u2026(\uc2e4\ud589...) | 'build Dockerfile'(Dockerfile \ube4c\ub4dc) \uad6c\uc131\uc744 \uc0ac\uc6a9\ud558\uc5ec \ube4c\ub4dc\ud574\uc57c \ud569\ub2c8\ub2e4.\r\n\uadf8\ub7f0 \ub2e4\uc74c, Run | Debug\u2026(\ub514\ubc84\uadf8...) | Kubernetes Service(Kubernetes \uc11c\ube44\uc2a4)\ub97c \uc0ac\uc6a9\ud558\uba74 Go Remote(Go \uc6d0\uaca9) \ub514\ubc84\uadf8 \uad6c\uc131\uc774 \uc2e4\ud589\ub429\ub2c8\ub2e4.\r\n\r\n\uadf8\ub7ec\uba74 \ub514\ubc84\uac70\uac00 \uc775\uc219\ud55c \ub514\ubc84\uadf8 \ubc29\uc2dd\ub300\ub85c \uc791\ub3d9\ud560 \uac83\uc785\ub2c8\ub2e4.\r\n\uc774\uac83\uc73c\ub85c Docker, Docker Compose, Kubernetes\uc744 \uc0ac\uc6a9\ud558\uc5ec Go \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \uc2e4\ud589 \ubc0f \ub514\ubc84\uadf8\ud558\ub294 \ubc29\ubc95\uc5d0 \uad00\ud55c \uc2dc\ub9ac\uc988\ub97c \ub9c8\uce58\uaca0\uc2b5\ub2c8\ub2e4.\r\n\uc774 \uae00\uc5d0\uc11c\ub294 \uc11c\ube44\uc2a4\ub97c \uc77c\ubc18\uc801\uc778 \ubc29\ubc95\uc73c\ub85c \uc2dc\uc791\ud558\uc9c0 \uc54a\uace0 \ub514\ubc84\uadf8\ud560 \uc218 \uc788\ub3c4\ub85d Kubernetes \ud50c\ub7ec\uadf8\uc778\uc744 \uc0ac\uc6a9\ud574 \ubc30\ud3ec \ud30c\uc77c\uc744 \ud3b8\uc9d1\ud558\ub294 \ubc29\ubc95\uc5d0 \uad00\ud574 \uc124\uba85\ud588\uc2b5\ub2c8\ub2e4.\r\n\uc758\uacac\uc774 \uc788\uc73c\uc2dc\uba74 \uc544\ub798\uc758 \ub313\uae00 \uc139\uc158, \uc774\uc288 \ud2b8\ub798\ucee4 \ub610\ub294 @GoLandIDE \ud2b8\uc717\uc744 \ud1b5\ud574 \uacf5\uc720\ud574 \uc8fc\uc138\uc694.\r\n\r\n\uc774 \uac8c\uc2dc\ubb3c\uc740 Florin P\u0103\u021ban\uc774 \uc791\uc131\ud55c Using Kubernetes from GoLand\ub97c \ubc88\uc5ed\ud55c \uae00\uc785\ub2c8\ub2e4.","protected":false},"excerpt":{"rendered":"Docker, Docker Compose \ub610\ub294 Kubernetes\ub97c \uc0ac\uc6a9\ud558\uc5ec Go \uc11c\ube44\uc2a4\ub97c \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc5d0 \uad00\ud55c \uc2dc\ub9ac\uc988 \uc911 \ub9c8\uc9c0\ub9c9 \uae00\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc5d0\uc11c\ub294 Kubernetes \ud074\ub7ec\uc2a4\ud130\ub97c \uc0ac\uc6a9\ud560 \ub54c \uc2e4\ud589 \ubc0f \ub514\ubc84\uadf8\ud558\ub294 \ubc29\ubc95\uc744 \uc9d1\uc911\uc801\uc73c\ub85c \ub2e4\ub8f0 \uac83\uc785\ub2c8\ub2e4.Kubernetes \ud074\ub7ec\uc2a4\ud130 \uc124\uce58 \ubc0f \uad6c\uc131 \ubc29\ubc95\uc740 \ub2e4\ub8e8\uc9c0 \uc54a\uc9c0\ub9cc \uc774 \uc791\uc5c5\uc740 kubeadm, minikube,","protected":false},"author":{"name":"Jessie Cho","link":"https:\/\/blog.jetbrains.com\/ko\/author\/jessie-chojetbrains-com"},"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[4221],"tags":[5699,5635],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/34069"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=34069"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/34069\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=34069"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=34069"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=34069"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=34069"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}