* 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
* Calculate traffic split when N-1 revisions are specified
* Added test cases for traffic split
* enhanced error messages and added example
* added e2e test
* refactored verifyInput function
* Update docs/cmd/kn_service_update.md
Co-authored-by: Navid Shaikh <shaikhnavid14@gmail.com>
* Update pkg/kn/commands/service/update.go
Co-authored-by: Navid Shaikh <shaikhnavid14@gmail.com>
* added unit test for revision list error
Co-authored-by: Navid Shaikh <shaikhnavid14@gmail.com>
* 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
* Changing the Default retry value
* Moved default retry variable to pkg/config
* Removing MaxRetries constants
* Use UpdateServiceWithRetry function during service create
* remove all instances of MaxUpdateRetries
* Deprecate `lookup-path` option and updated relevant documentation
Lookup in path is now the default for all plugins.
This option will be removed eventually in a future version,
when path lookup is enabled uncoditinally and can't be turned of.
* Update versions for 0.26.0
* 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>
* Fix describe/list commands with json/yaml output format
Makes sure to always set proper GroupVersionKind on unstructured objects and lists to avoid marshalling errors when printing in json/yaml output format.
* Deliberately decide to add GVK only to list/read operations in the tests
* rebased and cleaned up
* add some unit tests
Co-authored-by: Roland Huß <rhuss@redhat.com>
* Adding --tls option to domain create command
* Adding client test for builder
* Update CHANGELOG.adoc
Co-authored-by: David Simansky <dsimansk@redhat.com>
* Edited domain create usage message
* Update docs/cmd/kn_domain_create.md
Co-authored-by: Roland Huß <rhuss@redhat.com>
* Update pkg/serving/v1alpha1/client.go
Co-authored-by: Roland Huß <rhuss@redhat.com>
* Update docs and usage message
* Changing test domain name in e2e for tls test
* fix e2e domain create test case
Co-authored-by: David Simansky <dsimansk@redhat.com>
Co-authored-by: Roland Huß <rhuss@redhat.com>
* Deprecate `lookup-path` option and updated relevant documentation
Lookup in path is now the default for all plugins.
This option will be removed eventually in a future version,
when path lookup is enabled uncoditinally and can't be turned of.
* Review fixes
* remove trailing whitespace
* readd config to make test coverage happy
* 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>
* fixing bug when looking up plugins on path with slash in argument
* test for dropping slash substrings
* use path separator
* more tests, using pathseparator in tests
* Server errors should not be tainted by client error messages
* Adding more test cases for status errors
* Adding Changelog entry
* k8s api errors should be processed first
* Fix unit tests clash with local kubeconfig
* Add unit tests
* Format source code
* Add more tests to cover types.go
* Add more tests to cover namespaced.go
* Add a update timestamp anytime a new revision should be triggered. Previously client side revision names was this trigger but since we switched to server-side revision naming by default that didn't work anymore (and hasn't worked with server-side revision naming before, too).
Fixes#1318.
* fix e2e test
* add some unit tests
* Update error handling + added some tests
* fixed compile error in test
* lint fixes
* 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
* Refactor waiting loop to use resourceVersion
* Add test coverage for delete ops
* Reformat code
* Move helper function to test file
* Add more test coverage
* Update k8s dependencies to v0.20.7
* Update vendor dir
* Fix license dir
* Remove commented code
* Update knative deps
* Use scheme to add known types for dynamic client
* Update go-licenses in build script
* Update Eventing Sources API to v1
* Update vendor dir
* Fix imports formatting
* Move PingSource client to v1beta2
* Fix sink resolve
* Fix serving version string
* Use Eventing version 0.22.1 in e2e tests
* Refactor: add ctx param to KnServingClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from knServingClient to ServingV1Interface
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Making wait function cancellable
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Test using background ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Handling SIGINT and SIGTERM
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnEventingClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from knServingClient to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Test using background ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup style
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Removing unnecessary dependency
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnChannelsClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from knServingClient to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnSubscriptionsClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from subscriptionsClient to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnSinkBindingClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from knBindingClient to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Test using background ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnDynamicClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from knDynamicClient to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Test using background ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnAPIServerSourcesClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from APIServerSourcesRecorder to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Test using background ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnContainerSourcesClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from containerSourcesClient to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Test using background ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: add ctx param to KnPingSourcesClient funs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Passing ctx from pingSourcesClient to knative.dev interfaces
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Using cmd.Context() in pkg/kn/commands
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Test using background ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Removing ctx param from RawClient()
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* ctx for watch/polling
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fix per review request
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: extract ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Refactor: Namespace not requiring ctx
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Revert "Handling SIGINT and SIGTERM"
This reverts commit 9598646fda.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Update CHANGELOG
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Add test for Wait()
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Add test for Wait()
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* # This is a combination of 9 commits.
# This is the 1st commit message:
adding BUILT-IN SOURCE column for kn source list-types
# The commit message #2 will be skipped:
# changing list test to check for BUILT-IN SOURCE column
# The commit message #3 will be skipped:
# changing e2e source list test to check for BUILT-IN SOURCE column
# The commit message #4 will be skipped:
# adding CHANGELOG entry
# The commit message #5 will be skipped:
# kn source list-types: changing BUILT-IN SOURCE to BUILT-IN and moving DESCRIPTION column to the end
# The commit message #6 will be skipped:
# changing BUILT-IN SOURCE to BUILT-IN in changelog
# The commit message #7 will be skipped:
# Update CHANGELOG.adoc
#
# Co-authored-by: David Simansky <dsimansk@redhat.com>
# The commit message #8 will be skipped:
# kn source list-types: changing column header to S, values to X, and moving to second column
# The commit message #9 will be skipped:
# fixing CHANGELOG merge conflict
* adding BUILT-IN SOURCE column for kn source list-types
* kn export defect to honor mode
* add test for export mode without revisions
* change default to export
* add export as default
* change tests for export mode change
* 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
* update to k8s 0.19.7, go v1.15, fix gnostic
* oops, did not run ./hack/build.sh
* Fix unit tests that broke because of k8s 1.19 update
* Update asserting in test to adapt to new jsonpath output behaviour
Looks like that strings are quoted now in arrays.
* fix one more assert
Co-authored-by: Roland Huß <roland@ro14nd.de>
* Ignore serviceUID and configUID labels in service export result
While exporting the service using `service export` command, ignore
the service labels with keys 'configUID' and `configUID`
see https://github.com/knative/serving/pull/10539 for further details.
* Fix the var names per golint recommendation
* Ignore the serviceUID and configUID labels from revision labels
* Add e2e for verifying configUID and serviceUID labels are absent
* Add CHANGELOG
* 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
* Update deps for release v0.20.0
* Update version command
* Update CHANGELOG
* Run tests against serving and eventing v0.20.0
* Run tests against serving and eventing v0.20.0
* Fix a race condition between creating a watch and initiating the action that emits the event it is watching for
* update changelog
* add PR ID to changelog entry
* Fix merge in Changelog
* Fix table format in Changelog
* Embed the namespace in request body while creating channels
since on the eventing side, defaulting for channel isnt picking
the namespace from the context (see https://github.com/knative/eventing/issues/4514)
workaround for #1100
this changeset should be reverted when eventing#4514 is resolved
* Add CHANGELOG
* feat: "kn service apply"
This commit introduces a client-side apply with a plain JsonPatchMerge. This is more limited than a StrategicPatchMerg as it does not allow to merge lists (they are just overwritten). Also is not a real 3-way merger that would lead to a conflict when both the, the server-side and the provide update overlapp in fields that updated, compared to the shared original configuration. This is a problem of JsonThreeWayMerger itself, as pointed out in https://github.com/kubernetes/kubernetes/pull/40666#pullrequestreview-502804243.
This limitation is shared with kubectl, which suffers from the same issue if using `kubectl apply` with a custom resource (i.e. with everything that has schema that is not registered within kubectl).
Tests are missing, too, but will come soon
* chore: Add tests for 'kn apply'
* refactor: Removed PatchService from pulic API interface
* fix: Display of service URL at the end, when no changes apply
* chore: Add initial E2E test
* chore: Implemented review suggestions
* More tests
* Example for kn service apply
* Remove commented-out code
* lint fixes
* fix formatting of kn service apply doc
* fixing go.sum
* chore: Update deps
* Update autoscaling annotation validation
see ref: https://github.com/knative/serving/pull/9496
* Replace DeprecatedInjectionAnnotation with InjectionAnnotation
* Vendor deps at master
* Use context.TODO instead of context.Background
* moving utilities of handling podspec to podspec_helper
* address comments
* refactor code base
* change the input parameter from ccmd to flagset
* remove comments and add CHANGELOG
* Added back functionality to deprecated max-scale/min-scale
* Updated based on review, removed duplicate code and added an or statement, also updated deprecated message
* feat: Add subscription CRUD
- Add kn subscription command group and CRUDL sub-commands
- create/update uses following flag names for better alignment:
- --sink for subscriber
- --sink-reply for reply
- --sink-dead-letter for dead-letter-sink
- Add 'subscriptions' and 'sub' aliases
- Introduce shared library `knative.dev/client/lib/printing`
to print Sink object in describe output
* Set default channel type messaging.knative.dev/v1beta1:Channel
i.e. if no prefix is given to `--channel`, consider it of `Channel` type
* Update e2e tests
* Update channel flag description
* Pin pkg to release-0.18 version
* ./hack/update-deps.sh --upgrade && ./hack/update-codegen.sh
* bump k8s version to 1.18.8
* Fix the brokerage of importing latest serving
* exclude script/test-infra md from md check
* 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
* feat(channel): Manage knative eventing channels
- Support specifying the type of channel to create using --type.
- Default is to use messaging layer configuration for channels
- Channel type aliases via kn config and alias for InMemoryChannel
- User can now configure channel type aliases in kn config and specify
alias to GVK mappings for easy reference on CLI and refer with `--type` flag
- User can also use inbuilt alias 'imc' for InMemoryChannel
* Let channel reconcile, sleep for 5 secs after creation
* Add imcv1 and imcv1beta1 aliases
* Rename imcv1 alias to imc
* chore: Add support for internal plugins
* added test for internal plugin lookup
* add changelog entry
* fix formatting
* update to latest changes on main
* Added more tests + some docs
* formatting fix
* moved to proper injection label for setting up the broker in integration test
- Use custom GVK {Group: client.knative.dev, Version: v1alpha1, Kind: SourceList}
- Source list may contain different source types CO and machine readable output (using -o)
requires List object to have GVK set, since the list contains different types of source COs,
we set a custom client GVK on it.
Fixes#953
* Fix exit code 0 upon service delete
* Mentioned bug fix in CHANGELOG.adoc
* Add error check test for service not found
* Fix for kn revision delete failure exit code and add test cases
* Testing changes in test cases for failure in intergration tests
* Fix test case error causing integration test failure
* seperate PodSpec from Service flags
* loop over flag names
* remove NamePrefix and commented code, add changelog
* update pr number in changelog.adoc
* List inbuilt sources if CRD access is restricted
Fixes#947
- Identify restricted access error
- If server returns restricted access error, fallback to listing
only eventing inbuilt sources using their GVKs.
- List any inbuilt source (ApiServerSource) object and read the error
to know if eventing is installed for `kn source list-types`.
* Fix golint warnings
* Remove unused imports
* Verify each built in source before listing source types
* Improve the check if sources are not installed in the cluster
* Update finding forbidden error
* Update finding errors
* Add unit tests for IsForbiddenError util
* Add unit tests
* Add tests for dynamic pkg library
* Add unit tests for case when no sources are installed
* Update test name