* 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
* updating to use the hack repo
* eof
* you need to run update deps after codegen to pick up any new deps.
* do not reinvent update-deps.
* must be winter
* fix(tekton e2e): Fix CONTAINER_REGISTRY name generation
var `E2E_BASE_NAME` is no longer available
* debug: Run tekton tests
* Revert "debug: Run tekton tests"
This reverts commit dbe125ee04.
Dont expect mentioned key on the revision labels in service
expect tests now. The test is skipped for serving v0.18 release
and configured to only against current serving master.
see #https://github.com/knative/serving/pull/9710
* 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
The go.mod file was removed in
4ea31c444a
, and breaks building using Tekton.
The error is as follows:
STEP 3: COPY ./test/test_images/helloworld/ .
STEP 4: RUN CGO_ENABLED=0 GOOS=linux go build -mod=readonly -v -o server
build flag -mod=readonly only valid when using modules
subprocess exited with status 1
subprocess exited with status 1
error building at STEP "RUN CGO_ENABLED=0 GOOS=linux go build
-mod=readonly -v -o server": exit status 1
* 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
* build test images before e2e
* build test images before e2e
* build test images for e2e
* build test images for e2e
* build test images for e2e
* build test images for e2e
* use built test image in smoke test
* use built test image in smoke test
* change tests to use built test image
* change tests to use built test image
* change tests to use built test image
* change tests to use built test image
* add common base image for all purpose
* build images for e2e
* rebase with master
* add non root base image
* add non root base image
* 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
* feat: Add plugin listing to "kn --help"
This works on all levels. Test needs to be expanded still.
Fixes#266
* chore: Fix test
* Add test and ported #910 over.
* changelog update
* fix test
* Fix test
* fix integration tests
* fix test
* chore: Add some explanatory comments
* fix test
* Update description for sink flag
- Add examples for broker, service and URI
- Add note about default prefix and service alias
* Update the sink flag description
* Update cli conventions doc
* Update the sink prefixes mapping
- 'ksvc' prefix for knative services
- Remove 'svc' or 'service' prefixes mapping for knative services
* Hint in err msg to use 'ksvc' if used prefixes 'svc' or 'service'
* Update CHANGELOG
* Update source list e2e tests to refer ksvc prefix
* Update sink flag description
* 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
* Update unit test for invalid concurrency target value
* Vendor v0.16.0 eventing and serving
* Commit the LICENSES generated by hack/update-deps.sh
* Spare third_party dir from license check in hack/build.sh
* Update eventing and serving version for 'kn version'
* Use DeprecatedInjectionAnnotation key for backward compatibility
Fixes#918
Use DeprecatedInjectionAnnotation, i.e. "knative-eventing-injection"
for reconciling broker via namespace labeling and trigger annotations.
From eventing v0.16.0 release, this key is changed to "eventing.knative.dev/injection"
however, older eventing installation wont recognize it. So we continue
using the deprecated key until the sugar-controller would support reconciling
on either keys.
* Fix(kn version): Display eventing.knative.dev at v1beta1 version
We've been showing 'v1alpha1' in kn version while we actually
vendor and refer v1beta1 for eventing.knative.dev
* chore(e2e): Run tests against serving/eventing v0.16.0 release
* Update test for concurrency-target to expect new error message
the new error message for incorrect concurrency-target value contains "should be at least 0.01"
* Setup sugar-controller for released eventing version setup
- reuse knative_setup util from common lib for latest-release CI setup
* Fix typo in YAML URL and add subheader for sugar-controller install
We'll need sugar controller for reconciling broker for tests
which labels namespace and annotates the triggers.
Currently, sugar controller is not part of the eventing nightly release setup
by test-infra libs. This changeset adds install of same for nightly
CI setup.
* add kn export type
* add kn export type
* add kn export type
* Update pkg/apis/client/register.go
Co-authored-by: Matt Moore <mattmoor@vmware.com>
* e2e test for kn export type
* e2e test for kn export type
* add new type for kn export
* rebase
* rebase
Co-authored-by: Roland Huß <rhuss@redhat.com>
Co-authored-by: Matt Moore <mattmoor@vmware.com>
Co-authored-by: Roland Huß <roland@ro14nd.de>
* 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>
* return error message from using --untag with nonexistent tag
* improve err message for --untag and add e2e test
* change untagRevision to return bool and add traffic e2e tests
* update changelog
* 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
* prevent plugins that shadow commands of exsiting groups, e.g., kn-service-create is NOT OK
* list plugins that extend existing groups
* warn plugins that shadow command of existing groups
* add UTs for above
* 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
* fix(e2e): Create next namespace if one exists
Do not error out if the namespace to run e2e into exists, try creating
next one in row. Retry at 20 next namespaces, before erroring out.
* Tag plugin tests as !serving and !eventing
* Debug: Create a test namespace to see if its skipped
* Revert "Debug: Create a test namespace to see if its skipped"
This reverts commit 8b45fcef4d.
* Refactor file utils from e2e tests to test lib
* fix(e2e): Refactor e2e utils and resource actions
brings commonly re-used utilities into lib/test so they can be resused
and e2e can be run selectively for eventing/serving.
* Refactor service and revision e2e test utils into test lib
* Docstrings for exported e2e test utils
* refactor kn service export to export revisions
* refactor kn service export to export revisions
* refactor kn service export to export revisions
* refactor kn service export to export revisions
* kn service export refactor
* kn service export refactor
* kn service export refactor
* kn service export refactor
* review changes for #819
* chore: Update to Knative serving/eventing 0.14.0
and also move ApiServerSource to v1alpha2, adapting the option
(from "controller" to "labelSelector")
* fix go.sum
* chore: Update and fix tests
* chore: fix go.sum
* Use buildah task from master branch and paramterize FORMAT
* Configure pipeline v0.11.1
* DNM: Run tekton e2e in this PR
* Revert "DNM: Run tekton e2e in this PR"
This reverts commit 903f5bec409c90174a37cc84acd561a405ef896e.
* Add e2e test for different service and revision label
- Store results from one call and validate both revision and service labels
- Update var name for more better readability
Signed-off-by: Andrew Su <asu@pivotal.io>
* Test verifies expected labels are exact match to received labels
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>
* (refactor) address the e2e extract / refactor of issue #763
* various updates to address reviewers feedback
* renamed lib/test/integration to lib/test and package to test
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.
* feat(source): Add 'kn source list'
Fixes#480
- Add 'kn source list' listing the available sources COs
- Use dynamic client to
- find out available source types
- find the COs in given namespace for each source type
- Add --type flag to filter source list based on source type
- Add unit tests
- Add e2e tests
- Add CHANGELOG entry
* Update group for ApiServerSource in tests
* Add kn duck source type for holding common eventing source fileds
- Common infromation from sources are extracted into a struct
for source list command output
- Printer function picks the information from this struct object
and doesn't know the details about extracting this info from multiple
types of sources received
- Group and Version for list is set to empty string and Kind to 'List',
if printed a source list with multiple types of sources in machine readable
format
- Group, Version and Kind for list are kept intact if printed a source list
with same type of source objects in machine readable format
* Update go.sum
* Add WithType builder for listing source
- Separate the flags definition
- WithType builder can be re-used to filter the source types
- Add unit tests
* Update ApiServer source group to apiserversources.sources.knative.dev
* Fix typos and align
Co-authored-by: Roland Huß <roland@ro14nd.de>
* chore(e2e): Optimized tests
Smoke Tests now run before the E2E tests, but in the same cluster
* chore: Removed unneeded test
* fix
* fix
* fix
* fix
* chore: Update to serving & eventing v0.13.0
* refactor(source): Update to Knative eventing 0.13.0
* Moved to "sources.knative.dev" API group
* Replaced CronJobSource with PingSource (and removed unsupported options for service account, requests limits)
* Move to versions:
- SinkBinding v1alpha2
- PingSource v1alpha2
- ApiServerSource v1alpha1
* update to eventing 0.13.1
* go.sum fix
* fixed test
* test updates
* try to enhance error output
* fix test.
* update tests infra to 0.13.1
* chore(e2e): Refactor e2e to better track errors
* Collect results from various `kn` calls to
provide the context
* Changed sub-Run() commands to t.Log() to reduce
the log noise and get file + line information
in the log output
* Removed any Fatal() calls to allows the test
to properly finish
* Only output via t.Log() to get the output at the
proper places and allow Prow to better pick
up the test results.
* Most important: EMOJIS !! 🦆🦆🦆🦆🦆
* chore(e2e): Add more dumpers
* Moar debug
* added multiple parameters to revision and added e2e test
* add to changelog
* fix changelog table
* fix warning message and revision test
* remove commented lines
* remove 'successfully' from revision output
* added requires one or more revision name
* remove absent revision pre check
* re add nonexist revision
* fixed tests
* Implement human readable output for kn route describe
- Keeps the machine readable output
- Align the command description text, check for single argument, reported error messages and unit tests in service, revision, route, source binding describe commands
* Dont print separate section for owner references
* Print Service heading irrespective of owner.Kind == Service
* Align desc, err msg for trigger, apiserver and cronjob source
* feature(serving): Update API to serving.knative.dev/v1
Due to an issue with 0.12.0 (a missing constant) the update also includes an update
to the latest knative-serving and knative-eventing dependencies from master
(as reflected in version.go)
Signed-off-by: Roland Huß <roland@ro14nd.de>
* fix(serving): Bogus import removed
* fix(serving): Add missing go.sum entry
* validate sub command verb (#557)
* fix review comments for pr #555
* validate sub commands
* update error message
* use inner args returned by find func
* return appropriate error message for #557
* return appropriate error message for #557
* Revert "fix review comments for pr #555"
This reverts commit 14ea8d2dc6.
* review comments for pr 589
* misleading error message when verb is bad (#557)
* misleading error message when verb is bad (#557)
* misleading error message when verb is bad (#557)
* chore(e2e): Namespace specific k8s resources for tests
Completes #576
- For ApiServer source: ClusteRole and ClusterRoleBinding name(s)
are now test-namespace specific. They are cleared in test's tearDown method.
- Use constant prefix as:
clusterRolePrefix = "apiserver-role-"
clusterRoleBindingPrefix = "apiserver-binding-"
- Use constant ServiceAccountName as:
testServiceAccount = "apiserver-sa"
- Rename methods and cleanup.
* Use correct format specifier for error as %v instead of %s
Fixes#601
- Also replace deprecated `serviceAccount` with `serviceAccountName`
- Sync helloworld test image code from https://github.com/knative/docs/tree/master/docs/serving/samples/hello-world/helloworld-go
- Use local version of buildah task instead of one from catalog, adding `--format=docker` in `buildah bud` command
- to build and push the image to registry in docker format to match the manifestype `application/vnd.docker.distribution.manifest.v2+json`
- Update pipeline to add parameter BUILDER_IMAGE and sets it to quay.io/buildah/stable:latest
* Dont return created ApiServer source object but only error
- After ApiServer source object is created, we don't need it to pass
around in caller function.
* Align creating ApiServer source client, removes unit tests
* Add ApiServer source update command
* Rename TestMockKnClient to TestMockKnCronJobSourceClient
* Add mock client for ApiServer Source and its tests
* Add mock unit tests for create, delete and update
* Add e2e tests for apiserver source update
- Add a test for apiserver source sink update
- Verify the updated sink name after the apiserver source is created
- Update resource names in existing tests
* Uses builder pattern for ApiServer source create command
* Update ApiServer source create/update flags and required config
* Uses builder pattern for ApiServer source update command
* Align create/update/delete description and error messages
* Add unit tests for get/create/update/delete in apiserver_client.go
* Update e2e tests expected output per change in commands output
* Golint fixes, Api -> API and add exported method docs
* Rename a test method and source update command description
* Add ApiServer source describe command
- Add command and unit tests
- TODO for later: Add 'Controller Selector' section for --verbose
- Run only serving specific e2e tests locally
```
E2E_TAGS="serving" ./test/e2e-tests-local.sh
```
- Run only eventing specific e2e tests locally
```
E2E_TAGS="eventing" ./test/e2e-tests-local.sh
```
- Run all e2e tests locally
```
./test/e2e-tests-local.sh
```
- Pin contrib.go.opencensus.io/exporter/stackdriver@59d068f8d8ff5b653916aa30cdc4e13c7f15d56e
- Pin knative.dev/pkg@release-0.11
- Move `Destination` from (knative.dev/pkg) v1alpha1 to duckv1beta1
- Run tests against Eventing v0.11.0
* feat: kn source list-types (builtin types)
- Only lists the builtin source types
- Uses client-go dynamic client for listing CRDs
- Adds DyanmicClient interface to KnParams
- Adds printing options
* chore(lint): Address golint suggestions
* Rebase and update venodr/modules.txt
* Adds unit tests for DynamicClient in types.go
* Add kn source list-types command in smoke tests
* Constants for the CRD GVR and source identifier label key value
GVR as:
- Group: apiextensions.k8s.io
- Version: v1beta1
- Resource: customresourcedefinitions
Label as:
{"duck.knative.dev/source": "true"}
* Add tests for dynamic client
* Add description about SinkBinding source type
as - "Binding Pattern for ContainerSource"
* Remove unused imports
* Adds unit tests for list-types command processing
* More unit tests for flags
* Adds e2e tests for kn source list-types
- also test the YAML output
* Sort the source types while listing them
- Update the unit tests accordingly
* Add examples
* Add unit tests for CreateDynamicTestKnCommand
* Fix typo in unit tests
* golint fixes
* Updates to vendor/modules.txt after rebase
* Remove the extra lines
* Eventing setup in CI
- Update test-infra
- Use library functions for setting up released and latest Eventing
- Set up Eventing 0.10.2 and nightly release in `latest-release` and default e2e tests CI job respectively
* Fix typo in variable name and update formatting
* Integration tests for Tekton
* Use knative/client instead of fork
* also put back the e2e-tests into its original format where it doesn't
run the tekton tests
* Run ./hack/build.sh with Go 1.12
* Pull buildah and kn tasks directly from catalog
* Revert "Use knative/client instead of fork"
This reverts commit 2ab272f587.
* Revert "Revert "Use knative/client instead of fork""
This reverts commit f14c2105e2.
* Update Tekton to 0.8.0
* Revert "Use knative/client instead of fork"
This reverts commit 2ab272f587.
* Use knative/client instead of fork
This reverts commit 8eb87ada02.
* Export variables after calling initialize
* Run against arbitrary Docker registry
* Conditionally install Tekton
* Use knative/client instead of fork
This reverts commit 3800adbf69.
* Revert "Use knative/client instead of fork"
This reverts commit 71a3d33b5a.
* Simplify passing the flag to test
* Simplify imports
Fixes#507
- removes `--wait-timeout` flag, was set to 240 seconds which is lesser than the default timeout (600 seconds)
- removes duplication of namespace flag in another smoke test command
- Uses custom `unit_tests` function in presubmit-tests.sh to run unit tests
- Custom function adds a flag `-mod=vendor` in addition to default unit tests runner
- The deps are already downloaded part of the source repo, mentioned flag uses it (vendor dir)
and avoids downloading the deps afresh
- This prevents(in unit tests) the flake we see 'go: error loading module requirements' which occurs
due to download error
Related to #500
- The fix for serving#6060 merged (serving#6069), removing the workaround
at client side e2e tests for additional LCR=LRR check after service update return.
- Now we expect service status to have LCR=LRR if the service's conditions turned True after last update.
- This changeset updates serving version for pull-knative-client-integration-tests-latest-release
- Serving nightly release is tested in prow job pull-knative-client-integration-tests
* Uses BYO revision names for traffic splitting e2e tests
- Avoid getting the revision name after service create/update using LCR or LRR from service status
* Pauses 3 seconds before verifying actual vs expected traffic targets
- for traffic splitting e2e tests
- Check the comment on https://github.com/knative/client/issues/500#issuecomment-554355688
* Revision describe rebaseable
* Fix up for rebase
* Some tests
* moretests
* Forgot part of the refactor!
* Fix unit tests
* Change e2e tests and respond to feedback
* fix(version): Displays supported APIs and version
Fixes#404
```
./kn version
Version: v20191017-local-6328a73-dirty
Build Date: 2019-10-17 09:55:55
Git Revision: 6328a73
Supported APIs:
- serving.knative.dev/v1alpha1 (knative-serving v0.8.0)
```
* Removes ServingVersion feeding from ldflags
- hardcodes the supported APIs as they're supposed to be updated when we bump deps
* Fixes typo in e2e tests
* Uses array for deterministic order of printing supported APIs
* fix(e2e): Improves the error message upon mismatch of traffic targets
Fixes#434
- The error message now prints the expected/actual length of traffic targets
- Also prints the actual traffic targets
* Fixes Golint errors
Golint errors: should replace errors.New(fmt.Sprintf(...)) with fmt.Errorf(...).
* 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.
* feat(annotations): Adds annotation flag for service create and update
- Adds specified annotations to service object meta and revision template meta
- Adds --annotation / -a flag to service create and update options
- User can specify '-' at the end of the annotation key to remove an annotation
- Adds unit and e2e tests
- Updates docs and changelog accordingly
* Adds example for service create with annotation
* Adds mock unit tests for service update with annotations
* Removes the short hand -a for annotation flag
* Change symbols, add latest and latest ready
* More info on what is latest and tags. Filter annotations and labels.
* Make current tests pass
* More tests
* No longer require Annotations in test
* Add error
* Adjust tests to match adjusted output
* Respond to review comments
* one more
* Fix double printing of revisions + test for it
* Differentiate between latest traffic and latest ready w/o that being reason for traffic
* Re-build with go 1.12
* Rebased
* Limit non-verbose output to error and image
* Fix tests for new format
* Option to freeze revision to digest
* Tests pass. Checkpoint.
* Tests for env now check pinning to digest
* Bool flag using convention. Tweak usage.
* Describing the image carefully using the annotation and digest
* lint
* Test matrix of locking to digest behaviors
* Expose both flags, and rewrite help text again
* Unit tests.
* Removed unsed method
* Add tests for getting base revision
* Make tests actually test stuff better
* Make tests actually test stuff better
* A mergeout killed a returning of error. Restore it
* Help text again
Fixes#364
- Ensure kn cross platform build works in pre-submit tests
- Run ./hack/build.sh -x after running existing pre-submit tests
- defines a function post_build_tests to invoke cross platform builds
- post_build_tests will be run by test-infra after build tests are compelete
* fix typo (misspell)
* ineffectual assignment to err (ineffassign)
* if block ends with a return statement, so drop this else and outdent its block (golint)
* should replace errors.New(fmt.Sprintf(...)) with fmt.Errorf(...) (golint)
* struct field LogHttp should be LogHTTP (golint)
* fix last typo
For the sake of consistency with out own service commands and for kubectl,
`kn plugin list` should print:
```
No plugins found.
```
`kn service list` should print:
```
No services found.
```
and not `No resources found.` like it does now.
Same for `kn routes list`.
* Update serving to 0.8. Try building.
* Find the right serving version
* Change our own import path to knative.dev to match
* Remove dependency on old version of client
* Update yaml template
* Add sleep to test to deal with race
* fix merge conflict
* Update vendor modules
- Add e2e tests
- Use '=' for traffic and tag assignment instead of ':'
- Use --tag and --untag flags for tagging traffic targets
- Use --traffic flag for setting traffic portions
- Allow --traffic portion to either take revisionName or tagName
- Uses @latest identifier for referencing latest revision of service
- Dont throw error if requested revision=tag pair is same
- Support having multiple tags for a revision
- creates a new target in traffic block if revision present in traffic block with new tag requested
- creates N new targets in traffic block if revision absent in traffic block with Nxnew tags requested
- Ensure updating tag of @latest requires --untag flag
- streamline updating tag for latestReadyRevision
- adds respective tests
- adds tests for ensuring given traffic sum to 100 on CLI and fail fast
- Add note about preference of order in case where tagOfOneRevision == revisionOfAnother,
first tags are checked and assigned traffic if any, as tags are supposed to be
unique in traffic block and should be referenced in such scenario.
- Remove the examples from flag description, moves it to service update command example section
- Pass only traffic block to compute trffic, makes it better to consume.
- Cover more error cases for invalid value format for assignments, covers a=b=c, a=, =b, or variants of them
- Separate and improves the error messages
- Add unit tests for traffic computing
- Add sanity checks in dedicated function verifyInputSanity
- traffic perents should sum to 100
- individual percent should be in 0-100
- repetition of @latest or tagName or revisionRef is disallowed
- Verify traffic percents sum to 100 on client side and fail fast
- Add e2e tests for traffic splitting
- create and update service, assign tags and set traffic to make an existing state
- run the scenario on existing state of service
- form the desired state traffic block
- extract the traffic block and form the traffic block struct actual state
- assert.DeepEqual actual and desired traffic blocks
- Use logic to generate service name in the same way as namespace, use different service name per test case
- Run e2e test for traffic splitting in parallel
- Use timeout duration of 30m for e2e tests, use timeout parameter for go_test_e2e library function
- Use tagName in flag description of --untag, avoiding conflict with --tag flag
- Update CHANGELOG