Table of contents for FAQ

This commit is contained in:
Marcin Wielgus 2017-04-21 17:36:22 +02:00
parent fed151ae1c
commit 516588f837
2 changed files with 69 additions and 0 deletions

View File

@ -1,5 +1,33 @@
# Frequently Asked Questions
# Table of Contents:
<!--- TOC BEGIN -->
* [What is Cluster Autoscaler?](#what-is-cluster-autoscaler)
* [When Cluster Autoscaler changes the size of a cluster?](#when-cluster-autoscaler-changes-the-size-of-a-cluster)
* [What types of pods can prevent CA from removing a node?](#what-types-of-pods-can-prevent-ca-from-removing-a-node)
* [How Horizontal Pod Autoscaler works with Cluster Autoscaler?](#how-horizontal-pod-autoscaler-works-with-cluster-autoscaler)
* [What are the key best practices for running Cluster Autoscaler?](#what-are-the-key-best-practices-for-running-cluster-autoscaler)
* [Should I use CPU-usage-based node autoscaler with Kubernetes.](#should-i-use-cpuusagebased-node-autoscaler-with-kubernetes)
* [How Cluster Autoscaler is different from CPU-usage-based node autoscalers?](#how-cluster-autoscaler-is-different-from-cpuusagebased-node-autoscalers)
* [Is Cluster Autoscaler compatible with CPU-usage-based node autoscalers?](#is-cluster-autoscaler-compatible-with-cpuusagebased-node-autoscalers)
* [Are all of the mentioned heuristics and timings final?](#are-all-of-the-mentioned-heuristics-and-timings-final)
* [How does scale up work?](#how-does-scale-up-work)
* [How does scale down work?](#how-does-scale-down-work)
* [Does CA work with PodDisruptionBudget in scale down?](#does-ca-work-with-poddisruptionbudget-in-scale-down)
* [Does CA respect GracefulTermination in scale down?](#does-ca-respect-gracefultermination-in-scale-down)
* [How does CA deal with unready nodes in version <= 0.4.0?](#how-does-ca-deal-with-unready-nodes-in-version--040)
* [How does CA deal with unready nodes in version >=0.5.0 ?](#how-does-ca-deal-with-unready-nodes-in-version-050-)
* [How fast is Cluster Autoscaler?](#how-fast-is-cluster-autoscaler)
* [How fast is HPA when combined with CA?](#how-fast-is-hpa-when-combined-with-ca)
* [I have a couple of nodes with low utilization, but they are not scaled down. Why?](#i-have-a-couple-of-nodes-with-low-utilization-but-they-are-not-scaled-down-why)
* [I have a couple of pending pods, but there was no scale up?](#i-have-a-couple-of-pending-pods-but-there-was-no-scale-up)
* [CA doesnt work but it used to work yesterday. Why?](#ca-doesnt-work-but-it-used-to-work-yesterday-why)
* [How can I check what is going on in CA ?](#how-can-i-check-what-is-going-on-in-ca-)
* [What events are emitted by CA?](#what-events-are-emitted-by-ca)
* [What happens in scale up when I have no more quota in the cloud provider?](#what-happens-in-scale-up-when-i-have-no-more-quota-in-the-cloud-provider)
* [How can I run e2e tests?](#how-can-i-run-e2e-tests)
<!--- TOC END -->
# Basics
### What is Cluster Autoscaler?
@ -301,3 +329,4 @@ A few tests are specific to GKE and will be skipped if you're running on a
different provider.
Please open an issue if you find a failing or flaky test (a PR will be even more welcome).

View File

@ -0,0 +1,40 @@
#!/usr/bin/env python
# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import re
def updateFAQ():
with open("FAQ.md","r") as faq_file:
faq_content = faq_file.read()
question_prefix = "### "
questions = [line.strip()[len(question_prefix):].strip() for line in faq_content.split("\n") if line.strip().startswith(question_prefix)]
in_toc = False
with open("FAQ.md","w") as faq_file:
for line in faq_content.split("\n"):
if line.strip() == "<!--- TOC BEGIN -->":
in_toc = True
faq_file.write(line +"\n")
for question in questions:
faq_file.write("* [%s](#%s)\n" % (question, re.sub("[^a-z0-9 ]+", "", question.lower()).replace(" ","-")))
if line.strip() == "<!--- TOC END -->":
in_toc = False
if not in_toc:
faq_file.write(line+"\n")
if __name__ == '__main__':
updateFAQ()