- extract the portion related to multi-cluster operation into a new multi-cluster.md doc
- merge the remainder (that was basically high-level troubleshooting advice) into cluster-troubleshooting.md
On OS X bash, for whatever reason, the ancient, forsaken bash version
(3.2!?) that will never be updated because it might insult the memory
of Steve Jobs doesn't allow me to accidentally escape the hash
character. Fix the unnecessary escaping.
For reviewers out there wondering about this syntax, it's documented
here: http://www.tldp.org/LDP/abs/html/parameter-substitution.html
under:
```
${var/#Pattern/Replacement}
If prefix of var matches Pattern, then substitute Replacement for Pattern.
```
It just looks odd here because I'm adding the hash character to the
start of each array element.
- Add kubectl command examples
- Add tables of contents
- Skip 3rd header tier to make sections more clear
- Reference cmd-exec example for curling pod & service IPs
- Make section layout, text patterns, changes & links more consistent
- Canonical yaml formatting
- n.node used the n.lock as underlaying locker. The service loop initially
locked it, the Notify function tried to lock it before calling n.node.Signal,
leading to a dead-lock.
- the go routine calling ChangeMaster was not synchronized with the Notify
method. The former was triggering change events that the later never saw
when the former's startup was faster that of Notify. Hence, not even a single
event was noticed and not even a single start/stop call of the slow service
was triggered.
This patch replaces the n.node condition object with a simple channel n.changed.
The service loop watches it.
Updating the notified private variables is still protected with n.lock against
races, but independently of the n.changed channel. Hence, the deadlock is gone.
Moreover, the startup of the Notify loop is synchronized with the go routine which
changes the master. Hence, the Notify loop will see the master changes.
Fixes#10776
This mostly stated what version the code was last tested at.
This was useful when kubernetes was changing rapidly.
However, this was not updated reliably. Also, simply using
a particular binary version does not assure users that
the distribution provides a conformant implementation.
The conformance test does provide that, and I'm hoping
that more distros will use that in the future.
Therefore, I've deleted the Notes column in favor of the
Conforms column.
I tested GCE but accidentally put the checkmark for GKE.
GKE hasn't been tested yet. I'm sure it will pass, but it hasn't.
Waiting for my cluster to upgrade to above 0.19.3.