- Sep 21, 2017
-
-
Jessica Yuen authored
For example, 'apply <env' currently operates as a no-op. With the introduction of simple environments in PR #131, 'apply <env>' should perform basic validation such that: 1. The user has added the environment that is being deployed against to their Ksonnet project. 2. The URI in the environment's spec file that the user wishes to deploy to should correspond to at least one cluster location as listed in kubeconfig. If either of those conditions are not satisfied, the kubecfg user will receive the corresponding error. In addition, this commit will set the kubectl --cluster flag to point at the cluster listed by the environment URI.
-
Jessica Yuen authored
Currently, commands take either an <env> or a '-f' argument but not both. With this commit, we are allowing both args to be provided. The behavior is expand the files passed by the '-f' flag and deploy the objects to <env>.
-
- Sep 19, 2017
-
-
Jessica Yuen authored
Currently 'Info' level logs are only shown with the '-v' flag. This makes commands without the '-v' flag of little use to users, especially on success cases, due to no output. This commit will set the default log level to 'Info', and passing a '-v' flag will log at a 'Debug' level.
-
- Sep 18, 2017
-
-
Jessica Yuen authored
'env set <name>' sets environment fields such as the name, and cluster URI. It currently accepts the flags '--name' and '--uri'. Changing the name of an environment will also update the directory structure in 'environments'.
-
- Sep 08, 2017
-
-
Jessica Yuen authored
This commit will remove the vendor/lib and vendor/schema directories generated by 'init'. An 'environments' directory will be created from the root app directory, with the default environment directory 'dev' and it's containing contents rooted at 'environments'. The intention of environments are to represent the deployment environments of Kubernete clusters, with the following example directory structure: app-name/ .. envs/ dev/ us-west/ prod/ staging/
-
- Sep 07, 2017
-
-
Alex Clemmer authored
This commit is a follow-up to the discussion in the ksonnet.next design doc, in which users consistently expressed their preference that the `update` command be called `apply`. NOTE: We have renamed `pkg/kubecfg/update_test.go` -> `pkg/kubecfg/apply_test.go`, but we copy the `update`'s integration test file. The reason is that the `update` unit tests actually test things like GC (rather than the command itself), so the file name is inconsequential. On the other hand, the integration tests test the commands themselves, so it is important to have two copies, one for `update` and one for `apply`.
-
Alex Clemmer authored
Currently, if the user wants to deploy a ksonnet application, and that application uses some vendored library, or something in the `lib/` directory, they will have to pass the appropriate `-J` flags into the command themselves. This commit will automatically add these whenever we're in an app directory and a command is issued. In particular, even if the user passes in the `-f` flag (rather than an environment name), we'll still add library paths to the command if we're in a ksonnet app directory. This is meant to capture the case that a user wants to update one resource in particular in a ksonnet application.
-
- Sep 06, 2017
-
-
Angus Lees authored
If the current kubeconfig context is declared with an explicit (non-empty) namespace, then `mergedKubeConfig.Namespace()` returns that *config file* namespace value, ignoring an explicit `--namespace` command line flag. See https://github.com/kubernetes/client-go/issues/288 for upstream client-go bug/discussion. This change works around the issue by just checking the Namespace override ourselves before falling through to the regular function. Further fixes #103
-
- Sep 05, 2017
-
-
Angus Lees authored
This reverts commit 020d5da0. The change broke --namespace (and other flag) handling, because it recreates the `clientConfig` global singleton multiple times - only some of which are correctly tied to the relevant flags.
-
- Sep 02, 2017
-
-
Alex Clemmer authored
-
Alex Clemmer authored
-
- Sep 01, 2017
-
-
Jessica Yuen authored
This commit will separate the application level logic for the 'show', 'delete', 'validate', and 'diff' commands from the Cobra logic in the cmd/ package. The application level logic will be placed in pkg/kubecfg/.
-
- Aug 30, 2017
-
-
Alex Clemmer authored
The ksonnet.next design doc specifies the core kubecfg verbs (i.e., the ones listed above) to all have the form: kubecfg <verb> [<env-name>|-f <file-or-dir>] That is to say, each of these should be able to take either an environment name, or a `-f` flag with a list of files and directories to apply `verb` on. In the case of the environment, we will apply `verb` to every component in the `components/` directory. This commit implements this behavior for all these verbs.
-
Alex Clemmer authored
This commit will introduce the `template.Expander` abstraction, which is meant to abstract over an invocation of the Jsonnet VM. Specifically, it provides facilities for users to provide (e.g.) Jpaths, ext vars, and so on. The main justification for this change is: * We need a common way for the `pkg` and `cmd` packages to interact with the Jsonnet VM. * The `utils` package is already too much of a catch-all. * It's easier to think about an invocation of the Jsonnet VM when we additionally encapsulate the parameters we pass to it on every invocation in kubecfg.
-
- Aug 08, 2017
-
-
Angus Lees authored
-
- Aug 02, 2017
-
-
Angus Lees authored
Fixes #15
-
- Jul 07, 2017
-
-
Angus Lees authored
-
- Jul 06, 2017
-
-
Tom Wilkie authored
-
Angus Lees authored
-
- Jun 30, 2017
-
-
Angus Lees authored
Improve interactive output experience by switching to a logging library (logrus) that allows customising the output format. This also removes the glog command line flags. Replaced with a simpler `--verbose`/`-v` option: - quiet by default (warnings and errors only) - `-v` for progress info - `-vv` for debug Fixes #34
-
Angus Lees authored
Fixes #35
-
- Jun 29, 2017
-
-
Ted Hahn authored
-
Thomas Hahn authored
-
Thomas Hahn authored
-
Thomas Hahn authored
-
- Jun 28, 2017
-
-
Angus Lees authored
For consistency with other options (hyphenated, not camel case), and the upstream `jsonnet` tool.
-
- Jun 23, 2017
-
-
Angus Lees authored
Add a new native function that resolves docker image names into more specific forms. In particular, it can look up a docker registry and convert image:tag to image@digest at jsonnet-eval time. Limitations: Does not currently support private docker registries (that require authentication). Controlled via two new command line flags: - `--resolve-images` Change implementation of resolveImage native function. One of: noop, registry (default "noop") - `--resolve-images-error` Action when resolveImage fails. One of ignore,warn,error (default "warn") Note in particular that the defaults will *not* do remote registry lookups, and will only add an explicit ":latest" tag where no tag was given. Fixes #13
-
- Jun 22, 2017
-
-
Angus Lees authored
Fixes #12
-
Angus Lees authored
-
- Jun 16, 2017
-
-
Ted Hahn authored
-
- May 18, 2017
-
-
Angus Lees authored
Rename early and often.
-
Angus Lees authored
- Support the standard client-go/kubectl flags - Switch object types to use client-go rather than apimachinery - Implement update subcommand
-
- May 17, 2017
-
-
Angus Lees authored
-
- May 16, 2017
-
-
Angus Lees authored
-
Angus Lees authored
File format is recognised via simple file extension check. Any "List" objects found will be expanded into their constituent items, so single-element formats like json and jsonnet can use a v1.List to capture multiple resource objects.
-
- May 12, 2017
-
-
Angus Lees authored
Basic skeleton. Can evaluate jsonnet and show the output as yaml or json .. and that's about it.
-