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

📖 clusterctl: initial set of documentation #1994

Merged

Conversation

fabriziopandini
Copy link
Member

@fabriziopandini fabriziopandini commented Jan 6, 2020

What this PR does / why we need it:
This PR creates the first set of documents for clusterctl:

  • intro
  • clusterctl init deep dive
  • configuring clusterctl
  • clusterctl providers contract

Being clusterctl a work in progress, also those pages should be considered WIP. At the same time, it is important to start sharing current assumptions and collect feedbacks

Which issue(s) this PR fixes
Fixes: #1490
Rif #1729

/assign @vincepri
/cc @akutz @yastij

@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 6, 2020
@k8s-ci-robot k8s-ci-robot requested review from akutz and yastij January 6, 2020 14:07
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Jan 6, 2020
@fabriziopandini fabriziopandini changed the title [WIP] 📖clusterctl: initial set of documentation 📖clusterctl: initial set of documentation Jan 15, 2020
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 15, 2020
@fabriziopandini fabriziopandini changed the title 📖clusterctl: initial set of documentation 📖 clusterctl: initial set of documentation Jan 15, 2020
@fabriziopandini
Copy link
Member Author

@vincepri @vincepri
given that people are starting to play with the new clusterctl I made another iteration on this docs .with the goal to get some documentation out, even if the collocation in the book is not the final/some further iterations will be required when clusterctl feature set gets completed

docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved
@fabriziopandini
Copy link
Member Author

@ncdc many thanks for the feedback, really appreciated!
Everything must me addressed now


The `clusterctl config cluster` command allows user to set a small set of common variables via CLI flags or command arguments.

Templates writers should use the common variables to ensure consistency across providers and a simpler user experience
Copy link

@vuil vuil Jan 16, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(less of a comment of the documentation itself but possibly something address in the future)

The absence of some these variables can lead to surprises in the UX. Say, if a template is opinionated about the number of control plane nodes it should create (e.g. a 'dev' template that hard codes that number to 1 to minimize resource usage), a user attempting to use said template while specifying

... --controlplane-machine-count 3 --worker-machine-count 5 

would see only part of his intent satisfied in an otherwise fully functional configuration without warning

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is correct.
The authors of templates should provide documentation, and in case the template is opinionated, also the underlying assumptions (e.g. 1 worker to minimize resources) should be documented.

However, if this became a problem, we should always change this into a minimal set of required variables, but TBH, I fear this is too much restrictive ATM

Copy link
Member

@vincepri vincepri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass, thanks for putting this together!

Regarding the structure I took inspiration / copied what kubectl has todayhttps://kubernetes.io/docs/reference/kubectl/overview which most users will be already familiar with.

docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
Comment on lines 12 to 17
- [init](./clusterctl/init.md)
- [move](./clusterctl/move.md)
- [upgrade](./clusterctl/upgrade.md)
- [config cluster](clusterctl/config-cluster.md)
- [adopt](clusterctl/adopt.md)
- [delete](clusterctl/delete.md)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's put these underclusterctl Commands

Copy link
Member Author

@fabriziopandini fabriziopandini Jan 17, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume this should be a new subtree in the summary (done)

docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/contract.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/dev.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved

See the [kind documentation](https://minikube.sigs.k8s.io/) for more details.
{{#/tab }}
{{#tab kind for docker provider}}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd honestly keep everything about CAPD separately, although I want to hear from other folks first

docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuring-clusterctl.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/init.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/init.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/init.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/init.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/init.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved
@ncdc ncdc added this to the v0.3.0 milestone Jan 16, 2020
@fabriziopandini
Copy link
Member Author

@ncdc, @vincepri @vuil comments should be addressed, thanks for feedback!

I have also added a new commit, with the dev documentation (mirrors the sam approach used for the Tilt doc)

Copy link
Contributor

@ncdc ncdc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a couple minor things. LGTM!

docs/book/src/clusterctl/dev.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/dev.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/dev.md Outdated Show resolved Hide resolved
@vincepri
Copy link
Member

Doing another pass

docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
Comment on lines 13 to 18
- [init](./clusterctl/init.md)
- [config cluster](clusterctl/config-cluster.md)
- [move](./clusterctl/move.md)
- [adopt](clusterctl/adopt.md)
- [upgrade](./clusterctl/upgrade.md)
- [delete](clusterctl/delete.md)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prefix these files with command-? Such as ./clusterctl/command-init.md?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved all the command files into a command folder, is it ok for you?

docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
docs/book/src/SUMMARY.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/contract.md Outdated Show resolved Hide resolved
Comment on lines 61 to 62
The `clusterctl` command can ship with embedded metadata for pre-defined providers.
If, as a provider implementer, you are interested to this feature, please send a PR to the Cluster API repository.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems the same as line 24-25

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

24-25 talks about the embedded list of providers
here it is talking about the embedded metadata

docs/book/src/clusterctl/contract.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/contract.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/intro.md Outdated Show resolved Hide resolved
Copy link
Member

@vincepri vincepri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve
/assign @ncdc

for final lgtm

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: fabriziopandini, vincepri

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 added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 17, 2020
Copy link
Contributor

@ncdc ncdc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are my last review comments 😄. Please fix and then let's merge. We can open new PRs to fix more if needed.

docs/book/src/clusterctl/configuration.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/configuration.md Outdated Show resolved Hide resolved
docs/book/src/clusterctl/overview.md Outdated Show resolved Hide resolved
@fabriziopandini
Copy link
Member Author

@ncdc comments addressed + squashed commits

@ncdc
Copy link
Contributor

ncdc commented Jan 17, 2020

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 17, 2020
@k8s-ci-robot k8s-ci-robot merged commit 9df2ec7 into kubernetes-sigs:master Jan 17, 2020
@fabriziopandini fabriziopandini deleted the clusterctl-update-book branch January 21, 2020 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Define a convention for watching specific namespaces or all
5 participants