Releases
Highlights of v0.5.2 release
This small release comes with one bug fix and one tiny improvement which makes developer experience while using ike CLI more pleasant.
Autocompletion for flags with limited options
For flags which have limited options we have enabled autocompletion showing only the possible values. For example:
$ ike develop --method <TAB>
inject-tcp vpn-tcp
Fixed --watch default behaviour
We’ve also discovered small, but a bit annoying bug of a --watch feature.
With the default settings whenever you did something in Git while running ike develop it was restarting the service under development. That should be behaving correctly now - it only restarts the service when you change the code, not Git internals :)
All changes in this release
Build System Integration
New features
-
fix(tekton): improves tekton script by using env vars (#1046), by @bartoszmajsak
Command line
New features
-
feat(flag): enables limited-choice flags (#1055), by @bartoszmajsak
-
chore(tp): moves tp cmd logic to the wrapper (#1048), by @bartoszmajsak
Bugs
-
fix(watch): correctly excludes paths starting with
.(#1062), by @bartoszmajsak
Testing
New features
-
chore(e2e): replaces hello-world container with 2MB image (#1043), by @bartoszmajsak
Latest dependencies update
-
github.com/onsi/gomega to 1.20.0 (#1052), by @dependabot
-
github.com/spf13/afero to 1.9.2 (#1053), by @dependabot
-
golang.org/x/tools to 0.1.12 (#1057), by @dependabot
-
google.golang.org/grpc to 1.48.0 (#1041), by @dependabot
-
k8s.io/api to 0.24.3 (#1039), by @dependabot
-
k8s.io/apimachinery to 0.24.3 (#1037), by @dependabot
-
k8s.io/client-go to 0.24.3 (#1040), by @dependabot
-
k8s.io/code-generator to 0.24.3 (#1036), by @dependabot
-
kisielk/errcheck to 1.6.2 (#1063), by @dependabot
-
mikefarah/yq/v4 to 4.27.2 (#1065), by @dependabot
-
prometheus/client_golang to 1.13.0 (#1064), by @dependabot
-
protobuf to 1.28.1 (#1056), by @dependabot
-
schollz/progressbar/v3 to 3.9.0 (#1058), by @dependabot
Highlights of v0.5.1 release
This minor release brings one important change. From now on you can use ike on arm64 chips!
While we are figuring out the best way to test ike on ARM64 chips, this new binary version is shipped as-is. If you face any problems using it, please open an issue right away!
|
All changes in this release
Operator
Bugs
-
fix(operator): pins olm image to be aligned with operator-sdk version (#1030), by @bartoszmajsak
Project infrastructure
New features
-
feat(build): adds support for ARM64 chips (#1033), by @bartoszmajsak
Bugs
-
fix(operator): pins olm image to be aligned with operator-sdk version (#1030), by @bartoszmajsak
Testing
New features
-
chore(circleci): updates olm version (#1026), by @bartoszmajsak
Latest dependencies update
-
k8s.io/klog/v2 to 2.70.1 (#1017), by @dependabot
-
sigs.k8s.io/controller-runtime to 0.12.3 (#1018), by @dependabot
Highlights of v0.5.0 release
This long postponed release has been cooking for a while, but it’s finally here!
There’s one important change - to have our own, distinct naming we prefixed maistra.io apiGroup with workspace. across the project. So all existing sessions won’t be recognized by this version.
From this version onward we are collecting metrics on internal our calls, so you have an insight to what our controller is doing.
On top of that we optimized network traffic by leveraging PATCH operations instead of PUT when manipulating our existing resources.
And to top this announcement off with a screenshot - Session custom resource is now shown as a wheel icon in Openshift :)
All changes in this release
Build System Integration
New features
-
chore: extracts task preparation logic to its own script (#944), by @bartoszmajsak
Command line
Bugs
-
fix(tp): handles telepresence version newer than v1 (#962), by @bartoszmajsak
Documentation
New features
-
docs: adds details about privilege containers for OpenShift (#991), by @bartoszmajsak
-
chore(docs): includes section about using minikube for dev (#956), by @bartoszmajsak
Operator
New features
-
feat(client-go): uses PATCH instead of PUT for istio resources (#937), by @bartoszmajsak
-
feat(operator): collect metrics for actions and api calls (#932), by @aslakknutsen
-
feat: adds workspace. prefix to apiGroup (#909), by @bartoszmajsak
-
feat(operator): add podStatus ui wheel to component (#875), by @aslakknutsen
Bugs
-
fix(operator): add new groupname to csv config (#920), by @aslakknutsen
Project infrastructure
New features
-
chore(circleci): bumps e2e machine class to large (#1001), by @bartoszmajsak
-
chore(golang): bumps to 1.17.11 (#996), by @bartoszmajsak
-
fix(circleci): upgrades resource class for docker build (#995), by @bartoszmajsak
-
feat(make): enables image builder overwrite (#954), by @bartoszmajsak
-
feat(make): renames docker to container/image (#922), by @bartoszmajsak
-
chore(circleci): bumps golang builds to 1.17 (#884), by @bartoszmajsak
Bugs
-
fix(make): extracts release notes generation to script (#1014), by @bartoszmajsak
-
fix(gh): updates golangci-lint gh action (#990), by @bartoszmajsak
-
fix(scripts): handles unbound variables properly (#947), by @bartoszmajsak
Testing
New features
-
chore(test): makes tmp file system instance-based (#923), by @bartoszmajsak
-
feat(gh-actions): defines catlin tekton task linter job (#900), by @bartoszmajsak
-
test: add tests for validation rules (#876), by @aslakknutsen
Bugs
-
fix(operator): runs the same test suite as on hub PR (#933), by @bartoszmajsak
Latest dependencies update
-
actions/checkout to 3 (#976), by @dependabot
-
actions/github-script to 6 (#972), by @dependabot
-
actions/setup-go to 3 (#981), by @dependabot
-
actions/setup-python to 3 (#975), by @dependabot
-
build(deps): to 8.5 (#1012), by @bartoszmajsak
-
build(golang): to to (#908), by @bartoszmajsak
-
controller-runtime to 0.10.2 (#938), by @dependabot
-
controller-tools to 0.9.2 (#1005), by @dependabot
-
deps(golang): to to (#958), by @bartoszmajsak
-
evanphx/json-patch to 5.6.0 (#1002), by @dependabot
-
feat(tests): to v2 (#969), by @bartoszmajsak
-
fsnotify/fsnotify to 1.5.4 (#999), by @dependabot
-
github.com/fsnotify/fsnotify to 1.5.1 (#899), by @dependabot
-
github.com/go-cmd/cmd to 1.4.1 (#1006), by @dependabot
-
github.com/joho/godotenv to 1.4.0 (#926), by @dependabot
-
github.com/mikefarah/yq to 4.13.5 (#949), by @dependabot
-
github.com/mikefarah/yq/v4 to 4.12.2 (#898), by @dependabot
-
github.com/onsi/ginkgo to 1.16.5 (#942), by @dependabot
-
github.com/onsi/ginkgo/v2 to 2.1.4 (#1009), by @dependabot
-
github.com/onsi/gomega to 1.16.0 (#897), by @dependabot
-
github.com/spf13/cobra to 1.5.0 (#1000), by @dependabot
-
github.com/spf13/viper to 1.12.0 (#1008), by @dependabot
-
go.uber.org/goleak to 1.1.12 (#939), by @dependabot
-
go.uber.org/zap to 1.21.0 (#997), by @dependabot
-
golang.org/x/tools to 0.1.11 (#1010), by @dependabot
-
golangci-lint-action to 3.2.0 (#984), by @dependabot
-
google.golang.org/grpc to 1.47.0 (#998), by @dependabot
-
google/go-github to v41.0.0 (#968), by @bartoszmajsak
-
google/protobuf to 1.27.1 (#895), by @dependabot
-
gopkg.in/h2non/gock.v1 to 1.1.2 (#896), by @dependabot
-
istio.io/client-go to 1.11.4 (#945), by @dependabot
-
k8s.io/api to 0.22.2 (#916), by @aslakknutsen
-
k8s.io/code-generator to 0.22.4 (#959), by @dependabot
-
k8s.io/controller-runtime to 0.10.0 (#906), by @dependabot
-
kisielk/errcheck to 1.6.1 (#1011), by @dependabot
-
mikefarah/yq/v4 to 4.25.3 (#1007), by @dependabot
-
operator-lib to 0.8.0 (#943), by @dependabot
-
prometheus/client_golang to 1.12.2 (#994), by @dependabot
-
protobuf to 1.28.0 (#1003), by @dependabot
-
schollz/progressbar/v3 to 3.8.6 (#1004), by @dependabot
-
sigs.k8s.io/yaml to 1.3.0 (#928), by @dependabot
-
ubi8/ubi-minimal to 8.5 (#955), by @bartoszmajsak
Highlights of v0.4.0 release
This release brings significant refactoring of istio-workspace controller internals. We have rewritten how we validate, locate and manipulate resources involved in the development Session. That said, it does not affect the users. That’s the aim of refactoring after all ;)
In addition, we expose Conditions to indicate steps and their progress. Now you are able track the current state of the session via the session.status.state field. We keep it simple for time being, with tree simple states:
-
processingwhich can transition to -
failedif things go wrong, -
or
succeededif all went fine.
On top of that you can look at the state of the individual resources manipulated in the conditions list where the source field references the specific resource.
All changes in this release
Build System Integration
Bugs
-
fix(shellcheck): reworks ike-create task (#843), by @bartoszmajsak
Command line
New features
-
chore: do not show cmd output when getting tp version (#868), by @bartoszmajsak
Operator
New features
-
feat(operator): add validation chain that blocks on error (#866), by @aslakknutsen
-
feat: adds condition when the source ref is located (#865), by @bartoszmajsak
-
feat(operator): reworks Controller internals to be stateless (#858), by @aslakknutsen
Bugs
-
fix: populates the missing Status fields RefNames & Strategies (#867), by @aslakknutsen
Project infrastructure
New features
-
feat(circleci): aggregates junit reports for CircleCI (#853), by @bartoszmajsak
Bugs
-
fix(make): sets mv with --force flag to avoid prompting (#848), by @bartoszmajsak
Latest dependencies update
-
actions/github-script to v4.0.2 (#821), by @dependabot
-
chore(golint): to and (#842), by @bartoszmajsak
-
feat(operator): to latest (#855), by @bartoszmajsak
Highlights of v0.3.0 release
The main focus of this release has been to improve error handling and bug fixes.
Mutate Virtual Services connected to a Gateway
We fixed a bug reported by our new friend Jorge Martinez that came into play when
trying to develop on a service that is connected to a Gateway. Simply put we handled the cases differently if it was connected
and not. A Connected service was implied to only create a new 'subdomain' handler to support the custom domains, while a non connected one would
support the header matches. Now this is changed so a connected service supports both, allowing you to develop exposed and internal services.
The Session Name is now validated to follow RFC 1123
The session name is used as part of the sub domains that are created and needs to follow the DNS naming spec. We now validate that it does before failing later. :)
Changed to use emperror for more detailed errors
With emperror we’ve got the ability to attach contextual metadata to the errors which should make it easier to figure out what is wrong.
All changes in this release
Build System Integration
New features
-
feat(log): introduce emperror for errors with details (#837), by @aslakknutsen
Command line
Bugs
-
fix: wrapped ike command uses full path of the parent cmd (#831), by @bartoszmajsak
-
fix(session): makes sure session name follows RFC 1123 (#835), by @bartoszmajsak
Operator
Bugs
-
fix(operator): mutate both connected and not vs (#838), by @aslakknutsen
-
fix(error): handle no destination rules found error (#828), by @aslakknutsen
Project infrastructure
New features
-
chore(gh-actions): pins ubuntu to ubuntu-20.04 (#836), by @bartoszmajsak
Latest dependencies update
-
github.com/mikefarah/yq/v4 to 4.7.1 (#830), by @dependabot
-
github.com/onsi/ginkgo to 1.16.1 (#824), by @dependabot
Highlights of v0.2.0 release
DestinationRule TrafficPolicy
Starting from this release we will reuse the TrafficPolicy rules defined for the source version on the cloned version when
setting up a new route.
All changes in this release
Build System Integration
Bugs
-
fix(tekton): reworks shell scripts to comply with SC (#817), by @bartoszmajsak
Documentation
New features
-
chore(docs): updates release process description (#816), by @bartoszmajsak
Operator
New features
-
feat(operator): new destinationrule use the same trafficPolicy (#808), by @aslakknutsen
Bugs
-
fix(operator): increase operator resource limits (#814), by @aslakknutsen
Project infrastructure
New features
-
fix: rename Dockerfile to Containerfile (#819), by @aslakknutsen
-
feat(gh-actions): squashes pre-release commits (#813), by @bartoszmajsak
-
feat(gh-actions): infers version from title (#812), by @bartoszmajsak
-
fix(release): add skip-build directive to release commits (#806), by @aslakknutsen
Bugs
-
fix(build): set go_package in protoc to comply with new v (#807), by @aslakknutsen
-
fix(release): add quotes to tekton version in yaml (#805), by @aslakknutsen
Testing
New features
-
fix(e2e): fails test if background develop cmd fails (#810), by @bartoszmajsak
Bugs
-
fix(makefile): executes OC cli only if needed (#809), by @bartoszmajsak
Latest dependencies update
-
github.com/operator-framework/operator-sdk to 1.6.1 (#811), by @aslakknutsen
Highlights of v0.1.0 release
Specifying the exact resource to be manipulated
If you run commands targeting resources, such as Deployment, till now you were only able to use Name. This resulted in a lookup among the resources we currently handle. First we checked if Deployment of the matching name is available. If not - we looked up for DeploymentConfig.
With this release you can be exact:
$ ike create --deployment deployment/reviews-v1 --session bartek-icxzt --image docker.io/bmajsak/test:latest --route header:x=y
Better insights from the CLI
When you want to get details about the sessions available in your namespace, the built-in response for kubectl get sessions is rather brief:
$ kubectl get sessions
NAME AGE
bartek-jcsgl 9s
In this release we reworked it so you can easily see all the relevant information at hand.
$ kubectl get sessions
NAMESPACE NAME REF NAMES STRATEGIES HOSTS ROUTE AGE
test-001 bartek-jcsgl ["reviews-v1"] ["prepared-image"] ["feature-x.ike-demo.io"] header:ike-id=feature-y 9s
Better insights of internal work
We’ve also enhanced the way we track status of our controller work. When you inspect Session CRD you can now easily see the conditions which describe the actions performed by the controller.
This is also exposed in e.g. OpenShift Console
All changes in this release
Operator
New features
-
feat(operator): creates new destinationrules instead of manipulating (#799), by @aslakknutsen
-
feat(operator): supports kind as part of a ref name (#793), by @bartoszmajsak
-
feat(operator): enhances CLI output for CRD with custom columns (#786), by @bartoszmajsak
-
feat(operator): split action and success state in model (#785), by @bartoszmajsak
Project infrastructure
Bugs
-
fix(lint): enables goerr113 (#792), by @bartoszmajsak
-
fix(infra): run go mod tidy to match dependabot go.sum (#784), by @aslakknutsen
-
fix(tekton): ability to define base branch through env var when opening PR (#778), by @bartoszmajsak
Latest dependencies update
-
github.com/golang/protobuf to 1.5.2 (#789), by @dependabot
-
github.com/onsi/ginkgo to 1.16.0 (#788), by @dependabot
-
golangci/golangci-lint-action to v2.5.2 (#787), by @dependabot
-
google.golang.org/grpc to 1.36.1 (#771), by @dependabot
-
istio.io/client-go to 1.9.2 (#772), by @dependabot
Highlights of v0.0.10 release
Apart from quite a few dependency updates, the Session CRD now keeps conditions which makes it easier to view in e.g. Openshift.
All changes in this release
Operator
New features
-
feat(operator): adds conditions with type, status, reason and msg (#773), by @bartoszmajsak
-
feat(operator): add LastTransitionTime to status (#767), by @bartoszmajsak
-
fix(bundle): make CSV sample more realistic (#762), by @aslakknutsen
Bugs
-
fix(operator): set klog to unify loggers (#760), by @aslakknutsen
Project infrastructure
New features
-
feat(circleci): introduces env var to force cache invalidation (#768), by @bartoszmajsak
-
feat(circleci): caches snap deps (#763), by @bartoszmajsak
Testing
New features
-
feat(circleci): updates microk8s to 1.19 stream (#764), by @bartoszmajsak
Latest dependencies update
-
github.com/golang/protobuf to 1.5.1 (#750), by @dependabot
-
github.com/mikefarah/yq/v4 to 4.6.3 (#770), by @dependabot
-
github.com/onsi/ginkgo to 1.15.2 (#745), by @dependabot
-
hashicorp/go-multierror to 1.1.1 (#740), by @dependabot
-
k8s.io/apimachinery to 0.20.5 (#756), by @dependabot
-
k8s.io/client-go to 0.20.5 (#754), by @dependabot
-
k8s.io/code-generator to 0.20.5 (#759), by @dependabot
-
k8s.io/klog/v2 to 2.8.0 (#761), by @dependabot
-
prometheus/client_golang to 1.10.0 (#751), by @dependabot
Highlights of v0.0.9 release
Tekton / Openshift Pipeline Tasks
With this release you can now use istio-workspace within Tekton to make special routes for
either preview or testing purposes. See Tekton Integration docs for more details.
All changes in this release
Build System Integration
New features
-
feat: tekton task release scripts (#735), by @bartoszmajsak
-
feat: initial move of Tekton tasks (#728), by @bartoszmajsak
Command line
Bugs
-
fix: do not ignore errors when outputting in json (#741), by @bartoszmajsak
Documentation
New features
-
chore: rewords project description (#742), by @bartoszmajsak
-
feat(doc): add metadata and desc to Tekton Tasks (#736), by @aslakknutsen
Operator
Bugs
-
fix(operator): avoid reusing version in clone name (#743), by @aslakknutsen
-
fix: do not ignore errors when outputting in json (#741), by @bartoszmajsak
Project infrastructure
New features
-
fix(circle): updates executor machine to Ubuntu 20.04 (#734), by @bartoszmajsak
Testing
New features
-
feat(tekton): adds e2e tests for Tekton tasks (#738), by @aslakknutsen
Latest dependencies update
-
github.com/kisielk/errcheck to 1.6.0 (#722), by @dependabot
-
github.com/onsi/ginkgo to 1.15.1 (#732), by @dependabot
-
github.com/onsi/gomega to 1.11.0 (#733), by @dependabot
-
golangci/golangci-lint-action to v2.5.1. (#720), by @dependabot
-
google.golang.org/grpc to 1.36.0 (#721), by @dependabot
-
istio.io/client-go to 1.9.1 (#731), by @dependabot
Highlights of v0.0.8 release
Watch dependent resources for change
The operator will now watch all the dependent resources (DestinationRule, Gateway, VirtualService, Deployment)
and reconcile the Session on any change.
This means that even if a third-party tool reconfigures the current state, overwrites it, or pushes new releases, the operator will ensure that the special route is still operational.
All changes in this release
Command line
Bugs
-
fix(cli): guard against possible nil Route (#717), by @aslakknutsen
Documentation
New features
-
feat: automates sourcing CSV description from README (#718), by @bartoszmajsak
Operator
New features
-
feat(operator): watch manipulated resources for reconcile on change (#719), by @aslakknutsen
Bugs
-
fix(operator): move to use leader election by lease (#715), by @aslakknutsen
Latest dependencies update
-
k8s.io/apimachinery to 0.20.4 (#710), by @dependabot
-
k8s.io/client-go to 0.20.4 (#713), by @dependabot
-
k8s.io/code-generator to 0.20.4 (#709), by @dependabot
-
sigs.k8s.io/controller-tools to 0.5.0 (#708), by @dependabot
Highlights of v0.0.7 release
Route available in Status
You can use the Route option to define the criteria you want to use for this Session either via Session.Spec.Route or via the --route CLI option. If you don’t, the operator will calculate a route for you using header:x-workspace-route:"session.name".
You can now find the currently used Route reflected in Session.Status.Route.
Improvement to CustomResourceDefintion and ClusterServiceVersion
We’ve added better descriptions and some field-level documentation to the CustomResourceDefintion and the ClusterServiceVersion
All changes in this release
Documentation
New features
-
fix(doc): add better description to the crd (#704), by @aslakknutsen
Operator
New features
-
feat(operator): add description for crd in csv (#703), by @aslakknutsen
-
fix(operator): add route to status (#701), by @aslakknutsen
Project infrastructure
New features
-
chore(images): move pr builds to maistra-dev org (#700), by @aslakknutsen
Highlights of v0.0.6 release
Available in OperatorHub
Starting with this release you should be able to install istio-workspace in a new way;
either via the Openshift Console Operator Hub or https://operatorhub.io/
New contributors
In this release we’ve been so lucky to get a little help from our new friend Humphrey Shotton.
Thank you! :)
All changes in this release
Command line
New features
-
feat(cli): print usage hint including exposed hosts (#692), by @aslakknutsen
Operator
New features
-
feat(operator): support MultiNamespace install mode (#680), by @aslakknutsen
Project infrastructure
New features
-
feat(gh-actions): enables /help cmd for releases (#690), by @bartoszmajsak
-
feat(operator): automates operator bundle submission (#685), by @bartoszmajsak
Bugs
-
fix(release): enables operatorhub signed commits (#689), by @bartoszmajsak
-
fix(circle): uses custom gpg program to sign commits (#687), by @bartoszmajsak
Testing
New features
-
chore: sets err buffer to be captured for tests (#693), by @bartoszmajsak
Latest dependencies update
-
github.com/onsi/ginkgo to 1.15.0 (#669), by @dependabot
-
github.com/onsi/gomega to 1.10.5 (#668), by @dependabot
-
github.com/spf13/cobra to 1.1.3 (#697), by @dependabot
-
golangci/golangci-lint-action to v2.4.0 (#696), by @dependabot
Highlights of v0.0.5 release
The main focus of this release was to move to the new version of the Operator SDK and be able to leverage the Operator Lifecycle Manager as an installation process. This will allow us to make the project available for easy consumption via the Operator Hub.
All changes in this release
Command line
Bugs
-
fix(cli): watch run command status and log errors (#650), by @aslakknutsen
-
fix(cli): print full url to image being used for install (#638), by @aslakknutsen
Operator
New features
-
fix(log): add log caller to structured logger (#651), by @aslakknutsen
-
feat(operator): introduces operator-sdk bundle creation (#648), by @aslakknutsen
Project infrastructure
New features
-
chore: moves dev images to rely on maistra-dev repo (#652), by @bartoszmajsak
Testing
New features
-
chore: moves dev images to rely on maistra-dev repo (#652), by @bartoszmajsak
-
fix(e2e): replace usage of ruby with python to limit dev container size (#640), by @aslakknutsen
Bugs
-
fix(circle): tree hash propagates properly to avoid redundant job runs (#657), by @bartoszmajsak
Latest dependencies update
-
github.com/go-logr/logr to 0.4.0 (#647), by @dependabot
-
github.com/go-logr/zapr to 0.4.0 (#645), by @dependabot
Highlights of v0.0.4 release
This release has been primarily focused on hardening our test infrastructure and use cases coverage. This obviously resulted in quite a bit of improvements in our infra as well as bug fixes which you can see in the complete changelog below. There are a few notable change though.
Host-based routing
Up until now we provided header-based routing, where you added your custom header (e.g. X-PR-Route: 461) based on which the traffic was routed to the changed services. This feature adds a subdomain host to the gateway and let you access your changed service by using just a URL, so you can easily use your browser to test it.
Get the structural response from the ike create command
For simplicity and automation you might want to get the Session object that was created by the ike create command as part of the response. You can now do that by including the --json argument, and the resulting Session object will be printed to stdout.
ike install-operator is now ike install
We decided to rename installation command for two simple reasons - it’s obviously shorter, but it also better reflects what is happening under the hood. It installs istio-workspace controller, the same way as an operator would do.
All changes in this release
New features
-
feat: reworks k8s manifests generation to rely on kubebuilder (#538), by @bartoszmajsak
-
feat: enables defining strategy templates in custom folder (#602), by @bartoszmajsak
-
feat: add health and readiness endpoints + probe config (#556), by @aslakknutsen
-
feat: install command (#542), by @bartoszmajsak
-
docs: adds link to rhd blog (#545), by @bartoszmajsak
-
feat(client): make client wait condition configurable (#531), by @aslakknutsen
-
feat(operator): add 'existing' strategy (#529), by @aslakknutsen
-
chore: minor improvements in the docs (#520), by @bartoszmajsak
-
fix: temp directory creation in get-ike for OSX (#515), by @robertpanzer
-
chore: bumps golang to 1.14.7 (#513), by @bartoszmajsak
-
chore: process template during build using go code instead of oc (#509), by @bartoszmajsak
-
feat: csv generation in its own target (#508), by @bartoszmajsak
-
feat(cli): revert ref back to original on join (#492), by @aslakknutsen
-
feat: generates operator’s ClusterServiceVersion manifests (#490), by @bartoszmajsak
-
fix(cli): return structural response on cli (#489), by @aslakknutsen
-
fix(log): use a single instance of Logger (#488), by @aslakknutsen
-
feat(operator): expose host route in session status (#483), by @aslakknutsen
-
feat: expose session host route (#469), by @aslakknutsen
-
feat: hints how to reach new service (#467), by @bartoszmajsak
-
docs: adds demo video (#471), by @bartoszmajsak
-
fix: unifies logging usage through wrapper (#462), by @bartoszmajsak
-
fix(doc): explain passing multi value flags as repeated flags (#454), by @aslakknutsen
-
feat(cli): support multiple port expose bindings (#452), by @aslakknutsen
-
feat(cli): if no ports are defined, rely on auto expose from tp (#449), by @aslakknutsen
Bug fixes
-
fix(e2e): ensure we check if there are deployments incase pods are no… (#614), by @aslakknutsen
-
fix: reworks service execution logic and fixes gocmd channel/goroutines issues (#576), by @dependabot
-
fix(ci): uses
latesttag for master image builds (#572), by @bartoszmajsak -
fix(test-infra): updates github action commands in linter (#558), by @aslakknutsen
-
fix: sets registry to internal before running operator tests (#532), by @bartoszmajsak
-
fix: operator failure during multiple ref addition to session (#516), by @aslakknutsen
-
chore: streamlines assets generation (#510), by @bartoszmajsak
-
fix(dev): get_protobuf should use "pwd" (#472), by @aslakknutsen
-
fix: downloads protoc if not available (#463), by @bartoszmajsak
Latest dependencies update
-
actions/github-script to v3.1 (#575)
-
github.com/go-logr/logr to 0.3.0 (#577)
-
github.com/golang/protobuf to 1.4.3 (#579)
-
github.com/google/go-github to 32.1.0 (#507)
-
github.com/onsi/ginkgo to 1.14.2 (#554)
-
github.com/onsi/gomega to 1.10.4 (#611)
-
github.com/openshift/api to a843dc3 (#456)
-
github.com/operator-framework/operator-sdk to 0.17.1 (#451)
-
github.com/spf13/afero to 1.5.1 (#626)
-
github.com/spf13/cobra to 1.1.1 (#549)
-
github.com/spf13/viper to 1.7.1 (#530)
-
go.uber.org/goleak to
89d54f0(#524) -
go.uber.org/zap to 1.16.0 (#584)
-
google.golang.org/grpc to 1.35.0 (#624)
-
gopkg.in/h2non/gock.v1 to 1.0.16 (#578)
-
gopkg.in/yaml.v2 to 2.4.0 (#582)
-
k8s.io/apiextensions-apiserver to 0.20.2 (#621)
-
prometheus/client_golang to 1.8.0 (#580)
-
ubi8/ubi-minimal to 8.3 (#552)
Project infrastructure
-
feat(deps): updates to official dependabot v2 (#560), by @bartoszmajsak
-
feat(build): introduces go modules (#557), by @bartoszmajsak
-
chore: minor fixes from the linter (#548), by @bartoszmajsak
-
chore: bumps golang to 1.14.7 (#513), by @bartoszmajsak
-
chore: streamlines assets generation (#510), by @bartoszmajsak
-
chore: process template during build using go code instead of oc (#509), by @bartoszmajsak
-
feat: csv generation in its own target (#508), by @bartoszmajsak
-
feat(ci): adds golangci-lint as gh action (#476), by @bartoszmajsak
-
fix: downloads protoc if not available (#463), by @bartoszmajsak
Testing
-
fix(e2e): ensure we check if there are deployments incase pods are no… (#614), by @aslakknutsen
-
fix(test): resolve timing issue in exec test (#610), by @aslakknutsen
-
fix(ci): uses
latesttag for master image builds (#572), by @bartoszmajsak -
feat: introduces new job for building and pushing images (#564), by @bartoszmajsak
-
feat(gh-action): cleans up pr images on pr close (#571), by @bartoszmajsak
-
feat(test-infra): support running test suit on prebuilt images (#565), by @aslakknutsen
-
fix(tests): template/yaml tests asserts against yaml not string (#562), by @bartoszmajsak
-
fix(test-infra): updates github action commands in linter (#558), by @aslakknutsen
-
fix: sets registry to internal before running operator tests (#532), by @bartoszmajsak
-
feat(tests): introduces tests against MicroK8s (#505), by @bartoszmajsak
-
fix(test): propagate the default route header (#499), by @aslakknutsen
-
build(deps): bumps golangci-lint to latest (#496), by @bartoszmajsak
-
fix(dev): get_protobuf should use "pwd" (#472), by @aslakknutsen
-
feat(tests): builds and pushes test images before the test suite starts (#453), by @bartoszmajsak
Highlights of v0.0.3 release
This release is mainly focused around improving stability and refactorings, but there is one notable feature worth mentioning.
Resolution of host name for target Resource
As users are completely free to name Target Resource(Deployment or DeploymentConfig), Service and VirtualServices etc, we improved resolution strategy which previously relied on pattern matching.
By resolving Services that could possibly match the Target Resource, we look for all Virtual Services that specify that Service/Host.
Support full local cluster dns names
VirtualServices and DestinationRules can now be defined with both short form or full dns name using the Host field and istio-workspace will still be able to find the connections.
Example: ratings vs ratings.namespace.svc.cluster.local
|
All changes in this release
New features
-
fix(release): improvements in release shell script [skip-e2e] (#396), by @bartoszmajsak
-
feat(cmd): version cmd prints short semver info [skip-e2e] (#391), by @bartoszmajsak
-
feature(operator): find target hostnames via Services instead of nami… (#378), by @aslakknutsen
-
feat(operator): support fully qualified host names for vs and dr (#375), by @aslakknutsen
-
feat(github): introduces label sync action (#374), by @bartoszmajsak
-
chore: minor refactoring - context and logger (#379), by @aslakknutsen
-
feat: logs version when starting the operator (#344), by @bartoszmajsak
Bug fixes
-
fix(operator): remove args and command from telepresence clone (#393), by @aslakknutsen
-
fix(docs): proper install snippet [skip-e2e] (#388), by @bartoszmajsak
-
fix(operator): give istio-workspace SA auth to create metrics service (#387), by @aslakknutsen
-
fix: cleans up linter usage (#385), by @bartoszmajsak
-
fix(operator): revert all manipulated virtual service routes (#351), by @aslakknutsen
-
fix: cleans up session on error (wrong deployment) (#349), by @bartoszmajsak
-
fix(template): creates replica if not exists (#342), by @bartoszmajsak
Latest dependencies update
-
build(deps): to 0.14.0 (#356)
-
github.com/google/go-github to 29.0.3 (#364)
-
github.com/onsi/ginkgo to 1.12.0 (#360)
-
github.com/onsi/gomega to 1.9.0 (#362)
-
github.com/operator-framework/operator-sdk to 0.15.2 (#366)
-
github.com/spf13/cobra to 0.0.6 (#369)
-
github.com/spf13/viper to 1.6.2 (#352)
-
go.uber.org/goleak to
75e74d7(#377) -
gopkg.in/fsnotify.v1 to 1.4.9 (#384)
Project infrastructure
-
fix(release): improvements in release shell script [skip-e2e] (#396), by @bartoszmajsak
-
fix: cleans up linter usage (#385), by @bartoszmajsak
-
feat(github): introduces label sync action (#374), by @bartoszmajsak
-
fix(test): generate a suitable deployment resource for a pure k8s ins… (#376), by @aslakknutsen
-
chore: bumps golang to 1.14 (#372), by @bartoszmajsak
Testing
-
fix(tests): controls tp version env var (#392), by @bartoszmajsak
-
test(generator): use generator in int test scenario (#386), by @aslakknutsen
-
fix(e2e): add to the members array instead of replacing it (#380), by @aslakknutsen
-
fix(test): generate a suitable deployment resource for a pure k8s ins… (#376), by @aslakknutsen
-
fix: uses username defined by IKE_CLUSTER_USER instead of oc whoami (#355), by @bartoszmajsak
-
feat: introduces ENV_FILE var to overwrite variables used in tests (#354), by @bartoszmajsak
Highlights of v0.0.2 release
Below you will find an exhaustive list of all the improvements since last release, but those are the most important changes:
Support for multiple development strategies
In v0.0.1 we only supported preparation of a telepresence session. In this release we’ve expanded this to allow specifying a strategy per Ref in the Session object.
Currently, we support two strategies: telepresence for local development and prepared-image.
The new prepared-image strategy allow you to setup a route for a pre-built image. It is a perfect fit for a CI system.
When using ike cli, the develop command will use the telepresence strategy while create will use the
prepared-image strategy. The create command is non blocking compared to develop. The create command comes with
a companion command delete to clean up when e.g. PR is merged.
Installing operator locally
Now you also can deploy operator to your local namespace, so where your project lives. This way only your namespace is watched.
Simply invoke ike install -l
To learn more head over to the official docs.
All changes in this release
New features
-
chore: improves error msg when namespace is not retrievable (#314), by @bartoszmajsak
-
feat: supports global envs for config (#272), by @aslakknutsen
-
feat: adds ability to validate engine Patches (#302), by @bartoszmajsak
-
chore: sets current dir while running telepresence (#296), by @bartoszmajsak
-
chore: removes hardcoded tp version (#293), by @bartoszmajsak
-
feat: aligns telepresence version used by client and cluster (#292), by @bartoszmajsak
-
feat(operator): allow to update the configuration of a ref in a session (#279), by @aslakknutsen
-
feat(cli): support creation and deletion of session without keeping cli alive (#252), by @aslakknutsen
-
feat(scenario): add a demo scenario and gateway host support (#256), by @aslakknutsen
-
feat: logs in plain-text when running as CLI (#253), by @bartoszmajsak
-
feat(cli): prints version hint when outdated (#251), by @bartoszmajsak
-
feat(strategy): support setting up a route for a prepared image (#248), by @aslakknutsen
-
feat: introduces cloning strategies (#235), by @aslakknutsen
-
feat: installs operator locally to selected namespace (#217), by @aslakknutsen
-
feat: adds labels to operator deployment (#216), by @bartoszmajsak
-
feat(dev): deploy operator to single namespace (#215), by @aslakknutsen
-
chore: aligns API group with maistra.io (#209), by @bartoszmajsak
-
feat: adds opencontainers labels to operator image (#211), by @bartoszmajsak
-
feat(template): externalize cloning of target resource (#206), by @aslakknutsen
-
feat(scan): scan for more virtual services to mutate (#200), by @aslakknutsen
-
feat(vs): do a better job at setting up the correct route (#154), by @aslakknutsen
-
feat(api): add API between Locators and Mutation (#98), by @aslakknutsen
-
feat: ike bash and zsh autocomplete (#181), by @bartoszmajsak
-
chore: moves cmd logic to pkg/ (#180), by @bartoszmajsak
Bug fixes
-
fix(cmd): installs operator to current namespace when --local mode used and no ns defined (#312), by @bartoszmajsak
-
fix(operator): mutate route if subset is missing (#308), by @aslakknutsen
-
feat(cli): return non 0 exit code on failure (#276), by @aslakknutsen
-
fix: enables use of IKE_CONFIG env var to pass config file (#275), by @bartoszmajsak
-
fix(cli): add sync flags to create/delete to allow ENV variables (#269), by @aslakknutsen
-
fix: handles error coming from root cmd (#265), by @bartoszmajsak
-
fix(develop): allow to join / leave session (#220), by @aslakknutsen
-
fix(api): apply correct json tag to inline resource (#198), by @aslakknutsen
Latest dependencies update
-
github.com/coreos/prometheus-operator to 0.30.0 (#114)
-
github.com/go-cmd/cmd to 1.1.0 (#311)
-
github.com/google/go-github to 28.1.1 (#262)
-
github.com/google/shlex to
e7afc7f(#316) -
github.com/onsi/ginkgo to 1.10.3 (#297)
-
github.com/onsi/gomega to 1.7.1 (#299)
-
github.com/operator-framework/operator-sdk to 0.13.0 (#320)
-
github.com/spf13/viper to 1.6.1 (#317)
-
go.uber.org/goleak to
7380c5a(#310) -
sigs.k8s.io/controller-runtime to 0.3.0 (#287)
-
ubi8/ubi-minimal to 8.1 (#303)
Project infrastructure
-
fix: tunes options for linters (#266), by @bartoszmajsak
-
chore(circleci): bumps ocp client to 4.1.16 (#264), by @bartoszmajsak
-
chore: introduces lint-prepare target (#258), by @bartoszmajsak
-
chore(deps): locks down prometheus-operator (#249), by @aslakknutsen
-
fix(circleci): aligns golang version between jobs (#195), by @bartoszmajsak
-
chore(linter): disables gofmt (#191), by @bartoszmajsak
-
fix(make): takes first segment of GOPATH for operator-sdk (#194), by @bartoszmajsak
-
chore(make): gopath fix + self-install (#192), by @bartoszmajsak
-
chore(docker): update to rh ubi8 minimal base image (#187), by @aslakknutsen
-
fix(macos): ensures istio-workspace builds on MacOS (#185), by @bartoszmajsak
-
chore(circleci): bumps golang to latest and introduces yaml anchors (#183), by @bartoszmajsak
Testing
-
chore(tests): registers a project into smmr without using jq (#315), by @bartoszmajsak
-
feat(test): test service html ui (#268), by @aslakknutsen
-
chore: enables deployment config e2e tests (#295), by @bartoszmajsak
-
feat: introduces env var handling for tests (#294), by @bartoszmajsak
-
feat: cleans up ServiceMeshMemberRoll spec after test execution (#283), by @bartoszmajsak
-
feat: test infra enhancements (#278), by @bartoszmajsak
-
fix(tests): deletes namespace on failure (#267), by @bartoszmajsak
-
fix(test): proper namespaces in cli completion test (#254), by @bartoszmajsak
-
feat: dumps logs for failing e2e tests (#250), by @bartoszmajsak
-
feat(tests): adjusts e2e tests to be ran against 4.1 clusters (#227), by @bartoszmajsak
-
feat: adds opencontainers labels to test image (#213), by @bartoszmajsak
-
feat: updates project to be used against Maistra 0.12 (#207), by @bartoszmajsak
-
test(e2e): verifies production route (#205), by @bartoszmajsak
-
feat: aligns test scenario image creation variables & Add logging to test service (#199), by @aslakknutsen
Highlights of v0.0.1 release
Inspired by @bobbytables talk from OSCON 2018 we started hacking on open source tooling realizing the idea of safe development on production.
Now, after long weeks in the making, we are extremely happy to announce the first release of istio-workspace project.
With this toolkit, we strive to enable developers to:
Develop their microservices locally, using the tools they love!
Connect to other services in the cluster and test their changes!
All of that without interfering with other developers and users!
All of it based on CNCF open source projects such as Istio and Telepresence.
How does it work?
-
ike developwraps Telepresence and let you start local development while being connected to the real services in the cluster-
in addition, it will restart the process when any files have been changed (see
--watchflag)
-
-
istio-workspaceoperator takes care of configuring routes in Istio so that only you can hit your service under development
To learn more head over to the official docs.