Skip to content

Commit 5f6a4ab

Browse files
authored
Merge pull request #213755 from MikeRayMSFT/release-arc-data
Arc Data Stage for October 2022 release
2 parents 1533edb + 3c7cdb3 commit 5f6a4ab

File tree

5 files changed

+181
-119
lines changed

5 files changed

+181
-119
lines changed

articles/azure-arc/data/includes/azure-arc-data-preview-release.md

Lines changed: 7 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ ms.topic: include
66
ms.date: 08/02/2022
77
---
88

9-
<!--
9+
1010
At this time, a test or preview build is not available for the next release.
11-
-->
11+
12+
<!----
1213
1314
The current preview release published on October 4, 2022.
1415
@@ -22,129 +23,16 @@ The current preview release published on October 4, 2022.
2223
|Arc enabled Kubernetes helm chart extension version|1.12.0|
2324
|Arc Data extension for Azure Data Studio<br/>`arc`<br/>`azcli`|*No Changes*<br/>1.5.4 ([Download](https://aka.ms/ads-arcdata-ext))</br>1.5.4 ([Download](https://aka.ms/ads-azcli-ext))|
2425
26+
27+
2528
New for this release:
2629
- Arc data controller
27-
- Updates to TelemetryRouter implementation to include inbound and outbound TelemetryCollector layers alongside Kafka as a persistent buffer
28-
- AD connector will now be upgraded when data controller is upgraded
2930
3031
- Arc-enabled SQL managed instance
31-
- New reprovision replica task lets you rebuild a broken sql instance replica. For more information, see [Reprovision replica](#reprovision-replica).
32-
- Edit Active Directory settings from the Azure portal
3332
3433
<!--
3534
- Arc-enabled PostgreSQL server
3635
-->
37-
36+
<!--
3837
- `arcdata` Azure CLI extension
39-
- Columns for release information added to the following commands: `az sql mi-arc list` this makes it easy to see what instance may need to be updated.
40-
- Alternately you can run `az arcdata dc list-upgrades'
41-
- New command to list AD Connectors `az arcdata ad-connector list --k8s-namespace <namespace> --use-k8s`
42-
- Az CLI Polling for AD Connector create/update/delete: This feature changes the default behavior of `az arcdata ad-connector create/update/delete` to hang and wait until the operation finishes. To override this behavior, the user has to use the `--no-wait` flag when invoking the command.
43-
44-
### Reprovision replica
45-
46-
The reprovision replica task lets you rebuild a broken sql instance replica. It is intended to be used for a replica that is failing to synchronize, perhaps due to corruption of the data on the persistent volumes (PV) for that instance, or due to some recurring SQL issue, for example.
47-
48-
Support for reprovisioning of a replica is provided only via `az` CLI and kube-native. There is no portal support.
49-
50-
#### Prerequisites
51-
52-
Reprovisioning can only be performed on a multi-replica instance.
53-
54-
#### Request a reprovision replica
55-
56-
Request provisioning [via `az` CLI](#via-az-cli) or [via `kubectl`](#via-kubectl).
57-
58-
##### Via `az` CLI
59-
60-
```az
61-
az sql mi-arc reprovision-replica -n <instance_name-replica_number> -k <namespace> --use-k8s
62-
```
63-
64-
For example, for replica 2 of instance mySqlInstance in namespace arc, the command would be:
65-
66-
```az
67-
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s
68-
```
69-
70-
This runs until completion at which point the console returns:
71-
72-
```az
73-
sql-reprov-replica-mySqlInstance-2-1664217002.376132 is Ready
74-
```
75-
76-
The name of the thing that is ready, is the kubernetes task. At this point you can either examine the task:
77-
78-
```console
79-
kubectl describe SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
80-
```
81-
82-
Or delete it:
83-
84-
```console
85-
kubectl delete SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
86-
```
87-
88-
There is an optional `--no-wait` parameter for the command. If you send the request with `--no-wait`, the output will include the name of the task to be monitored. For example:
89-
90-
```az
91-
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s --no-wait
92-
Reprovisioning replica mySqlInstance-2 in namespace `arc`. Please use
93-
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217434.531035`
94-
to check its status or
95-
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask`
96-
to view all reprovision tasks.
97-
```
98-
99-
#### Via kubectl
100-
101-
The CRD for reprovision replica is fairly simple. You can create a yaml file with this structure:
102-
103-
```yaml
104-
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
105-
kind: SqlManagedInstanceReprovisionReplicaTask
106-
metadata:
107-
name: <task name you make up>
108-
namespace: <namespace>
109-
spec:
110-
replicaName: instance_name-replica_number
111-
```
112-
113-
To use the same example as above, mySqlinstance replica 2, the payload would be:
114-
115-
```yaml
116-
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
117-
kind: SqlManagedInstanceReprovisionReplicaTask
118-
metadata:
119-
name: my-reprovision-task-mySqlInstance-2
120-
namespace: arc
121-
spec:
122-
replicaName: mySqlInstance-2
123-
```
124-
125-
Once the yaml is applied via kubectl apply, you can monitor or delete the task via kubectl:
126-
127-
```console
128-
kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
129-
kubectl describe -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
130-
kubectl delete -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
131-
```
132-
133-
#### Limitations
134-
135-
- The task should reject attempts to reprovision the current primary replica. If the current primary is believed to be corrupted and in need of reprovisioning, the user should fail over to a different primary and then request the reprovisioning.
136-
137-
- Reprovisioning of multiple replicas in the same instance will serialize; the tasks will accumulate and be held in "Creating" state until the currently active task finishes *and is deleted*. There is no auto-cleanup of a completed task, so this serialization will affect the user even if they run the az command synchronously and wait for it to complete before requesting another reprovision. In all cases they will have to remove the task via kubectl before another reprovision on the same instance can run. **There is no warning about this, either in the az cli or in kubectl.**
138-
139-
140-
More about that second limitation: If you have multiple requests to reprovision a replica in one instance, you may see something like this in the output from a `kubectl get SqlManagedInstanceReprovisionReplicaTask`:
141-
142-
```console
143-
kubectl get SqlManagedInstanceReprovisionReplicaTask -n arc
144-
NAME STATUS AGE
145-
sql-reprov-replica-c-sql-djlexlmty-1-1664217344.304601 Completed 13m
146-
sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132 Completed 19m
147-
sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035 Creating 12m
148-
```
149-
150-
That last entry for replica c-sql-kkncursza-1, `sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035`, will stay in status `Creating` until the completed one `sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132` is removed.
38+
-->

articles/azure-arc/data/release-notes.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,31 @@ ms.custom: references_regions, devx-track-azurecli, event-tier1-build-2022
1616

1717
This article highlights capabilities, features, and enhancements recently released or improved for Azure Arc-enabled data services.
1818

19+
## October 11, 2022
20+
21+
### Image tag
22+
23+
`v1.12.0_2022-10-11`
24+
25+
For complete release version information, see [Version log](version-log.md#october-11-2022).
26+
27+
New for this release:
28+
- Arc data controller
29+
- Updates to TelemetryRouter implementation to include inbound and outbound TelemetryCollector layers alongside Kafka as a persistent buffer
30+
- AD connector will now be upgraded when data controller is upgraded
31+
32+
- Arc-enabled SQL managed instance
33+
- New reprovision replica task lets you rebuild a broken sql instance replica. For more information, see [Reprovision replica](reprovision-replica.md).
34+
- Edit Active Directory settings from the Azure portal
35+
36+
- `arcdata` Azure CLI extension
37+
- Columns for release information added to the following commands: `az sql mi-arc list` this makes it easy to see what instance may need to be updated.
38+
- Alternately you can run `az arcdata dc list-upgrades'
39+
- New command to list AD Connectors `az arcdata ad-connector list --k8s-namespace <namespace> --use-k8s`
40+
- Az CLI Polling for AD Connector create/update/delete: This feature changes the default behavior of `az arcdata ad-connector create/update/delete` to hang and wait until the operation finishes. To override this behavior, the user has to use the `--no-wait` flag when invoking the command.
41+
42+
43+
1944
## September 13, 2022
2045

2146
### Image tag
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
---
2+
title: Reprovision replica
3+
description: This article explains how to rebuild a broken Azure Arc-enabled SQL Managed Instance replica. A replica may break due to storage corruption, for example.
4+
services: sql-database
5+
ms.service: azure-arc
6+
ms.subservice: azure-arc-data
7+
ms.topic: conceptual
8+
author: MikeRayMSFT
9+
ms.author: mikeray
10+
ms.reviewer: mikeray
11+
ms.date: 10/05/2022
12+
---
13+
14+
# Reprovision replica - Azure Arc-enabled SQL Managed Instance
15+
16+
This article describes how to provision a new replica to replace an existing replica in Azure Arc-enabled SQL Managed Instance.
17+
18+
When you reprovision a replica, you rebuild a new managed instance replica for an Azure Arc-enabled SQL Managed Instance deployment. Use this task to replace a replica that is failing to synchronize, for example, due to corruption of the data on the persistent volumes (PV) for that instance, or due to some recurring SQL issue.
19+
20+
You can reprovision a replica [via `az` CLI](#via-az-cli) or [via `kubectl`](#via-kubectl). You can't reprovision a replica from the Azure portal.
21+
22+
## Prerequisites
23+
24+
You can only reprovision a replica on a multi-replica instance.
25+
26+
## Via `az` CLI
27+
28+
Azure CLI `az sql mi-arc` command group includes `reprovision-replica`. To reprovision a replica, update the following example. Replace `<instance_name-replica_number>` with the instance name and replica number of the replica you want to replace. Replace `<namespace>`.
29+
30+
```az
31+
az sql mi-arc reprovision-replica -n <instance_name-replica_number> -k <namespace> --use-k8s
32+
```
33+
34+
For example, to reprovision replica 2 of instance `mySqlInstance` in namespace `arc`, use:
35+
36+
```az
37+
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s
38+
```
39+
40+
The command runs until completion, at which point the console returns the name of the Kubernetes task:
41+
42+
```output
43+
sql-reprov-replica-mySqlInstance-2-1664217002.376132 is Ready
44+
```
45+
46+
At this point, you can either examine the task or delete it.
47+
48+
### Examine the task
49+
50+
The following example returns information about the state of the Kubernetes task:
51+
52+
```console
53+
kubectl describe SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
54+
```
55+
56+
> [!IMPORTANT]
57+
> After a replica is reprovisioned, you must delete the task before another reprovision can run on the same instance. For more information, see [Limitations](#limitations).
58+
59+
### Delete the task
60+
61+
The following example deletes the Kubernetes task:
62+
63+
```console
64+
kubectl delete SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
65+
```
66+
67+
### Option parameter: `--no-wait`
68+
69+
There's an optional `--no-wait` parameter for the command. If you send the request with `--no-wait`, the output includes the name of the task to be monitored. For example:
70+
71+
```az
72+
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s --no-wait
73+
Reprovisioning replica mySqlInstance-2 in namespace `arc`. Please use
74+
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217434.531035`
75+
to check its status or
76+
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask`
77+
to view all reprovision tasks.
78+
```
79+
80+
## Via kubectl
81+
82+
To reprovision with `kubectl`, create a custom resource. To create a custom resource to reprovision, you can create a .yaml file with this structure:
83+
84+
```yaml
85+
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
86+
kind: SqlManagedInstanceReprovisionReplicaTask
87+
metadata:
88+
name: <task name you make up>
89+
namespace: <namespace>
90+
spec:
91+
replicaName: instance_name-replica_number
92+
```
93+
94+
To use the same example as above, `mySqlinstance` replica 2, the payload is:
95+
96+
```yaml
97+
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
98+
kind: SqlManagedInstanceReprovisionReplicaTask
99+
metadata:
100+
name: my-reprovision-task-mySqlInstance-2
101+
namespace: arc
102+
spec:
103+
replicaName: mySqlInstance-2
104+
```
105+
106+
### Monitor or delete the task
107+
108+
Once the yaml is applied via kubectl apply, you can monitor or delete the task via kubectl:
109+
110+
```console
111+
kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
112+
kubectl describe -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
113+
kubectl delete -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
114+
```
115+
116+
> [!IMPORTANT]
117+
> After a replica is reprovisioned, you must delete the task before another reprovision can run on the same instance. For more information, see [Limitations](#limitations).
118+
119+
120+
## Limitations
121+
122+
- The task rejects attempts to reprovision the current primary replica. If the current primary replica is corrupted and in need of reprovisioning, fail over to a different replica, and then request the reprovisioning.
123+
124+
- Reprovisioning of multiple replicas in the same instance runs serially. The tasks queue and are held in `Creating` state until the currently active task finishes **and is deleted**. There's no auto-cleanup of a completed task, so this serialization will affect you even if you run the `az sql mi-arc reprovision-replica` command synchronously and wait for it to complete before requesting another reprovision. In all cases, you have to remove the task via `kubectl` before another reprovision on the same instance can run.
125+
126+
More details about serialization of reprovision tasks: If you have multiple requests to reprovision a replica in one instance, you may see something like this in the output from a `kubectl get SqlManagedInstanceReprovisionReplicaTask`:
127+
128+
```console
129+
kubectl get SqlManagedInstanceReprovisionReplicaTask -n arc
130+
NAME STATUS AGE
131+
sql-reprov-replica-c-sql-djlexlmty-1-1664217344.304601 Completed 13m
132+
sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132 Completed 19m
133+
sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035 Creating 12m
134+
```
135+
136+
That last entry for replica c-sql-kkncursza-1, `sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035`, will stay in status `Creating` until the completed one `sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132` is removed.

articles/azure-arc/data/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ items:
216216
href: managed-instance-high-availability.md
217217
- name: Disaster recovery
218218
href: managed-instance-disaster-recovery.md
219+
- name: Reprovision replica
220+
href: reprovision-replica.md
219221
- name: Azure Arc-enabled PostgreSQL (preview)
220222
items:
221223
- name: Overview

articles/azure-arc/data/version-log.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,17 @@ ms.topic: conceptual
1717

1818
This article identifies the component versions with each release of Azure Arc-enabled data services.
1919

20+
## October 11, 2022
21+
22+
|Component|Value|
23+
|-----------|-----------|
24+
|Container images tag |`v1.12.0_2022-10-11`|
25+
|CRD names and version|`datacontrollers.arcdata.microsoft.com`: v1beta1, v1 through v6<br/>`exporttasks.tasks.arcdata.microsoft.com`: v1beta1, v1, v2<br/>`kafkas.arcdata.microsoft.com`: v1beta1, v1beta2<br/>`monitors.arcdata.microsoft.com`: v1beta1, v1, v2<br/>`sqlmanagedinstances.sql.arcdata.microsoft.com`: v1beta1, v1 through v7<br/>`postgresqls.arcdata.microsoft.com`: v1beta1, v1beta2, v1beta3<br/>`sqlmanagedinstancerestoretasks.tasks.sql.arcdata.microsoft.com`: v1beta1, v1<br/>`failovergroups.sql.arcdata.microsoft.com`: v1beta1, v1beta2, v1 through v2<br/>`activedirectoryconnectors.arcdata.microsoft.com`: v1beta1, v1beta2, v1<br/>`sqlmanagedinstancereprovisionreplicatask.tasks.sql.arcdata.microsoft.com`: v1beta1<br/>`otelcollectors.arcdata.microsoft.com`: v1beta1, v1beta2<br/>`telemetryrouters.arcdata.microsoft.com`: v1beta1, v1beta2<br/>|
26+
|Azure Resource Manager (ARM) API version|2022-03-01-preview (No change)|
27+
|`arcdata` Azure CLI extension version|1.4.7|
28+
|Arc enabled Kubernetes helm chart extension version|1.12.0|
29+
|Arc Data extension for Azure Data Studio<br/>`arc`<br/>`azcli`|*No Changes*<br/>1.5.4 </br>1.5.4 |
30+
2031
## September 13, 2022
2132

2233
|Component|Value|

0 commit comments

Comments
 (0)