You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities.md
This utility removes a node from a cluster. If you're replacing a node, after you've set up a replacement node, you can use this command to take the old node offline. For more information, see [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node).
1162
+
This utility removes a node from a cluster{% ifversion ghes > 3.17 %} or an additional node from a high availability (HA) configuration{% endif %}. For a planned replacement of a functional cluster node, set up the replacement node before using this command to remove the old node. For more information, see [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-functional-node).{% ifversion ghes > 3.17 %} For the required HA checks and verification steps, see [Removing an additional node](/admin/monitoring-and-managing-your-instance/additional-nodes/configuring-additional-nodes#removing-an-additional-node).{% endif %}
1163
1163
1164
-
You must run this command from the primary MySQL node in your cluster, which is typically the node designated as `mysql-master` in your cluster configuration file (`cluster.conf`). You can use this command to remove any node, with the exception of the `mysql-master` or `redis-master` node. For more information, see [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-clustering/initializing-the-cluster#about-the-cluster-configuration-file).
1164
+
Before using this command for a planned removal, install the latest patch release for your feature release on every node. Every node must run the same exact release. Wait for any upgrade or configuration run to finish before starting removal. For emergency replacement of an unavailable cluster node, see [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency).
1165
+
1166
+
You must run this command from the primary MySQL node, which is typically the node designated as `mysql-master` in the cluster configuration file (`cluster.conf`).{% ifversion ghes > 3.17 %} In an HA configuration, run the command from the HA primary.{% endif %} You cannot remove the `mysql-master` or `redis-master` node. For more information, see [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-clustering/initializing-the-cluster#about-the-cluster-configuration-file).
1165
1167
1166
1168
```shell
1167
1169
ghe-remove-node HOSTNAME
1168
1170
```
1169
1171
1170
1172
The command does the following things:
1171
-
* Evacuates data from any data services running on the node, so that the remaining nodes in your cluster contain copies of the data
1172
-
* Marks the node as offline in your configuration, applies this change to the rest of the nodes in the cluster, and stops traffic being routed to the node
1173
+
1174
+
* Evacuates data from any data services running on the node, so that the remaining nodes contain copies of the data
1175
+
* Drains workloads from the node
1176
+
* Removes the node from the configuration.{% ifversion ghes > 3.17 %} If another non-primary node remains, the command runs `ghe-config-apply` and stops routing traffic to the removed node. If no non-primary node remains, the command removes cluster metadata and converts the primary to a standalone instance without running `ghe-config-apply`.{% else %} The command runs `ghe-config-apply` and stops routing traffic to the removed node.{% endif %}
1173
1177
1174
1178
You can run the command with the following flags.
1175
1179
1176
1180
Flag | Description
1177
1181
---- | ----------
1178
-
`-ne/--no-evacuate` | Skips evacuation of data services (warning: may result in data loss).
1182
+
`-ne/--no-evacuate` | Marks the node offline in the configuration instead of removing it, and skips evacuation of data services (warning: may result in data loss).
1179
1183
`-v/--verbose` | Prints additional information to the console.
1180
1184
1181
1185
> [!NOTE]
1182
-
> * This command can only be used to remove a node from a cluster configuration. It cannot be used to remove a node from a high availability configuration.
1186
+
> {% ifversion ghes > 3.17 %}* In an HA configuration, you can use this command to remove an additional node. You cannot use it to remove the HA primary or a replica.{% endif %}
1187
+
> * The target node must report `ready` in `nomad node status` to complete removal. The `--no-evacuate` flag does not remove an offline node from the configuration.
1183
1188
> * This command does not support parallel execution. To remove multiple nodes, you must wait until this command has finished before running it for another node.
Copy file name to clipboardExpand all lines: content/admin/monitoring-and-managing-your-instance/additional-nodes/configuring-additional-nodes.md
+30-6Lines changed: 30 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,15 +64,39 @@ We recommend a maintenance window to add stateless nodes.
64
64
65
65
## Removing an additional node
66
66
67
-
To remove a node, run `ghe-remove-node` from the node you want to remove. Then, on the primary node, you must run:
67
+
Before removing an additional node, install the same latest patch for your feature release on every node in the HA deployment and schedule a maintenance window. Wait for any upgrade or configuration run to finish before starting removal.
68
68
69
-
```shell copy
70
-
ghe-config-apply
71
-
```
69
+
1. On the HA primary, check the status of every node in the HA deployment.
70
+
71
+
```shell copy
72
+
ghe-cluster-nodes
73
+
ghe-cluster-nodes --offline
74
+
nomad node status
75
+
ghe-cluster-status --extended --verbose
76
+
```
77
+
78
+
Confirm that both `ghe-cluster-nodes` commands list the same hostnames and include the hostname of the node you plan to remove. Confirm that every node has a Nomad status of `ready`, and `connect-ssh` and `enterprise-version` are `ok`for every node. Confirm that stateful services on the primary and any replicas are healthy. If no replica remains, a warning that no MySQL replica was found is expected. Failures limited to web, job, or memcache workloads on the target do not block removal. If any other node-level or stateful-service check fails, contact {% data variables.contact.github_support %} before removal.
79
+
80
+
1. On the HA primary, remove the additional node. Replace `HOSTNAME` with the hostname of the additional node.
81
+
82
+
```shell copy
83
+
ghe-remove-node --verbose HOSTNAME
84
+
```
85
+
86
+
If another non-primary node remains, the command drains the target, removes it from the HA configuration, and runs `ghe-config-apply`. If no non-primary node remains, the command removes the cluster metadata and converts the primary to a standalone instance without running `ghe-config-apply`. Do not run `ghe-config-apply` separately in either case.
87
+
88
+
1. Verify the removal.
89
+
90
+
If another non-primary node remains, run the following commands on the HA primary. Confirm that the hostname is absent and that the HA configuration is healthy.
91
+
92
+
```shell copy
93
+
ghe-cluster-nodes --offline
94
+
ghe-cluster-status --extended --verbose
95
+
```
72
96
73
-
The `ghe-config-apply` command is a requirement to remove stateless nodes.
97
+
If no non-primary node remains, do not run the cluster-only commands. Confirm that the removal output contains `Cluster artifacts removed; now standalone.`, then confirm that the primary serves user traffic and processes web and job workloads.
74
98
75
-
We recommend a maintenance window to remove stateless nodes.
99
+
If an additional node is offline, unreachable, or on a different version, or if`ghe-remove-node` or a verification check fails, contact {% data variables.contact.github_support %}. Do not edit `cluster.conf` manually.
76
100
77
101
## Reprovisioning a node that previously hosted {% data variables.product.prodname_ghe_server %}
Copy file name to clipboardExpand all lines: content/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node.md
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Replacing a cluster node
3
-
intro: If a node fails in a {% data variables.product.prodname_ghe_server %} cluster, or if you want to add a new node with more resources, mark any nodes to replace as offline, then add the new node.
3
+
intro: Replace a functional or failed node in a {% data variables.product.prodname_ghe_server %} cluster while preserving the services that the node provides.
4
4
product: '{% data reusables.gated-features.cluster %}'
@@ -28,7 +28,9 @@ After you replace a node, {% data variables.location.product_location %} does no
28
28
29
29
You can replace an existing, functional node in your cluster. For example, you may want to provide a virtual machine (VM) with additional CPU, memory, or storage resources.
30
30
31
-
To replace a functional node, install the {% data variables.product.prodname_ghe_server %} appliance on a new VM, configure an IP address, add the new node to the cluster configuration file, initialize the cluster and apply the configuration, then take the node you replaced offline.
31
+
To replace a functional node, install the {% data variables.product.prodname_ghe_server %} appliance on a new VM, configure an IP address, add the new node to the cluster configuration file, initialize the cluster and apply the configuration, then remove the node you replaced.
32
+
33
+
Before starting the replacement, install the latest patch release for your feature release on every cluster node, including the replacement node. Every node must run the same exact release. Wait for any upgrade or configuration run to finish before starting replacement.
32
34
33
35
> [!NOTE]
34
36
> If you're replacing the primary database node, see [Replacing the primary database node](#replacing-the-primary-database-node-mysql-or-mysql-and-mssql).
@@ -38,13 +40,13 @@ To replace a functional node, install the {% data variables.product.prodname_ghe
38
40
{% data reusables.enterprise_clustering.replacing-a-cluster-node-modify-cluster-conf %}
39
41
{% data reusables.enterprise_clustering.replacing-a-cluster-node-initialize-new-node %}
40
42
{% data reusables.enterprise_clustering.replacing-a-cluster-node-config-node %}
41
-
1. To take the node you're replacing offline, from the primary MySQL node of your cluster, run the following command.
43
+
1. To remove the node you're replacing, from the primary MySQL node of your cluster, run the following command.
42
44
43
45
```shell
44
46
ghe-remove-node NODE-HOSTNAME
45
47
```
46
48
47
-
This command will evacuate data from any data services running on the node, mark the node as offline in your configuration, and stop traffic being routed to the node. For more information, see [AUTOTITLE](/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities#ghe-remove-node).
49
+
This command evacuates data from any data services running on the node, drains its workloads, removes the node from the cluster configuration, applies the change, and stops traffic from being routed to the node. For more information, see [AUTOTITLE](/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities#ghe-remove-node).
48
50
49
51
## Replacing a node in an emergency
50
52
@@ -55,6 +57,8 @@ You can replace a failed node in your cluster. For example, a software or hardwa
55
57
56
58
To replace a node in an emergency, you'll take the failed node offline, add your replacement node to the cluster, then run commands to remove references to data services on the removed node.
57
59
60
+
Before starting the replacement, confirm that every available node that will remain in the cluster already runs the latest patch release for your feature release. Install that exact release on the replacement node. If the remaining nodes are not already on that release, contact {% data variables.contact.github_support %} before continuing. Wait for any active upgrade or configuration run to finish.
61
+
58
62
1. To remove the node that is experiencing issues from the cluster, from the primary MySQL node of your cluster, run the following command. Replace NODE-HOSTNAME with the hostname of the node you're taking offline.
intro: Repository administrators can archive a pull request to remove it from public view, providing a moderation option between leaving a pull request up and permanently deleting it.
Archiving a pull request removes it from public view while preserving its history for repository administrators. This provides a safer moderation path when they need to take a pull request out of public view without permanently deleting it.
17
+
18
+
When a pull request is archived:
19
+
20
+
* The pull request is only visible to repository administrators. Visitors without administrator access to the repository receive a 404 error.
21
+
* The pull request is automatically closed and locked.
22
+
23
+
When you unarchive a pull request, it becomes visible again, but it remains closed and locked. You can reopen and unlock it separately if needed.
24
+
25
+
## Archiving a pull request
26
+
27
+
{% data reusables.repositories.navigate-to-repo %}
28
+
{% data reusables.repositories.sidebar-pr %}
29
+
1. Click the pull request you want to archive.
30
+
1. Scroll to the bottom of the right sidebar. Then click **{% octicon "archive" aria-hidden="true" aria-label="archive" %} Archive pull request**.
31
+
1. Read the information about archiving the pull request, then confirm that you want to archive it.
32
+
33
+
## Unarchiving a pull request
34
+
35
+
You can find the PR by using the `is:archived` qualifier. See, [AUTOTITLE](/search-github/searching-on-github/searching-issues-and-pull-requests#search-based-on-whether-a-pull-request-is-archived).
36
+
37
+
1. Open the pull request you want to unarchive.
38
+
1. In the right sidebar, click **{% octicon "archive" aria-hidden="true" aria-label="unarchive" %} Unarchive pull request**.
39
+
1. Read the information about unarchiving the pull request, then confirm that you want to unarchive it.
Copy file name to clipboardExpand all lines: content/communities/moderating-comments-and-conversations/index.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Moderating comments and conversations
3
3
shortTitle: Moderation
4
-
intro: 'Moderating conversations creates a welcoming community for all contributors to your project by promoting healthy collaboration and de-escalating conflict. You can apply your community''s code of conduct to discussions by viewing reported content, editing and deleting comments, and locking conversations.'
4
+
intro: Moderating conversations creates a welcoming community for all contributors to your project by promoting healthy collaboration and de-escalating conflict. You can apply your community's code of conduct to discussions by viewing reported content, editing and deleting comments, and locking conversations.
Copy file name to clipboardExpand all lines: content/search-github/searching-on-github/searching-issues-and-pull-requests.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,6 +68,18 @@ You can filter issues and pull requests based on whether they're open or closed
68
68
| `is:open` | [**performance is:open is:issue**](https://github.com/search?q=performance+is%3Aopen+is%3Aissue&type=Issues) matches open issues with the word "performance."
69
69
| `is:closed` | [**android is:closed**](https://github.com/search?utf8=%E2%9C%93&q=android+is%3Aclosed&type=) matches closed issues and pull requests with the word "android."
70
70
71
+
{% ifversion archive-pull-requests %}
72
+
73
+
## Search based on whether a pull request is archived
74
+
75
+
Repository administrators can archive a pull request to remove it from public view. You can search for archived pull requests using the `is:archived` qualifier. For more information, see [AUTOTITLE](/communities/moderating-comments-and-conversations/archive-pull-requests).
76
+
77
+
| Qualifier | Example
78
+
| ------------- | -------------
79
+
| `is:archived` | [**is:archived is:pr spam**](https://github.com/search?q=is%3Aarchived+is%3Apr+spam) matches archived pull requests that contain the word "spam" in repositories where you are a repository administrator.
80
+
81
+
{% endif %}
82
+
71
83
## Search for pull requests in the merge queue
72
84
73
85
You can also use the `is` qualifier to find pull requests that are queued to merge.
Copy file name to clipboardExpand all lines: data/reusables/enterprise_clustering/replacing-a-cluster-node-modify-cluster-conf.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
1. To add the newly provisioned replacement node, on any node, modify the `cluster.conf` file to remove the failed node and add the replacement node. For example, this modified `cluster.conf` file replaces `ghe-data-node-3` with the newly provisioned node, `ghe-replacement-data-node-3`:
1
+
1. To add the newly provisioned replacement node, on any node, modify the `cluster.conf` file to add the replacement node. Keep the node you're replacing in `cluster.conf` until you run `ghe-remove-node` later in this procedure. For example, this modified `cluster.conf` file adds the newly provisioned node, `ghe-replacement-data-node-3`:
0 commit comments