Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overall cleanup for kubeadm setup guide. #8981

Merged
merged 7 commits into from Jun 13, 2018

Conversation

@timothysc
Copy link
Member

timothysc commented Jun 7, 2018

This is the 1st batch of kubeadm - setup guide changes that can go in now and apply to kubernetes/kubeadm#894

This consolidates the instructions and eliminates a bunch of details that are not germane to the setup instructions.

I will have a follow on PR that is specific to 1.11 behavior.

/assign @Bradamant3
/cc @kubernetes/sig-cluster-lifecycle-pr-reviews

@k8sio-netlify-preview-bot

This comment has been minimized.

Copy link
Collaborator

k8sio-netlify-preview-bot commented Jun 7, 2018

Deploy preview for kubernetes-io-master-staging ready!

Built with commit 3c1d128

https://deploy-preview-8981--kubernetes-io-master-staging.netlify.com

@k8sio-netlify-preview-bot

This comment has been minimized.

Copy link
Collaborator

k8sio-netlify-preview-bot commented Jun 7, 2018

Deploy preview for kubernetes-io-master-staging ready!

Built with commit d65d586

https://deploy-preview-8981--kubernetes-io-master-staging.netlify.com

you want to set up a multi-master cluster for high availability, you can
follow
[this guide instead](https://kubernetes.io/docs/setup/independent/high-availability/).
**Note:** This guide results in a Kubernetes cluster with a single master and a

This comment has been minimized.

@fabriziopandini

fabriziopandini Jun 7, 2018

Contributor

Not a blocking issue, but IMO this note should be move from prerequisites to objectives

cluster in an easy, reasonably secure and extensible way. It also supports
managing [Bootstrap Tokens](/docs/admin/bootstrap-tokens/) for you and upgrading/downgrading clusters.
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. With kubeadm, your cluster should pass [Kubernetes Conformance tests.](https://kubernetes.io/blog/2017/10/software-conformance-certification) Kubeadm also supports other cluster
lifecycle functions, such as upgrades, downgrade, and managing [Bootstrap Tokens.](/docs/admin/bootstrap-tokens/)

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

Do we actually support downgrades with kubeadm? I would think we would only want to mention joining nodes, upgrades, and managing bootstrap tokens.

This comment has been minimized.

@dixudx

dixudx Jun 8, 2018

Member

For downgrades, we have skew versions, which should be no lower than 2 major releases.

Raspberry Pi. This makes kubeadm well suited to integrate with provisioning
systems of different kinds (e.g. Terraform, Ansible, etc.).
Because you can install kubeadm on any type of machine (e.g. laptop, server,
Raspberry Pi, etc.), it's well suited to integration with provisioning systems

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

s/to integration/for integration/

Might also want to add other CM tools such as Puppet and Chef here as well. It might also be worth mentioning that it could be scripted to run from cloud-init as well.

This comment has been minimized.

@dixudx

dixudx Jun 8, 2018

Member

FYI #8910.

Currently we have some limitations.

follow
[this guide instead](https://kubernetes.io/docs/setup/independent/high-availability/).
**Note:** This guide results in a Kubernetes cluster with a single master and a
number of nodes that you decide. If you want to set up a high available cluster, you can

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

This wording of 'and a number of nodes that you decide' feels off, but I'm not sure how to better word it.

This comment has been minimized.

@seh

seh Jun 7, 2018

Contributor

How about "and a specified number of nodes?"
Or "and any number of nodes?"

@@ -100,7 +46,7 @@ follow

## Objectives

* Install a secure Kubernetes cluster on your machines
* Install a best practices Kubernetes cluster on your machines

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

Might be better to say: Install a Kubernetes cluster using recommended best practices on your machines.

@@ -110,7 +56,7 @@ follow

See [Installing kubeadm](/docs/setup/independent/install-kubeadm/).

**Note:** If you already have kubeadm installed, you should do a `apt-get update &&
**Note:** If you already have kubeadm installed, you should run `apt-get update &&

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

s/you should//

third-party provider you choose, you might have to set the `--pod-network-cidr` to
something provider-specific. The tabs below will contain a notice about what flags
on `kubeadm init` are required.
1. (Optional) Unless otherwise specified, kubeadm uses the default gateway's network interface

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

I think it might be a bit clearer to say: the network interface associated with the default gateway

[addons] Applied essential addon: kube-dns
[addons] Applied essential addon: kube-proxy
... (logs outlining state of initialization workflow) ...

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

s/logs outlining state/log output/

[csr] Created API client to obtain unique certificate for this node, generating keys and certificate signing request
[csr] Received signed certificate from the API server, generating KubeConfig...
... (logs outlining state of join workflow) ...

This comment has been minimized.

@detiber

detiber Jun 7, 2018

Member

s/logs outlining state/log output/

@@ -124,69 +70,41 @@ The master is the machine where the control plane components run, including
etcd (the cluster database) and the API server (which the kubectl CLI
communicates with).

To initialize the master, first choose the pod network plugin you want and check if it requires any parameters to be passed to kubeadm while initializing the cluster. Pick one of the machines you previously installed
kubeadm on, and run:
1. Choose a pod network add-on and verify if it requires any arguments to

This comment has been minimized.

@fabriziopandini

fabriziopandini Jun 7, 2018

Contributor

What about changing the numbered list into:

"Before initializing your master, you should choose a pod network...."
and
"Please note that unless otherwise ..."

@timothysc

This comment has been minimized.

Copy link
Member Author

timothysc commented Jun 7, 2018

I'll batch up feedback and re-push tomorrow.

@fabriziopandini
Copy link
Contributor

fabriziopandini left a comment

@timothysc
+100 for the reshuffle and clean up
IMO the last things that is a little bit weird is the ordering of chapters, with "what's next" in the middle and something else that can be moved elsewhere (e.g. kubeadm works on multiple platforms > installing kubeadm, Version skew policy > reference docs) or removed (Limitations)

Some nits inline (nothing blocking).

PS. I don't like this sentence "Due to that we can’t see into the future, kubeadm CLI vX.Y may or may not be able to deploy vX.(Y+1) clusters.". Remove?

<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** is a toolkit that helps you bootstrap a best-practice Kubernetes
cluster in an easy, reasonably secure and extensible way. It also supports
managing [Bootstrap Tokens](/docs/admin/bootstrap-tokens/) for you and upgrading/downgrading clusters.
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. With kubeadm, your cluster should pass [Kubernetes Conformance tests.](https://kubernetes.io/blog/2017/10/software-conformance-certification) Kubeadm also supports other cluster

This comment has been minimized.

@dixudx

dixudx Jun 8, 2018

Member

Double whitespaces in With kubeadm?

And change to should pass [Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification).?

cluster in an easy, reasonably secure and extensible way. It also supports
managing [Bootstrap Tokens](/docs/admin/bootstrap-tokens/) for you and upgrading/downgrading clusters.
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. With kubeadm, your cluster should pass [Kubernetes Conformance tests.](https://kubernetes.io/blog/2017/10/software-conformance-certification) Kubeadm also supports other cluster
lifecycle functions, such as upgrades, downgrade, and managing [Bootstrap Tokens.](/docs/admin/bootstrap-tokens/)

This comment has been minimized.

@dixudx

dixudx Jun 8, 2018

Member

For downgrades, we have skew versions, which should be no lower than 2 major releases.

Raspberry Pi. This makes kubeadm well suited to integrate with provisioning
systems of different kinds (e.g. Terraform, Ansible, etc.).
Because you can install kubeadm on any type of machine (e.g. laptop, server,
Raspberry Pi, etc.), it's well suited to integration with provisioning systems

This comment has been minimized.

@dixudx

dixudx Jun 8, 2018

Member

FYI #8910.

Currently we have some limitations.

@timothysc

This comment has been minimized.

Copy link
Member Author

timothysc commented Jun 8, 2018

k, I'll address all comments today and get this done.

@timothysc timothysc force-pushed the timothysc:kubeadm_setup branch from 3c1d128 to c103dec Jun 8, 2018

@timothysc timothysc referenced this pull request Jun 8, 2018

Merged

Add optional 1.11+ step #9001

timothysc and others added some commits Jun 8, 2018

Partial copyedits
Hit a place where we also have formatting issues, plus a TODO (removed bc these changes go live as soon as merged). More work to do, but this should help the bottleneck for now.
@Bradamant3
Copy link
Member

Bradamant3 left a comment

Copyedits to create-cluster-kubeadm in a commit, but see review comments for changes to other files in this PR. Thanks for your patience! We will need more rounds on this file, so I concentrated on the stuff through kubeadm init

title: "Kubeadm"
weight: 10
---

This comment has been minimized.

@Bradamant3

Bradamant3 Jun 11, 2018

Member

I see what you're doing here, and with moving (or removing, for which thank you!) the upgrade-downgrade files. But it looks to me like too much nesting to be useful. The "Kubeadm" subsection hides the fact that its children are about upgrading/downgrading until you expand it. Are you planning to move more kubeadm files into the Kubadm subsection? If so, it might be OK. But I'm still thinking this isn't the greatest UX. How many users are likely to think "upgrade/downgrade" if they see Kubeadm in the TOC? (Yeah, most of them are unlikely to get there by navigating the TOC also. But that's not a good argument for rearranging, either ;) )

This comment has been minimized.

@timothysc

timothysc Jun 11, 2018

Author Member

yes there will be more content, this was chosen for both clarity and mgmt.

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

I also think it's a pretty deep TOC structure and I'm not sure this will help with discoverability.

This comment has been minimized.

@timothysc

timothysc Jun 12, 2018

Author Member

@zacharysarah - This is the single point in question. I don't have that strong of an opinion on the matter other then grouping admin content associated with kubeadm is cleaner. I could happily remove the substructure below this one if that works for others too.

This comment has been minimized.

@zacharysarah

zacharysarah Jun 12, 2018

Contributor

@timothysc I'm fine with deepening the TOC to a third tier. Right now, the second tier (Tasks > Administer a Cluster) is both densely populated and unhelpfully organized.

In fairness to my colleagues, I'm not sure that a deeper TOC is the best solution, either--but it beats what we've got right now. I'd rather iterate successively than remain paralyzed.

I'd like to see a different name for the proposed section, though. To build on @Bradamant3's suggestion, "Administration with kubeadm" as a section title works better than just "Kubeadm" (line 2).

systems of different kinds (e.g. Terraform, Ansible, etc.).
Because you can install kubeadm on any type of machine (e.g. laptop, server,
Raspberry Pi, etc.), it's well suited to integration with provisioning systems
such as Terraform or Ansible.

This comment has been minimized.

@Bradamant3

Bradamant3 Jun 11, 2018

Member

OK, I see the value of some of the content you put back in after I edited more ruthlessly than this. But let's clean it up to style guide standards while we're at it (ll13-14):

"You can install kubeadm on a laptop, server, Raspberry Pi, or any other type of machine. This flexibility means it's well suited to integration with provisioning systems such as Terraform or Ansible."

(Simpler sentence structure, avoids latinism and abbreviations)

systems of different kinds (e.g. Terraform, Ansible, etc.).
Because you can install kubeadm on any type of machine (e.g. laptop, server,
Raspberry Pi, etc.), it's well suited to integration with provisioning systems
such as Terraform or Ansible.

kubeadm is designed to be a simple way for new users to start trying
Kubernetes out, possibly for the first time, a way for existing users to
test their application on and stitch together a cluster easily, and also to be
a building block in other ecosystem and/or installer tool with a larger
scope.

This comment has been minimized.

@Bradamant3

Bradamant3 Jun 11, 2018

Member

And this paragraph is a glorious example of a runon sentence that's pretty hard to parse. But if you want to keep it, how about:

kubeadm's simplicity means it can serve a wide range of use cases:

- New users can start with kubeadm to try Kubernetes out for the first time.
- Users familiar with Kubernetes can spin up clusters easily with kubeadm and test their applications.
- Larger projects can include kubeadm as a building block in a more complex system that can also include other installer tools.

(Note that you need the extra line between the intro and the list)

@@ -87,11 +35,9 @@ timeframe; which also applies to `kubeadm`.
private network is fine)

This comment has been minimized.

@Bradamant3

Bradamant3 Jun 11, 2018

Member

Sorry, I should have caught this in the gdoc. This should be a bulleted list, not a numbered list. (order does not matter)

follow
[this guide instead](https://kubernetes.io/docs/setup/independent/high-availability/).
**Note:** This guide results in a Kubernetes cluster with a single master and a
number of nodes that you decide. If you want to set up a high available cluster, you can

This comment has been minimized.

@Bradamant3

Bradamant3 Jun 11, 2018

Member

s/high/highly
or
s/available/availability
(your pick)

- luxas
- roberthbailey
- medinatiger
- bradamant3

This comment has been minimized.

@Bradamant3

Bradamant3 Jun 11, 2018

Member

Fine to remove a reviewer, but please don't add me. We use this list to specify tech reviewers, and I don't think I should be in that list ;)

@Bradamant3

This comment has been minimized.

Copy link
Member

Bradamant3 commented Jun 11, 2018

/lgtm on behalf of fabrizio

asking for approve from another sig-docs maintainer bc we don't usually commit this kind of reorg-in-progress to master. It's fine by me, as we've discussed, but should have another set of eyes on it.

/assign @steveperry-53 @mistyhacks

@Bradamant3

This comment has been minimized.

Copy link
Member

Bradamant3 commented Jun 11, 2018

Page/s in question: https://deploy-preview-8981--kubernetes-io-master-staging.netlify.com/docs/tasks/administer-cluster/kubeadm/upgrade-downgrade/kubeadm-upgrade-ha/

Not the topic itself, but the new sub-directory labeled "kubeadm", and the (relative) hiding of upgrading/downgrading clusters content. More changes are planned, but we'd have to live with this for now.

@mistyhacks
Copy link
Member

mistyhacks left a comment

I left some feedback. I don't think this is ready to go into master as is. Maybe you can attend a sig-docs meeting so that the whole team can help with this content reorg? What do you think, @Bradamant3 ?

<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** is a toolkit that helps you bootstrap a best-practice Kubernetes
cluster in an easy, reasonably secure and extensible way. It also supports
managing [Bootstrap Tokens](/docs/admin/bootstrap-tokens/) for you and upgrading/downgrading clusters.
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. With kubeadm, your cluster should pass [Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification). Kubeadm also supports other cluster

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

I know this isn't this PR's change, but I think we should consider adding this Certified Kubernetes image in a more systematic way to our docs, such as through a shortcode. I also don't like "should pass Kubernetes Conformance tests" -- will it or won't it?

Below, why are Bootstrap Tokens capitalized? I don't think the period should be in the link text.

This comment has been minimized.

@timothysc

timothysc Jun 12, 2018

Author Member

B/c users can mess things up in almost a fractal configuration space, the "should" ... should remain ;-)

re: Bootstrap tokens... I dunno it was there originally.

kubeadm aims to set up a minimum viable cluster that pass the
[Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification), but installing other addons than
really necessary for a functional cluster is out of scope.
Because you can install kubeadm on any type of machine (e.g. laptop, server,

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

I think the parenthetical can be removed. Maybe "Any type of hardware running (a list of supported chipsets)". For instance, you probably can't run it on a Nintendo DS. :)

Raspberry Pi. This makes kubeadm well suited to integrate with provisioning
systems of different kinds (e.g. Terraform, Ansible, etc.).
- New users can start with kubeadm to try Kubernetes out for the first time.
- Users familiar with Kubernetes can spin up clusters easily with kubeadm and test their applications.

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

s/easily//

(You have no way to know that)

systems of different kinds (e.g. Terraform, Ansible, etc.).
- New users can start with kubeadm to try Kubernetes out for the first time.
- Users familiar with Kubernetes can spin up clusters easily with kubeadm and test their applications.
- Larger projects can include kubeadm as a building block in a more complex system that can also include other installer tools.

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

This sentence is pretty vague and I'm not sure how much clarity it adds.

| v1.8.x | September 2017 | June 2018 |
| v1.9.x | December 2017 | September 2018   |
| v1.10.x | March 2018 | December 2018   |
kubeadm's overall feature state is **Beta** and will be graduated to

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

I don't like making promises about the future. I think this is a good place to use the feature-state shortcode.

This comment has been minimized.

@timothysc

timothysc Jun 12, 2018

Author Member

This statement was a compromise from the sig.

This comment has been minimized.

@zacharysarah

zacharysarah Jun 12, 2018

Contributor

+1 to @mistyhacks, no statements about the future.

internal helper service, will not start up before a network is installed. kubeadm only
supports Container Network Interface (CNI) based networks (and does not support kubenet).**
internal helper service, will not start up before a network is installed. kubeadm
supports only Container Network Interface (CNI) based networks. It does not support kubenet.**

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

Maybe s/based/compliant?


**Note:** kubeadm sets up a more secure cluster by default and enforces use of [RBAC](#TODO).
Please make sure that the network manifest of choice supports RBAC.
**Note:** kubeadm sets up a more secure cluster by default and enforces use of [RBAC].

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

More secure than what? I think RBAC needs link text. I don't think this needs to be a note. If you think it does, use the note shortcode.

How do I know if my network manifest supports RBAC?

* [1.8 to 1.9 upgrades/downgrades](/docs/tasks/administer-cluster/kubeadm-upgrade-1-9/)
* [1.9.x to 1.9.y upgrades](/docs/tasks/administer-cluster/kubeadm-upgrade-1-9/)
* [1.9.x to 1.9.y HA cluster upgrades](/docs/tasks/administer-cluster/upgrade-downgrade/kubeadm-upgrade-ha/)
Instructions for maintaining kubeadm clusters (e.g. upgrades,downgrades, etc.) can be found [here.](/docs/tasks/administer-cluster/kubeadm)

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

Maybe "You can read more about maintaining kubeadmin clusters, including upgrading and downgrading, ..." I don't like link text being just "here". Also, the period should be outside of the link text.

* Learn about kubeadm's advanced usage in the [kubeadm reference documentation](/docs/reference/setup-tools/kubeadm/kubeadm)
* Learn more about Kubernetes [concepts](/docs/concepts/) and [`kubectl`](/docs/user-guide/kubectl-overview/).
* Configure log rotation. You can use **logrotate** for that. When using Docker, you can specify log rotation options for Docker daemon, for example `--log-driver=json-file --log-opt=max-size=10m --log-opt=max-file=5`. See [Configure and troubleshoot the Docker daemon](https://docs.docker.com/engine/admin/) for more details.

## Feedback {#feedback}

* kubeadm support Slack Channel:
* For bugs, please visit [kubeadm Github issue tracker](https://github.com/kubernetes/kubeadm/issues)

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

s/please//

title: "Kubeadm"
weight: 10
---

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

I also think it's a pretty deep TOC structure and I'm not sure this will help with discoverability.

@timothysc

This comment has been minimized.

Copy link
Member Author

timothysc commented Jun 12, 2018

/assign @zacharysarah

timothysc and others added some commits Jun 12, 2018

Copy edits, fiddly bits, and clearer warnings
Incorporated feedback from @mistyhacks, fixed many nits, reorganized some **Note:** content more sensibly.
@zacharysarah
Copy link
Contributor

zacharysarah left a comment

@timothysc I added a commit that fixed many nits, addressed some of @mistyhacks's feedback, and organized Note: content more sensibly.

| v1.8.x | September 2017 | June 2018 |
| v1.9.x | December 2017 | September 2018   |
| v1.10.x | March 2018 | December 2018   |
kubeadm's overall feature state is **Beta** and will be graduated to

This comment has been minimized.

@zacharysarah

zacharysarah Jun 12, 2018

Contributor

+1 to @mistyhacks, no statements about the future.

@zacharysarah

This comment has been minimized.

Copy link
Contributor

zacharysarah commented Jun 12, 2018

@mistyhacks @Bradamant3 PTAL at the commits I added.

* Install a Pod network on the cluster so that your Pods can
talk to each other

## Instructions

### Installing kubeadm on your hosts

See [Installing kubeadm](/docs/setup/independent/install-kubeadm/).
See ["Installing kubeadm"](/docs/setup/independent/install-kubeadm/).

This comment has been minimized.

@mistyhacks

mistyhacks Jun 12, 2018

Member

What are these quotes about?

This comment has been minimized.

@zacharysarah

zacharysarah Jun 13, 2018

Contributor

A convention I’d like us to move towards when linking to other pages within the site. It’s out of scope for this PR, but we can have a larger conversation about it.

For more information, see “This page”.

@Bradamant3

This comment has been minimized.

Copy link
Member

Bradamant3 commented Jun 13, 2018

/lgtm

still a few things to fix up, but since we'll be touching this file again soon, I'll let them go for now. Still need to consider the larger UX of all of kubeadm.

@k8s-ci-robot k8s-ci-robot added the lgtm label Jun 13, 2018

@zacharysarah

This comment has been minimized.

Copy link
Contributor

zacharysarah commented Jun 13, 2018

/approve

@k8s-ci-robot

This comment has been minimized.

Copy link

k8s-ci-robot commented Jun 13, 2018

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: zacharysarah

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot merged commit c09c48b into kubernetes:master Jun 13, 2018

4 checks passed

cla/linuxfoundation zacharysarah authorized
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
deploy/netlify Deploy preview ready!
Details
tide In merge pool.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.