We took a hard look at 1.0 and what things ae really REQUIRED to get to a
stable release that is "useful". This required moving some things we thought
were really important but not CRITICAL down the list.
For now they are stricken from this doc, but I expect this doc to start
growing a "post 1.0" list soon.
Things stricken and why:
Using the host network: This is primarily a performance optimization, but it
causes potential problems with other uses of HostPorts. We'd rather focus on
fixing perf problems than dodging them. We can revisit later if there is a
strong case for it.
Representation of Ports in the Manifest structure: We discussed and decided
that, since HostPort semantics have changed, this matters less than before.
Scenarios where IP-per-pod is hard or impossible: We're still game to help
people figure out how to make it work, but we don't see a case for making k8s
1.0 work in a fundamentally different mode. Too much churn and risk. We can
revisit later, if needed.
Auto-scaling controller: We really want this, but it's not critical to making
k8s "useful".
Pluggable authentication: Overlaps with the other identity topic. Having one
topic seems clearer.
Pod spreading: We still want this, but it's not critical for 1.0.
Container status snippets: We still want this, but it's not critical for 1.0.
Docker-daemon-kills-all-children-on-exit problem: This is still a big problem,
but we're not going to gate our 1.0 on something we don't control. This has
to be documented as a shortcoming in general.
Interconnection of services: expand / decompose the service pattern: overlaps
with the other services topic.
Recipes for settings where networking is not like GCE: This is happening in
the form of cloudprovider modules, but is not going to gate 1.0.
Convert host:port and URLs passed to client.New() into the proper
values, and return an error if the value is invalid. Change CLI
to return an error if -master is invalid. Remove Client.rawRequest
which was not in use, and fix the involved tests. Add NewOrDie
Preserves the behavior of the client to not auth when a non-https
URL is passed (although in the future this should be corrected).
The `which` command in Fedora 20 (differently from the one in Debian)
prints to stderr when the binary is not found. Redirect both stdout and
stderr to /dev/null to prevent messages from being printed by `which`.
Check whether the binary exists or not by the exit status of `which`
(non-zero means the binary does not exist) instead of checking for empty
output.
Tested:
- Started a Vagrant cluster with `vagrant up` and confirmed these
messages were gone. Checked master and minions for Kubernetes
components using the systemd status commands.
- Confirmed that the same error message for salt-minion is also
suppressed from the output with this patch.
Fixes: Issue #1079
Signed-off-by: Filipe Brandenburger <filbranden@google.com>
Run the snippet that creates the output/go/ tree in a subshell.
Tested:
- Built it with hack/build-go.sh
- Ran release/build-release.sh successfully.
- Moved away the git tree to confirm no regression in PR #1073.
- Sourced hack/config-go.sh in the shell, confirmed no variable or
function other than the expected ones leaked into the environment.
- Used `git grep` to confirm the no longer exported variables were
not in use by any script other than config-go.sh.
Signed-off-by: Filipe Brandenburger <filbranden@google.com>
The old method (using `readlink`) was convoluted and not portable. We
can achieve the same result using only bash builtins.
Signed-off-by: Filipe Brandenburger <filbranden@google.com>
Add a section for environment variables in config-go.sh. Document the
three public environment variables defined by this script. Make sure the
variables get exported so that they can be used by commands spawned by a
shell that sourced the config script.
Signed-off-by: Filipe Brandenburger <filbranden@google.com>
This is caused by bash thinking that an empty array is the same as an
undefined variable and `set -o nounset` treating that as an error.
Fix that by using an empty string as the default for the expansion.
Fixes PR #1069 (6e25f60288).
Tested:
- Before this patch:
$ mv .git .gitbackup
$ hack/build-go.sh
/home/filbranden/devel/kubernetes/hack/config-go.sh: line 55: ldflags[*]: unbound variable
- After this patch:
$ mv .git .gitbackup
$ rm -rf output/
$ hack/build-go.sh
$ output/go/bin/kubelet -version
Kubernetes version 0.1+, build (unknown)
Signed-off-by: Filipe Brandenburger <filbranden@google.com>