diff --git a/Makefile b/Makefile index 941899f547..ecc839482e 100644 --- a/Makefile +++ b/Makefile @@ -847,7 +847,7 @@ prow-postsubmit: bazel-version-dist .PHONY: live-docs live-docs: - @docker build --pull -t kops/mkdocs images/mkdocs + @docker build -t kops/mkdocs images/mkdocs @docker run --rm -it -p 3000:3000 -v ${PWD}:/docs kops/mkdocs .PHONY: build-docs diff --git a/README-ES.md b/README-ES.md index f326a4e791..9efcaa7831 100644 --- a/README-ES.md +++ b/README-ES.md @@ -30,15 +30,15 @@ en alpha, y otras plataformas planeadas. ## Lanzando un anfitrión de Kubernetes cluster en AWS o GCE -Para reproducir exactamente el demo anterior, visualizalo en el [tutorial](/docs/aws.md) para +Para reproducir exactamente el demo anterior, visualizalo en el [tutorial](/docs/getting_started/aws.md) para lanzar un anfitrión de Kubernetes cluster en AWS. -Para instalar un Kubernetes cluster en GCE por fabor siga esta [guide](/docs/tutorial/gce.md). +Para instalar un Kubernetes cluster en GCE por fabor siga esta [guide](/docs/getting_started/gce.md). ## Caracteristicas -* Automatiza el aprovisionamiento de Kubernetes clusters en [AWS](/docs/aws.md) y [GCE](/docs/tutorial/gce.md) +* Automatiza el aprovisionamiento de Kubernetes clusters en [AWS](/docs/getting_started/aws.md) y [GCE](/docs/getting_started/gce.md) * Un Despliegue Altamente Disponible (HA) Kubernetes Masters * Construye en un modelo de estado sincronizado para **dry-runs** y **idempotency** automático * Capacidad de generar [Terraform](/docs/terraform.md) diff --git a/README.md b/README.md index 1789cdb922..f47029e62b 100644 --- a/README.md +++ b/README.md @@ -32,10 +32,10 @@ in alpha, and other platforms planned. ## Launching a Kubernetes cluster hosted on AWS, GCE, DigitalOcean or OpenStack -To replicate the above demo, check out our [tutorial](/docs/aws.md) for +To replicate the above demo, check out our [tutorial](/docs/getting_started/aws.md) for launching a Kubernetes cluster hosted on AWS. -To install a Kubernetes cluster on GCE please follow this [guide](/docs/tutorial/gce.md). +To install a Kubernetes cluster on GCE please follow this [guide](/docs/getting_started/gce.md). To install a Kubernetes cluster on DigitalOcean, follow this [guide](/docs/tutorial/digitalocean.md). @@ -45,7 +45,7 @@ To install a Kubernetes cluster on OpenStack, follow this [guide](/docs/tutorial ## Features -* Automates the provisioning of Kubernetes clusters in [AWS](/docs/aws.md), [OpenStack](/docs/tutorial/openstack.md) and [GCE](/docs/tutorial/gce.md) +* Automates the provisioning of Kubernetes clusters in [AWS](/docs/getting_started/aws.md), [OpenStack](/docs/getting_started/openstack.md) and [GCE](/docs/getting_started/gce.md) * Deploys Highly Available (HA) Kubernetes Masters * Built on a state-sync model for **dry-runs** and automatic **idempotency** * Ability to generate [Terraform](/docs/terraform.md) diff --git a/docs/.pages b/docs/.pages index b046f8cd7a..ea52f17b08 100644 --- a/docs/.pages +++ b/docs/.pages @@ -7,4 +7,4 @@ arrange: - examples - tutorial - releases -- aws.md +- getting_started/aws.md diff --git a/docs/README.md b/docs/README.md index 25b7e2f587..a0a63cde10 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,27 +1,33 @@ # Documentation Index ## Quick start -* [Getting started on AWS](aws.md) -* [Getting started on GCE](tutorial/gce.md) +* [Getting started on AWS](getting_started/aws.md) +* [Getting started on GCE](getting_started/gce.md) * [CLI reference](cli/kops.md) ## Overview -* [Command-line interface](#command-line-interface) -* [Inspection](#inspection) -* [`kops` design documents](#kops-design-documents) -* [Networking](#networking) -* [Operations](#operations) -* [Security](#security) -* [Development](#development) +- [Documentation Index](#documentation-index) + - [Quick start](#quick-start) + - [Overview](#overview) + - [Command-line interface](#command-line-interface) + - [Advanced / Detailed List of Configurations](#advanced--detailed-list-of-configurations) + - [API / Configuration References](#api--configuration-references) + - [API Usage Guides](#api-usage-guides) + - [Operations](#operations) + - [Networking](#networking) + - [`kops` design documents](#kops-design-documents) + - [Security](#security) + - [Inspection](#inspection) + - [Development](#development) ## Command-line interface * [CLI argument explanations](arguments.md) * [CLI reference](cli/kops.md) -* [Commands](commands.md) +* [Commands](usage/commands.md) * miscellaneous CLI-related remarks * [Experimental features](experimental.md) * list of and how to enable experimental flags in the CLI diff --git a/docs/download_config.md b/docs/advanced/download_config.md similarity index 95% rename from docs/download_config.md rename to docs/advanced/download_config.md index deae11a5f8..cf632d897a 100644 --- a/docs/download_config.md +++ b/docs/advanced/download_config.md @@ -37,9 +37,9 @@ kops create cluster $NAME \ You can simply use the kops command `kops get --name $NAME -o yaml > a_fun_name_you_will_remember.yml` -Note: for the above command to work the cluster NAME and the KOPS_STATE_STORE will have to be exported in your environment. +Note: for the above command to work the cluster NAME and the KOPS_STATE_STORE will have to be exported in your environment. -For more information on how to use and modify the configurations see [here](manifests_and_customizing_via_api.md). +For more information on how to use and modify the configurations see [here](../manifests_and_customizing_via_api.md). ## Managing instance groups diff --git a/docs/experimental.md b/docs/advanced/experimental.md similarity index 93% rename from docs/experimental.md rename to docs/advanced/experimental.md index 9763cba352..d15a4cd807 100644 --- a/docs/experimental.md +++ b/docs/advanced/experimental.md @@ -14,4 +14,4 @@ The following experimental features are currently available: * `+EnableSeparateConfigBase` - Allow a config-base that is different from the state store. * `+SpecOverrideFlag` - Allow setting spec values on `kops create`. * `+ExperimentalClusterDNS` - Turns off validation of the kubelet cluster dns flag. -* `+EnableNodeAuthorization` - Enable support of Node Authorization, see [node_authorization.md](node_authorization.md). +* `+EnableNodeAuthorization` - Enable support of Node Authorization, see [node_authorization.md](../node_authorization.md). diff --git a/docs/ns.md b/docs/advanced/ns.md similarity index 100% rename from docs/ns.md rename to docs/advanced/ns.md diff --git a/docs/authentication.md b/docs/authentication.md index e18147d1e0..3607170916 100644 --- a/docs/authentication.md +++ b/docs/authentication.md @@ -119,7 +119,7 @@ data: ### Creating a new cluster with IAM Authenticator on. -* Create a cluster following the [AWS getting started guide](https://github.com/kubernetes/kops/blob/master/docs/aws.md) +* Create a cluster following the [AWS getting started guide](https://github.com/kubernetes/kops/blob/master/docs/getting_started/aws.md) * When you reach the "Customize Cluster Configuration" section of the guide modify the cluster spec and add the Authentication and Authorization configs to the YAML config. * Continue following the cluster creation guide to build the cluster. * :warning: When the cluster first comes up the aws-iam-authenticator PODs will be in a bad state. diff --git a/docs/aws-china.md b/docs/aws-china.md index 46e37ebc20..8efe7352bb 100644 --- a/docs/aws-china.md +++ b/docs/aws-china.md @@ -4,15 +4,15 @@ Kops used to only support Google Cloud DNS and Amazon Route53 to provision a kubernetes cluster. But since 1.6.2 `gossip` has been added which make it possible to provision a cluster without one of those DNS providers. Thanks to `gossip`, it's officially supported to provision a fully-functional kubernetes cluster in AWS China Region [which doesn't have Route53 so far][1] since [1.7][2]. Should support both `cn-north-1` and `cn-northwest-1`, but only `cn-north-1` is tested. -Most of the following procedures to provision a cluster are the same with [the guide to use kops in AWS](aws.md). The differences will be highlighted and the similar parts will be omitted. +Most of the following procedures to provision a cluster are the same with [the guide to use kops in AWS](getting_started/aws.md). The differences will be highlighted and the similar parts will be omitted. -*NOTE: THE FOLLOWING PROCEDURES ARE ONLY TESTED WITH KOPS 1.10.0, 1.10.1 AND KUBERNETES 1.9.11, 1.10.12* +*NOTE: THE FOLLOWING PROCEDURES ARE ONLY TESTED WITH KOPS 1.10.0, 1.10.1 AND KUBERNETES 1.9.11, 1.10.12* -### [Install kops](aws.md#install-kops) +### [Install kops](getting_started/aws.md#install-kops) -### [Install kubectl](aws.md#install-kubectl) +### [Install kubectl](getting_started/aws.md#install-kubectl) -### [Setup your environment](aws.md#setup-your-environment) +### [Setup your environment](getting_started/aws.md#setup-your-environment) #### AWS @@ -31,15 +31,15 @@ And export it correctly. export AWS_REGION=$(aws configure get region) ``` -## [Configure DNS](aws.md#configure-dns) +## [Configure DNS](getting_started/aws.md#configure-dns) As the note kindly pointing out, a gossip-based cluster can be easily created by having the cluster name end with `.k8s.local`. We will adopt this trick below. Rest of this section can be skipped safely. -## [Testing your DNS setup](aws.md#testing-your-dns-setup) +## [Testing your DNS setup](getting_started/aws.md#testing-your-dns-setup) Thanks to `gossip`, this section can be skipped safely as well. -## [Cluster State storage](aws.md#cluster-state-storage) +## [Cluster State storage](getting_started/aws.md#cluster-state-storage) Since we are provisioning a cluster in AWS China Region, we need to create a dedicated S3 bucket in AWS China Region. @@ -47,7 +47,7 @@ Since we are provisioning a cluster in AWS China Region, we need to create a ded aws s3api create-bucket --bucket prefix-example-com-state-store --create-bucket-configuration LocationConstraint=$AWS_REGION ``` -## [Creating your first cluster](aws.md#creating-your-first-cluster) +## [Creating your first cluster](getting_started/aws.md#creating-your-first-cluster) ### Ensure you have a VPC which can access the internet NORMALLY @@ -55,7 +55,7 @@ First of all, we have to solve the slow and unstable connection to the internet ### Prepare kops ami -We have to build our own AMI because there is [no official kops ami in AWS China Regions][3]. There're two ways to accomplish so. +We have to build our own AMI because there is [no official kops ami in AWS China Regions][3]. There're two ways to accomplish so. #### ImageBuilder **RECOMMENDED** @@ -99,7 +99,7 @@ Following [the comment][5] to copy the kops image from another region, e.g. `ap- No matter how to build the AMI, we get an AMI finally, e.g. `k8s-1.9-debian-jessie-amd64-hvm-ebs-2018-07-18`. -### [Prepare local environment](aws.md#prepare-local-environment) +### [Prepare local environment](getting_started/aws.md#prepare-local-environment) Set up a few environment variables. @@ -108,7 +108,7 @@ export NAME=example.k8s.local export KOPS_STATE_STORE=s3://prefix-example-com-state-store ``` -### [Create cluster configuration](aws.md#create-cluster-configuration) +### [Create cluster configuration](getting_started/aws.md#create-cluster-configuration) We will need to note which availability zones are available to us. AWS China (Beijing) Region only has two availability zones. It will have [the same problem][6], like other regions having less than three AZs, that there is no true HA support in two AZs. You can [add more master nodes](#add-more-master-nodes) to improve the reliability in one AZ. @@ -135,7 +135,7 @@ kops create cluster \ ${NAME} ``` -### [Customize Cluster Configuration](aws.md#prepare-local-environment) +### [Customize Cluster Configuration](getting_started/aws.md#prepare-local-environment) Now we have a cluster configuration, we adjust the subnet config to reuse [shared subnets](run_in_existing_vpc.md#shared-subnets) by editing the description. @@ -169,13 +169,13 @@ spec: Please note that this mirror *MIGHT BE* not suitable for some cases. It's can be replaced by any other registry mirror as long as it's compatible with the docker api. -### [Build the Cluster](aws.md#build-the-cluster) +### [Build the Cluster](getting_started/aws.md#build-the-cluster) -### [Use the Cluster](aws.md#use-the-cluster) +### [Use the Cluster](getting_started/aws.md#use-the-cluster) -### [Delete the Cluster](aws.md#delete-the-cluster) +### [Delete the Cluster](getting_started/aws.md#delete-the-cluster) -## [What's next?](aws.md#whats-next) +## [What's next?](getting_started/aws.md#whats-next) ### Add more master nodes diff --git a/docs/examples/basic-requirements.md b/docs/examples/basic-requirements.md index b8514e07b4..305d7df8e8 100644 --- a/docs/examples/basic-requirements.md +++ b/docs/examples/basic-requirements.md @@ -1,6 +1,6 @@ # COMMON BASIC REQUIREMENTS FOR KOPS-RELATED LABS. PRE-FLIGHT CHECK: -Before rushing in to replicate any of the exercises, please ensure your basic environment is correctly setup. See the [KOPS AWS tutorial for more information](../aws.md). +Before rushing in to replicate any of the exercises, please ensure your basic environment is correctly setup. See the [KOPS AWS tutorial for more information](../getting_started/aws.md). Ensure that the following points are covered and working in your environment: diff --git a/docs/examples/coreos-kops-tests-multimaster.md b/docs/examples/coreos-kops-tests-multimaster.md index 651036f54f..62283296db 100644 --- a/docs/examples/coreos-kops-tests-multimaster.md +++ b/docs/examples/coreos-kops-tests-multimaster.md @@ -47,7 +47,7 @@ export KOPS_STATE_STORE=s3://my-kops-s3-bucket-for-cluster-state Some things to note from here: - "NAME" will be an environment variable that we'll use from now in order to refer to our cluster name. For this practical exercise, our cluster name is "coreosbasedkopscluster.k8s.local". -- Because we'll use gossip DNS instead of a valid DNS domain on AWS ROUTE53 service, our cluster name needs to include the string **".k8s.local"** at the end (this is covered on our AWS tutorials). You can see more about this on our [Getting Started Doc.](https://github.com/kubernetes/kops/blob/master/docs/aws.md) +- Because we'll use gossip DNS instead of a valid DNS domain on AWS ROUTE53 service, our cluster name needs to include the string **".k8s.local"** at the end (this is covered on our AWS tutorials). You can see more about this on our [Getting Started Doc.](https://github.com/kubernetes/kops/blob/master/docs/getting_started/aws.md) ## COREOS IMAGE INFORMATION: @@ -119,7 +119,7 @@ aws ec2 describe-images --region=us-east-1 --owner=595879546273 \ --query 'sort_by(Images,&CreationDate)[-1].{id:ImageLocation}' \ --output table - + --------------------------------------------------- | DescribeImages | +----+--------------------------------------------+ @@ -273,7 +273,7 @@ curl http://54.210.119.98 curl http://34.200.247.63
-
-
@@ -26,7 +25,7 @@ in alpha, and other platforms planned.
## Features
-* Automates the provisioning of Kubernetes clusters in [AWS](aws.md) and [GCE](tutorial/gce.md)
+* Automates the provisioning of Kubernetes clusters in [AWS](getting_started/aws.md) and [GCE](getting_started/gce.md)
* Deploys Highly Available (HA) Kubernetes Masters
* Built on a state-sync model for **dry-runs** and automatic **idempotency**
* Ability to generate [Terraform](terraform.md)
@@ -51,30 +50,43 @@ in alpha, and other platforms planned.
### Kubernetes Version Support
kops is intended to be backward compatible. It is always recommended to use the
-latest version of kops with whatever version of Kubernetes you are using. Always
-use the latest version of kops.
+latest version of kops with whatever version of Kubernetes you are using. We suggest
+kops users run one of the [3 minor versions](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/release/versioning.md#supported-releases-and-component-skew) Kubernetes is supporting however we
+do our best to support previous releases for a period of time.
One exception, in regard to compatibility, kops supports the equivalent
Kubernetes minor release number. A minor version is the second digit in the
-release number. kops version 1.8.0 has a minor version of 8. The numbering
+release number. kops version 1.13.0 has a minor version of 13. The numbering
follows the semantic versioning specification, MAJOR.MINOR.PATCH.
-For example, kops 1.8.0 does not support Kubernetes 1.9.2, but kops 1.9.0
-supports Kubernetes 1.9.2 and previous Kubernetes versions. Only when kops minor
-version matches, the Kubernetes minor version does kops officially support the
+For example, kops 1.12.0 does not support Kubernetes 1.13.0, but kops 1.13.0
+supports Kubernetes 1.12.2 and previous Kubernetes versions. Only when the kops minor
+version matches the Kubernetes minor version does kops officially support the
Kubernetes release. kops does not stop a user from installing mismatching
versions of K8s, but Kubernetes releases always require kops to install specific
versions of components like docker, that tested against the particular
Kubernetes version.
-#### Compatibility Matrix
-
-| kops version | k8s 1.5.x | k8s 1.6.x | k8s 1.7.x | k8s 1.8.x | k8s 1.9.x |
-|--------------|-----------|-----------|-----------|-----------|-----------|
-| 1.9.x | Y | Y | Y | Y | Y |
-| 1.8.x | Y | Y | Y | Y | N |
-| 1.7.x | Y | Y | Y | N | N |
-| 1.6.x | Y | Y | N | N | N |
+| kops version | k8s 1.9.x | k8s 1.10.x | k8s 1.11.x | k8s 1.12.x | k8s 1.13.x | k8s 1.14.x |
+|---------------|-----------|------------|------------|------------|------------|------------|
+| 1.14.x - Beta | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| 1.13.x | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
+| 1.12.x | ✔ | ✔ | ✔ | ✔ | ❌ | ❌ |
+| 1.11.x | ✔ | ✔ | ✔ | ❌ | ❌ | ❌ |
+| ~~1.10.x~~ | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
+| ~~1.9.x~~ | ✔ | ❌ | ❌ | ❌ | ❌ | ❌ |
Use the latest version of kops for all releases of Kubernetes, with the caveat
-that higher versions of Kubernetes are not _officially_ supported by kops.
+that higher versions of Kubernetes are not _officially_ supported by kops. Releases who are ~~crossed out~~ _should_ work but we suggest should be upgraded soon.
+
+### kops Release Schedule
+
+This project does not follow the Kubernetes release schedule. `kops` aims to
+provide a reliable installation experience for kubernetes, and typically
+releases about a month after the corresponding Kubernetes release. This time
+allows for the Kubernetes project to resolve any issues introduced by the new
+version and ensures that we can support the latest features. kops will release
+alpha and beta pre-releases for people that are eager to try the latest
+Kubernetes release. Please only use pre-GA kops releases in environments that
+can tolerate the quirks of new releases, and please do report any issues
+encountered.
diff --git a/docs/releases/1.8-NOTES.md b/docs/releases/1.8-NOTES.md
index ab329d1fbb..ed8df966a8 100644
--- a/docs/releases/1.8-NOTES.md
+++ b/docs/releases/1.8-NOTES.md
@@ -60,7 +60,7 @@
* We now automatically add a default NodeLabel with the InstanceGroup name
-* Addons: added external-dns, kube-state-metrics addon. Updates for autoscaler, dashboard, heapster,
+* Addons: added external-dns, kube-state-metrics addon. Updates for autoscaler, dashboard, heapster,
* Networking: initial support for kube-router & romana. Updates for weave, kopeio-networking, flannel, canal, calico.
@@ -136,7 +136,7 @@ or specify a different network (current using `--vpc` flag)
* added missing command in documentation [@gekart](https://github.com/gekart) [#3116](https://github.com/kubernetes/kops/pull/3116)
* Add k8s dashbard v1.6.2 [@Globegitter](https://github.com/Globegitter) [#3075](https://github.com/kubernetes/kops/pull/3075)
* Kube Proxy Feature Gates [@gambol99](https://github.com/gambol99) [#3130](https://github.com/kubernetes/kops/pull/3130)
-* Update aws.md for SSH Key pair generation instructions [@sathiyas](https://github.com/sathiyas) [#3138](https://github.com/kubernetes/kops/pull/3138)
+* Update getting_started/aws.md for SSH Key pair generation instructions [@sathiyas](https://github.com/sathiyas) [#3138](https://github.com/kubernetes/kops/pull/3138)
* MVP of templating [@mad01](https://github.com/mad01) [#3040](https://github.com/kubernetes/kops/pull/3040)
* Rename OWNERS assignees: to approvers: [@spiffxp](https://github.com/spiffxp) [#3133](https://github.com/kubernetes/kops/pull/3133)
* CoreOS: Ensure docker configuration is loaded [@johanneswuerbach](https://github.com/johanneswuerbach) [#3134](https://github.com/kubernetes/kops/pull/3134)
@@ -224,13 +224,13 @@ or specify a different network (current using `--vpc` flag)
* Add missed error handling on session.NewSession [@justinsb](https://github.com/justinsb) [#3280](https://github.com/kubernetes/kops/pull/3280)
* Refactor PKI classes into their own package [@justinsb](https://github.com/justinsb) [#3288](https://github.com/kubernetes/kops/pull/3288)
* baremetal: relax validation on subnets & networking [@justinsb](https://github.com/justinsb) [#3301](https://github.com/kubernetes/kops/pull/3301)
-* Update aws.md pointing links to the k8s slack directly [@krishna-mk](https://github.com/krishna-mk) [#3306](https://github.com/kubernetes/kops/pull/3306)
+* Update getting_started/aws.md pointing links to the k8s slack directly [@krishna-mk](https://github.com/krishna-mk) [#3306](https://github.com/kubernetes/kops/pull/3306)
* Kubelet Readonly Port [@gambol99](https://github.com/gambol99) [#3303](https://github.com/kubernetes/kops/pull/3303)
* Additional Kubelet Options [@gambol99](https://github.com/gambol99) [#3302](https://github.com/kubernetes/kops/pull/3302)
* Misc go vet fixes [@justinsb](https://github.com/justinsb) [#3307](https://github.com/kubernetes/kops/pull/3307)
* Adds DNSControllerSpec and WatchIngress flag [@geojaz](https://github.com/geojaz) [#2504](https://github.com/kubernetes/kops/pull/2504)
* Fixes #3317 allowing to spawn flannel on all nodes in the cluster [@BradErz](https://github.com/BradErz) [#3318](https://github.com/kubernetes/kops/pull/3318)
-* Fix broken link in aws.md [@BlueMonday](https://github.com/BlueMonday) [#3324](https://github.com/kubernetes/kops/pull/3324)
+* Fix broken link in getting_started/aws.md [@BlueMonday](https://github.com/BlueMonday) [#3324](https://github.com/kubernetes/kops/pull/3324)
* refactor resource tracker to be usable across packages [@andrewsykim](https://github.com/andrewsykim) [#3331](https://github.com/kubernetes/kops/pull/3331)
* Fix RenderGCE issue on Address [@justinsb](https://github.com/justinsb) [#3338](https://github.com/kubernetes/kops/pull/3338)
* Extract UserData from CloudFormation output during testing [@justinsb](https://github.com/justinsb) [#3299](https://github.com/kubernetes/kops/pull/3299)
diff --git a/docs/releases/1.9-NOTES.md b/docs/releases/1.9-NOTES.md
index dd63ee543d..bed0105301 100644
--- a/docs/releases/1.9-NOTES.md
+++ b/docs/releases/1.9-NOTES.md
@@ -30,7 +30,7 @@ None known at this time
* Update bazel / gazelle [@justinsb](https://github.com/justinsb) [#4000](https://github.com/kubernetes/kops/pull/4000)
* When using private DNS add ELB name to the api certificate [@vainu-arto](https://github.com/vainu-arto) [#3941](https://github.com/kubernetes/kops/pull/3941)
* Fixed minor typo in 1.8-NOTES.md file [@sellers](https://github.com/sellers) [#4013](https://github.com/kubernetes/kops/pull/4013)
-* Minor update to docs/aws.md [@ysim](https://github.com/ysim) [#4008](https://github.com/kubernetes/kops/pull/4008)
+* Minor update to docs/getting_started/aws.md [@ysim](https://github.com/ysim) [#4008](https://github.com/kubernetes/kops/pull/4008)
* Fix libcgroup dependency typo [@wannabesrevenge](https://github.com/wannabesrevenge) [#4030](https://github.com/kubernetes/kops/pull/4030)
* Spelling fix in instancegroups.go error msg [@sneako](https://github.com/sneako) [#4024](https://github.com/kubernetes/kops/pull/4024)
* Include roles in toolbox dump structured output [@justinsb](https://github.com/justinsb) [#3934](https://github.com/kubernetes/kops/pull/3934)
@@ -294,7 +294,7 @@ None known at this time
* Update Compatibility Matrix [@mikesplain](https://github.com/mikesplain) [#4580](https://github.com/kubernetes/kops/pull/4580)
* Typo fix "NAT Gateways" -> "NAT gateways" [@AdamDang](https://github.com/AdamDang) [#4576](https://github.com/kubernetes/kops/pull/4576)
* Force bazel builds to be pure. [@mikesplain](https://github.com/mikesplain) [#4602](https://github.com/kubernetes/kops/pull/4602)
-* Update aws.md [@sanketjpatel](https://github.com/sanketjpatel) [#4605](https://github.com/kubernetes/kops/pull/4605)
+* Update getting_started/aws.md [@sanketjpatel](https://github.com/sanketjpatel) [#4605](https://github.com/kubernetes/kops/pull/4605)
* Typo delete duplicated word [@AdamDang](https://github.com/AdamDang) [#4600](https://github.com/kubernetes/kops/pull/4600)
* Typo fix "kubernetes"->"Kubernetes" [@AdamDang](https://github.com/AdamDang) [#4577](https://github.com/kubernetes/kops/pull/4577)
* Fix distroless error [@mikesplain](https://github.com/mikesplain) [#4597](https://github.com/kubernetes/kops/pull/4597)
@@ -380,7 +380,7 @@ None known at this time
* Release 1.9.0-alpha.2 [@justinsb](https://github.com/justinsb) [#4750](https://github.com/kubernetes/kops/pull/4750)
* Update instance_groups.md [@AdamDang](https://github.com/AdamDang) [#4751](https://github.com/kubernetes/kops/pull/4751)
* Update cluster_upgrades_and_migrations.md [@AdamDang](https://github.com/AdamDang) [#4756](https://github.com/kubernetes/kops/pull/4756)
-* Update aws.md [@kmaris](https://github.com/kmaris) [#4755](https://github.com/kubernetes/kops/pull/4755)
+* Update getting_started/aws.md [@kmaris](https://github.com/kmaris) [#4755](https://github.com/kubernetes/kops/pull/4755)
* Update networking.md [@AdamDang](https://github.com/AdamDang) [#4754](https://github.com/kubernetes/kops/pull/4754)
* Update README.md [@AdamDang](https://github.com/AdamDang) [#4752](https://github.com/kubernetes/kops/pull/4752)
* Bump stable/alpha channels to 1.9.0-alpha.2 [@mikesplain](https://github.com/mikesplain) [#4757](https://github.com/kubernetes/kops/pull/4757)
diff --git a/docs/tutorial/working-with-instancegroups.md b/docs/tutorial/working-with-instancegroups.md
index e9c8cefe5d..f78f94ba0f 100644
--- a/docs/tutorial/working-with-instancegroups.md
+++ b/docs/tutorial/working-with-instancegroups.md
@@ -4,7 +4,7 @@ The kops InstanceGroup is a declarative model of a group of nodes. By modifying
can change the instance type you're using, the number of nodes you have, the OS image you're running - essentially
all the per-node configuration is in the InstanceGroup.
-We'll assume you have a working cluster - if not, you probably want to read [how to get started on GCE](gce.md).
+We'll assume you have a working cluster - if not, you probably want to read [how to get started on GCE](../getting_started/gce.md).
## Changing the number of nodes
@@ -45,7 +45,7 @@ spec:
Edit `minSize` and `maxSize`, changing both from 2 to 3, save and exit your editor. If you wanted to change
the image or the machineType, you could do that here as well. There are actually a lot more fields,
-but most of them have their default values, so won't show up unless they are set. The general approach is the same though.
+but most of them have their default values, so won't show up unless they are set. The general approach is the same though.
diff --git a/docs/arguments.md b/docs/usage/arguments.md
similarity index 92%
rename from docs/arguments.md
rename to docs/usage/arguments.md
index 51c1bd7a74..70e5ad1f50 100644
--- a/docs/arguments.md
+++ b/docs/usage/arguments.md
@@ -19,7 +19,7 @@ Examples:
**YAML:**
-See the docs in [cluster_spec.md#adminaccess](cluster_spec.md#adminaccess)
+See the docs in [../cluster_spec.md#adminaccess](../cluster_spec.md#adminaccess)
## dns-zone
@@ -67,7 +67,7 @@ Values:
# API only Arguments
-Certain arguments can only be passed via the API, eg, `kops edit cluster`. The following documents some of the more interesting or lesser-known options. See the [Cluster Spec](./cluster_spec.md) page for more fields.
+Certain arguments can only be passed via the API, eg, `kops edit cluster`. The following documents some of the more interesting or lesser-known options. See the [Cluster Spec](./../cluster_spec.md) page for more fields.
## kubeletPreferredAddressTypes
@@ -82,4 +82,4 @@ kubeAPIServer:
- ExternalIP
```
-More information about using YAML is available [here](manifests_and_customizing_via_api.md).
+More information about using YAML is available [here](../manifests_and_customizing_via_api.md).
diff --git a/docs/commands.md b/docs/usage/commands.md
similarity index 61%
rename from docs/commands.md
rename to docs/usage/commands.md
index 8921be2640..df3ef779a5 100644
--- a/docs/commands.md
+++ b/docs/usage/commands.md
@@ -1,6 +1,5 @@
-# Documentation
-
-Please refer to the [cli](cli) directory for full documentation.
+# Commands & Arguments
+Please refer to the kops [cli reference](../cli/kops.md) for full documentation.
## `kops create cluster`
@@ -16,6 +15,13 @@ creating it).
It is recommended that you run it first in 'preview' mode with `kops update cluster --name