diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 31b65517d..000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-name: Bug report
-about: Create a bug report to help improve containerd
-title: ''
-labels: kind/bug
-assignees: ''
----
-
-
-
-**Description**
-
-
-
-**Steps to reproduce the issue:**
-1.
-2.
-3.
-
-**Describe the results you received:**
-
-
-**Describe the results you expected:**
-
-
-**What version of containerd are you using:**
-
-```
-$ containerd --version
-
-```
-
-**Any other relevant information (runC version, CRI configuration, OS/Kernel version, etc.):**
-
-
-
-runc --version
-$ runc --version
-
-
-
-
-
-crictl info
-$ crictl info
-
-
-
-
-uname -a
-$ uname -a
-
-
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
new file mode 100644
index 000000000..76f9ef372
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -0,0 +1,65 @@
+name: Bug report
+description: Create a bug report to help improve containerd
+labels: kind/bug
+body:
+ - type: markdown
+ attributes:
+ value: |
+ If you are reporting a new issue, make sure that we do not have any duplicates
+ already open. You can ensure this by searching the issue list for this
+ repository. If there is a duplicate, please close your issue and add a comment
+ to the existing issue instead.
+
+ Tips:
+
+ * If containerd gets stuck on something and enables debug socket, `ctr pprof goroutines`
+ dumps the golang stack of containerd, which is helpful! If containerd runs
+ without debug socket, `kill -SIGUSR1 $(pidof containerd)` also dumps the stack
+ as well.
+
+ * If there is something about running containerd, like consuming more CPU resources,
+ `ctr pprof` subcommands will help you to get some useful profiles. Enable debug
+ socket makes life easier.
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: |
+ Briefly describe the problem you are having in a few paragraphs.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Steps to reproduce the issue
+ value: |
+ 1.
+ 2.
+ 3.
+
+ - type: textarea
+ attributes:
+ label: Describe the results you received and expected
+ validations:
+ required: true
+
+ - type: input
+ attributes:
+ label: What version of containerd are you using?
+ placeholder: $ containerd --version
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Any other relevant information
+ description: |
+ runc version, CRI configuration, OS/Kernel version, etc.
+ Use the following commands:
+ $ runc --version
+ $ crictl info
+ $ uname -a
+
+ - type: textarea
+ attributes:
+ label: Show configuration if it is related to CRI plugin.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index e123919e9..000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for containerd
-title: ''
-labels: kind/feature
-assignees: ''
----
-
-**What is the problem you're trying to solve**
-A clear and concise description of what the problem is.
-
-**Describe the solution you'd like**
-A clear and concise description of what you'd like to happen.
-
-**Additional context**
-Add any other context about the feature request here.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml
new file mode 100644
index 000000000..161656e84
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yaml
@@ -0,0 +1,25 @@
+name: Feature request
+description: Suggest an idea for containerd
+labels: kind/feature
+body:
+ - type: textarea
+ attributes:
+ label: What is the problem you're trying to solve
+ description: |
+ A clear and concise description of what the problem is.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Describe the solution you'd like
+ description: |
+ A clear and concise description of what you'd like to happen.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Additional context
+ description: |
+ Add any other context about the feature request here.