* update status of commands
* update status of commands
* update status of commands
* update status of commands
* update status of commands
* update status of commands
* update status of commands
* Rename --concurrency-target and --concurrency-utilization
The new option names are --scale-target and --scale-limit, respectively
Both options are still available but deprecated. Reasoning is that both
options really belong to the 'scale' option group as they influencen
the scaling behaviour.
* rebased and added changelog
* Move `--autoscale-window` to `--scale-window`
and deprecate `--autoscale-window`
* regenerate docs
* fix issue that --scale-window was not picked up
* add some test
* add some additional test
* Add `GetEnvsFromFile` to `util`
* Add to `podspec` flags `--env-file` and `EnvFile` to `PodSpec`.
* If `env-file` is specified load env vars from file to memory,
convert them into ordered map and pass them to UpdateEnvVars function
by setting custom args for each one of them instead of using command line args.
Signed-off-by: Boaz <boaz.shuster.github@gmail.com>
* Add support for multi-containers
* Update examples
* Fix UpdateContainers to match by name
* Add experimental note & tests
* Rename flag to --extra-containers
* Fix formatting
* Fix flag renaming leftovers
* Update pkg/kn/flags/podspec_test.go
Co-authored-by: Roland Huß <rhuss@redhat.com>
Co-authored-by: Roland Huß <rhuss@redhat.com>
* make command as array instead of string
* make command as array instead of string
* make command as array instead of string
* make command as array instead of string
* make command as array instead of string
* make command as array instead of string
* update: Change default to server-side generated revision names
Fixes#1144
* update: Fix wait loop for synthetic events for which the generations are already in sync
* fix assertion as a service label change does not create a new revision
* fix: --cluster-local does not create a new revision but just changes a service's label
* chore: Fixed formatting
* update: Check generation in update already before doing a watch
* fixed lint issue
* fix test assertions
* add git ops options
* add git ops options
* add unit tests
* add unit tests
* add unit tests
* add unit test
* add unit test
* add unit test
* review comments
* review comments
* add single file mode
* add single file mode
* add single file mode
* add single file mode
* review comments
* Add changes for --scale-init support
* Added test cases
* Add test case in e2e tests
* minor fix
* Test case failure fix
* Incorporated review comments
* Add service update test cases
* Incorporate review comments
* Added the option to use --scale for setting MinScale and MaxScale to the
same value
* Updated service create/update to resolve test issues
* Removed scale from the annotation section - there isn't a scale
annotation
* Renamed test service name so that it doesn't match a previous test
* Addressed most issues/changes
* Added tests for multiple flags being used at the same time
* Cleaned up the update tests
* Added negative value tests and cleaned up tests in create_test.go
* feat: Add --file flag to service create cmd
* fix: Fix linter warnings
* fix: Remove unecessary changes
* fix: Reflect review feedback
* fix: Change flag --file to -f,--filename
* fix: Reflect review feedback
* fix: Move test cleanup to correct place
* fix: Refactor name param restrictions
* fix: Fix flag name string in func
* Add grouping for help message + streamlined help messages
The top-level looks like
kn is the command line interface for managing Knative Serving and Eventing objects
Find more information about Knative at: https://knative.dev
Serving Commands:
service Manage Knative services
revision Manage service revisions
route List and show service routes
Eventing Commands:
source Manage event sources
trigger Manage event triggers
Other Commands:
plugin Manage kn plugins
completion Output shell completion code
version Show the version of this client
Use "kn <command> --help" for more information about a given command.
Use "kn options" for a list of global command-line options (applies to all commands).
The following changes have been applied:
* Add CommandGroups for grouping commands together
* Add flexible templating for the help messages
* Moved global options to an own command ('kn options', much like 'kubectl options')
* Aligned wording and typography of help messages
These features has been highly inspired by kubectl grouping & help templating but has been considerably been stripped down to the needs of kn.
Signed-off-by: Roland Huß <roland@ro14nd.de>
* chore: Add missing file
* Update pkg/templates/command_groups.go
Co-authored-by: Matt Moore <mattmoor@vmware.com>
* chore: Add some test for error messages
* fix formatting
* chore: Add test
* moar tests
* Update pkg/kn/commands/completion/completion.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/source/apiserver/delete.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/service/list.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/route/route.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/revision/delete.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/plugin/plugin.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/service/delete.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/revision/delete.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/commands/service/delete.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* regen docs
* chore: Update conventions doc
* Move some direct configuration of rootcmd to NewRootCommand()
* Moved CaptureOutput to "test" package for reuse
Co-authored-by: Matt Moore <mattmoor@vmware.com>
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Refactor main flow, plugin and configuration handling
* The plugin handling has been moved out of the `KnDefaultCommand` constructor where it was executed as a side-effect. The original code from `kubectl` suffers from the same issue that plugin handling is not a top-level concern but was very likely introduced as an after-thought. Instead, the plugin handling is done now by a `PluginManager` which is explicitly called in `main()`.
* Configuration and bootstrap option handling is centralized in the package `option`. After the bootstrap happened, the content of the configuration file, as well as any other global configuration, can be obtained from methods on `config.GlobalConfig`. Also, all flag handling is delegated to cobra so that no own parsing is needed.
* Many of the logic in `pkg/kn/commands/plugin` for plugin management has been moved up to `pkg/kn/plugin` as this code is not only relevant for `plugin list` but also for the bootstrap process.
* fix: invalid subcommands will lead to a proper error message
* Update pkg/kn/config/types.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update pkg/kn/plugin/manager.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update hack/generate-docs.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update hack/generate-docs.go
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* chore: Add missing links
* chore: recert to shas in links in developer guide for now.
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
* Update flag names to --request and --limit
- Use singular flag names and support comma separated or repeated flag values
- Update tests and docs
* Update CHANGELOG
* Update the flag description and examples
* Remove release 0.15.0 header from CHANGELOG
* Add --requests and --limits resource flags
Fixes#490
- Add deprecation message for --requests-cpu, --requests-memory,
--limits-cpu and --limits-memory flag usage.
- Add error message if new and deprecated, requests and limits flags
are used together.
* Add resources requests and limits example for service create
* Add mock style unit tests
* Update existing unit tests for deprecated flags
* Add integration tests
* Add CHANGELOG entry
* Fix lint warnings
* Add unit tests for resource flags
* Fix typo for service name in e2e tests
* Refactor resource validation utility into test lib
* Remove commented out code
* Add references about managing resources and GPU in example
* Update image references in examples
* Make wait, no-wait and async flags per bool var CLI convention
Fixes#800
- Deprecated bool vars can be supported for CLI convention
- Bind --async flag value to --no-wait
- Only one flag among [wait, no-wait, async] can be provided, else raise an error
* Simplify conditionals
* Add unit tests for deprecated flag async
* Fix a typo
I find that I'm using annotations more and more and since `-a`
wasn't being used I decided we should save people from typing too much
Signed-off-by: Doug Davis <dug@us.ibm.com>
When specified on 'service create' the '--cluster-local' flag will
make the created service 'private' by setting its config visibility
to 'cluster-local'. This is done with label:
serving.knative.dev/visibility: cluster-local
The --no-cluster-local will remove the label.
* Add option for adding labels only to service and/or template
In this PR we are introducing 2 additional flags for setting label for
service(label-service) and revision(label-revision) only.
Signed-off-by: Andrew Su <asu@pivotal.io>
* Update docs
Signed-off-by: Andrew Su <asu@pivotal.io>
* Add changelog entry
Signed-off-by: Andrew Su <asu@pivotal.io>
* Refactor UpdateLabels method to be more generic.
* Refactored labels common code.
Signed-off-by: Shash Reddy <shashwathireddy@gmail.com>
* Pass pointer refernce instead of copy to update labels
Co-authored-by: Roland Huß <roland@ro14nd.de>
Co-authored-by: Andrew Su <asu@pivotal.io>
* add run as user flag #678
* add run as user flag #678
* add changelog for pr 679
* review comments for pr 679
* review comments for pr 679
* add test for config changes
* add user flag
* Add --pull-secrets flag
Fixes#616
- Add --pull-secrets flag for service create/update operations
- Setting empty string to flag clears the pull secrets
- List ImagePullSecrets for service in `service describe` default output
- Run e2e tests against latets serving v0.12.0 (ImagePullSecrets introduced in v0.11.1 release)
* Space separated field name for describe and update flag help msg
- Update the key name in service describe:
- ImagePullSecrets --> Image Pull Secrets
- ServiceAccount --> Service Account
- Update the help message for --service-account and --pull-secrets
* Add support for envFrom, volumeMounts, serviceAccountName, and imagePullPolicy
* Add comments for added functions
* Add test functions for --env-from
* Add test functions for --volume-mount
* Add test functions for --service-account-name and --image-pull-policy
* Add testing functions to cover the case "service update --env-from"
* Add test functions to cover the case "service update --volume-mount"
* Add missing test functions for config_changes.go
* Add testing functions for pkg/util/parsing_helper.go
* Fix a bug on a test case, caused by ignoring random orderedness of map
* Remove image-pull-policy because it is not supported by Knative
* Fix comments to clarify it as well as to fix a typo
* Remove service-account-name flags in order to submit it as a seperate PR
* Split --volume-mount flag into --volume-mount and --volume flags in order to enable multiple times mounting for the same volume
* Change the name of local variable to simplify
* Update docs
* Change the flag "--volume-mount" into "--mount", and fix it to make volume automatically when the config-map or secret is directley used. In addition, the test cases are changed to new unit test style. To keep the original orderedness given via flags, OrderedMap implementation is added as well
* Fix usage descriptions for the mount flag
* Factor out the name existence checking from createEnvFromSource
* Fix the usage description for --mount
* Sanitize a generated volume name
* Increased default timeout to 600s. This timeout will be triggered
only when the Ready condition stays in UNKNOWN for that long. If its
True or False then the command will return anyway sooner.
So it makes sense to go for a much longer timeout than 60s
* Enhanced output to indicate the progress
This change needs some updates to the API and introduces a 'MessageCallback'
type which is calle for each intermediate event with the "Ready" condition message.