Skip to content

Commit

Permalink
Merge branch 'master' into dependabot/go_modules/github.com/hashicorp…
Browse files Browse the repository at this point in the history
…/go-multierror-1.1.1
  • Loading branch information
bartoszmajsak committed Mar 17, 2021
2 parents b365862 + 71aa34d commit 5cbf194
Show file tree
Hide file tree
Showing 22 changed files with 363 additions and 76 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Expand Up @@ -4,14 +4,14 @@ defaults:
golang-install: &golang-install
name: "Install latest Golang"
command: |
sudo snap install go --classic --channel 1.15/stable
sudo snap install go --classic --channel 1.16/stable
node-install: &node-install
name: "Install Node"
command: |
nvm install 10
nvm use 10
docker:
- image: &golang-img cimg/go:1.15.8
- image: &golang-img cimg/go:1.16.2
machine-conf: &machine-conf
image: ubuntu-2004:202101-01
skip-e2e-check: &skip-e2e-check
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Expand Up @@ -102,12 +102,12 @@ compile: deps generate format $(DIST_DIR)/$(BINARY_NAME) ## Compiles binaries
.PHONY: test
test: generate ## Runs tests
$(call header,"Running tests")
ginkgo -r -v --skipPackage=e2e ${args}
ginkgo -r -v -progress -vet=off -trace -skipPackage=e2e ${args}

.PHONY: test-e2e
test-e2e: compile ## Runs end-to-end tests
$(call header,"Running end-to-end tests")
ginkgo e2e/ -v -p ${args}
ginkgo e2e/ -r -v -progress -vet=off -trace ${args}

.PHONY: clean
clean: ## Removes build artifacts
Expand Down Expand Up @@ -157,7 +157,7 @@ $(DIST_DIR):

$(DIST_DIR)/$(BINARY_NAME): $(DIST_DIR) $(SRCS)
$(call header,"Compiling... carry on!")
${GOBUILD} go build -ldflags ${LDFLAGS} -o $@ ./cmd/$(BINARY_NAME)/
${GOBUILD} go build -v -ldflags ${LDFLAGS} -o $@ ./cmd/$(BINARY_NAME)/

$(DIST_DIR)/$(TEST_BINARY_NAME): $(DIST_DIR) $(SRCS) test/cmd/test-service/html.go
$(call header,"Compiling test service... carry on!")
Expand Down
15 changes: 10 additions & 5 deletions README.md
Expand Up @@ -4,12 +4,17 @@
# Istio Workspace

<!-- tag::description[] -->
As a developer, do you have confidence that your Test and Stage environments reflect reality? Are they easy to keep up-to-date with production? Can you reproduce production failure in these environments or locally? What about that error you keep seeing on production that’s never occurring on Test or Stage?
Istio Workspace enables developers to:

Shipping changes to production sounds scary and dangerous because a lot of things can go wrong. What we really want to avoid is to impact regular application users in a bad way.
* run one or more services locally during development but make it appear like it would be developed in the actual cluster
* this way you can use your favourite development tools
* have instant feedback loop
* don't make your machine overheating trying to run the whole cluster locally
* safely preview incoming changes in pull requests without affecting regular users
* have confidence in testing or troubleshooting your services directly in the cluster

Fortunately, Istio Workspace supports testing on multi-user environment in an unobtrusive way.
Doesn’t matter if it is QE cluster or actual production. We give you confidence that your changes won’t blow up the cluster, and your users won’t even notice a glitch.
Istio Workspace supports testing on multi-user environment in an unobtrusive way.
It doesn’t really matter if it is QE cluster or actual production. We give you confidence that your changes won’t blow up the cluster, and your users won’t even notice a glitch.

You will need [Kubernetes](https://k8s.io) or [Openshift](https://openshift.com) cluster with [Istio](https://istio.io/) installed.

Expand Down Expand Up @@ -89,7 +94,7 @@ Run `make help` to see what targets are available, but you will use `make` most

We follow standard Go coding conventions which we ensure using `goimports` during the build.

In addition we provide `.editorconfig` file which is supported by [majority of the IDEs](https://editorconfig.org/#download).
In addition, we provide `.editorconfig` file which is supported by [majority of the IDEs](https://editorconfig.org/#download).

## License

Expand Down
2 changes: 1 addition & 1 deletion config/manager/kustomization.yaml
Expand Up @@ -13,4 +13,4 @@ kind: Kustomization
images:
- name: controller
newName: quay.io/maistra/istio-workspace
newTag: v0.0.8-next
newTag: v0.0.9-next
2 changes: 1 addition & 1 deletion docs/modules/ROOT/pages/cli_reference.adoc
Expand Up @@ -90,7 +90,7 @@ include::cmd:ike[args='develop --help --help-format=adoc']
`ike develop` provides `--watch` functionality to trigger build and relaunch the process whenever you modify something
in your project. This way you can immediately introduce your changes in your cluster.

By default all log files (`*.log`) and `.git` folder are not monitored.
By default, all log files (`*.log`) and `.git` folder are not monitored.

TIP: For details on how define what should be watched see <<ike-develop,ike develop>> reference.

Expand Down
6 changes: 3 additions & 3 deletions docs/modules/ROOT/pages/comparisons/service_preview.adoc
Expand Up @@ -11,9 +11,9 @@ Edge CI - https://www.getambassador.io/docs/latest/topics/using/edgectl/edge-con
Ambassador injector will modify the deployment and inject the Traffic Agent sidecar, then the sidecar talks to the ‘real service’. Requires that the Service use targetPort: http so the injector can change which port in the deployment is called http. +
https://www.getambassador.io/docs/latest/topics/using/edgectl/service-preview-reference/#manual-traffic-agent-sidecar-configuration[https://www.getambassador.io/docs/latest/topics/using/edgectl/service-preview-reference/#manual-traffic-agent-sidecar-configuration]

Currently does not run out of the box on Openshift
Currently, does not run out of the box on Openshift

Currently does not run with istio.
Currently, does not run with istio.

* Sidecar injection seems a little random who wins?

Expand All @@ -23,7 +23,7 @@ Currently does not run with istio.
Require no change to the target deployment. +
Rely on manipulating istio directly.

Strongest point; deep middleware integration
The strongest point; deep middleware integration

* Che, odo, IDE extension
* Cache, Messaging understanding
Expand Down
8 changes: 4 additions & 4 deletions docs/modules/ROOT/pages/contribution_guide.adoc
Expand Up @@ -13,13 +13,13 @@ Before we dive into technicalities on how to build and run it let's emphasize th

It's important to us that the tool we are building gives our users smooth and enjoyable experience.

Filing issues is extremely valuable contribution and to make it easier for you we prepared a template which will guide you through this process.
Filing issues is extremely valuable contribution and to make it easier for you, we prepared a template which will guide you through this process.

== Pull Requests

We would love to see a pull request from, even if it's a typo.

There are not many strict rules or guidelines to follow, as we strive to automate as much as possible, however, if your work is non trivial please make sure there's associated issue with it. This will help us preparing release notes.
There are not many strict rules or guidelines to follow, as we strive to automate as much as possible, however, if your work is non-trivial please make sure there's associated issue with it. This will help us to prepare release notes.

If you don't know where to start - have a look at https://github.com/Maistra/istio-workspace/labels/good%20first%20issue[good first issues].

Expand All @@ -34,7 +34,7 @@ Assuming that you have all the link:https://golang.org/doc/install[Golang prereq
$ git clone https://github.com/maistra/istio-workspace $GOPATH/src/github.com/maistra/istio-workspace
----

TIP: Have a look how link:https://github.com/moovweb/gvm[Go Version Manager] can help you simplifying configuration
TIP: Have a look how link:https://github.com/moovweb/gvm[Go Version Manager] can help you simplify configuration
and management of different versions of Go.

We rely on following tools:
Expand All @@ -55,7 +55,7 @@ TIP: Run `make help` to see what other targets are available.

=== Testing

The default `make` target executes unit tests. When developing you can also use https://onsi.github.io/ginkgo/#watching-for-changes[`ginkgo watch`] so they are ran whenever the change in the code occur. This makes feedback loop faster.
The default `make` target executes unit tests. When developing you can also use https://onsi.github.io/ginkgo/#watching-for-changes[`ginkgo watch`], so they are run whenever the change in the code occur. This makes feedback loop faster.

We also have end-to-end tests (`make test-e2e`) for which you need to have Kubernetes cluster with Istio installed.

Expand Down
2 changes: 1 addition & 1 deletion docs/modules/ROOT/pages/getting_started.adoc
Expand Up @@ -25,7 +25,7 @@ Before you can start using CLI we have to add few backend bits to the cluster, s

If you're using Openshift you can install the `istio-workspace operator` via the Operator Hub in the web console.

If you're on vanilla Kubernetes you can install it by installing the `Operator Lifecycle Managment` using the https://sdk.operatorframework.io/docs/installation/[Operator SDK]:
If you're on vanilla Kubernetes you can install it by installing the `Operator Lifecycle Management` using the https://sdk.operatorframework.io/docs/installation/[Operator SDK]:

[source,bash]
----
Expand Down
8 changes: 4 additions & 4 deletions docs/modules/ROOT/pages/ideas.adoc
Expand Up @@ -17,7 +17,7 @@
* Possible to piggyback on Tracing variables to avoid additional http header propagation?
* Subdomain as entrypoint vs http header?
** Subdomain easy for user access
** http header: js lib for client to detect available versions and swap between them?
** http header: js lib for the client to detect available versions and swap between them?

==== PR preview deployment

Expand Down Expand Up @@ -63,7 +63,7 @@ When a service is in 'observation'/dev mode

==== X Trace

The method of determining when a call is in a X 'session' and allow services/middlware to act accordingly
The method of determining when a call is in an X 'session' and allow services/middlware to act accordingly

==== Shadow Proxy

Expand All @@ -73,7 +73,7 @@ Injected/Configured during X to control behavior of responses of calls to extern
Local run existing service from git repo based on service name

==== Service
https://istio.io/docs/tasks/traffic-management/request-routing/#route-based-on-user-identity + something gateway external DNS sub domain
https://istio.io/docs/tasks/traffic-management/request-routing/#route-based-on-user-identity + something gateway external DNS subdomain

Session CRD
Field (Ref, ?)
Expand Down Expand Up @@ -105,7 +105,7 @@ https://istio.io/docs/tasks/traffic-management/request-routing/#route-based-on-u



Execute local cli to setup safe production route for my local service
Execute a local cli to set up safe production route for my local service
[source]
....
> ./ike develop "DeploymentName" --user x [--watch] [--session "Username#Branch+UID(5char)"]
Expand Down
2 changes: 1 addition & 1 deletion docs/modules/ROOT/pages/index.adoc
Expand Up @@ -4,7 +4,7 @@ Do you have confidence that your Test and Stage environments reflect reality? Ar

It's been always hard to test new functionality before it reaches production. Even more so, with the shift from a monolith to microservices and increasing scale. Can you still spin up the entire solution on your laptop to debug and test a suspicious piece of code? Testing on production is no longer a meme. It’s reality and a necessity.

This project works with https://istio.io/[Istio] and https://k8s.io[Kubernetes] or https://openshift.com[Openshift] to give you confidence that your changes won't blow up production cluster and your users won’t even notice a glitch.
This project works with https://istio.io/[Istio] and https://k8s.io[Kubernetes] or https://openshift.com[Openshift] to give you confidence that your changes won't blow up production cluster, and your users won’t even notice a glitch.

You can read more about our vision on https://developers.redhat.com/blog/2020/07/14/developing-and-testing-on-production-with-kubernetes-and-istio-workspace/[Red Hat Developer's blog] or ...

Expand Down
2 changes: 2 additions & 0 deletions docs/modules/ROOT/pages/release_notes.adoc
@@ -1,6 +1,8 @@
= Releases

// append:release_notes
include::release_notes/v0.0.9.adoc[]

include::release_notes/v0.0.8.adoc[]

include::release_notes/v0.0.7.adoc[]
Expand Down
58 changes: 58 additions & 0 deletions docs/modules/ROOT/pages/release_notes/v0.0.9.adoc
@@ -0,0 +1,58 @@
== 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 https://istio-workspace-docs.netlify.app/istio-workspace/v0.0.9/integration/tekton/overview.html[Tekton Integration docs] for more details.

=== All changes in this release

// changelog:generate
==== Build System Integration

===== New features
* feat: tekton task release scripts (https://github.com/maistra/istio-workspace/pull/735[#735]), by https://github.com/bartoszmajsak[@bartoszmajsak]
* feat: initial move of Tekton tasks (https://github.com/maistra/istio-workspace/pull/728[#728]), by https://github.com/bartoszmajsak[@bartoszmajsak]


==== Command line


===== Bugs
* fix: do not ignore errors when outputting in json (https://github.com/maistra/istio-workspace/pull/741[#741]), by https://github.com/bartoszmajsak[@bartoszmajsak]

==== Documentation

===== New features
* chore: rewords project description (https://github.com/maistra/istio-workspace/pull/742[#742]), by https://github.com/bartoszmajsak[@bartoszmajsak]
* feat(doc): add metadata and desc to Tekton Tasks (https://github.com/maistra/istio-workspace/pull/736[#736]), by https://github.com/aslakknutsen[@aslakknutsen]


==== Operator


===== Bugs
* fix(operator): avoid reusing version in clone name (https://github.com/maistra/istio-workspace/pull/743[#743]), by https://github.com/aslakknutsen[@aslakknutsen]
* fix: do not ignore errors when outputting in json (https://github.com/maistra/istio-workspace/pull/741[#741]), by https://github.com/bartoszmajsak[@bartoszmajsak]

==== Project infrastructure

===== New features
* fix(circle): updates executor machine to Ubuntu 20.04 (https://github.com/maistra/istio-workspace/pull/734[#734]), by https://github.com/bartoszmajsak[@bartoszmajsak]


==== Testing

===== New features
* feat(tekton): adds e2e tests for Tekton tasks (https://github.com/maistra/istio-workspace/pull/738[#738]), by https://github.com/aslakknutsen[@aslakknutsen]


=== Latest dependencies update

* github.com/kisielk/errcheck to 1.6.0 (https://github.com/maistra/istio-workspace/pull/722[#722]), by https://github.com/dependabot[@dependabot]
* github.com/onsi/ginkgo to 1.15.1 (https://github.com/maistra/istio-workspace/pull/732[#732]), by https://github.com/dependabot[@dependabot]
* github.com/onsi/gomega to 1.11.0 (https://github.com/maistra/istio-workspace/pull/733[#733]), by https://github.com/dependabot[@dependabot]
* golangci/golangci-lint-action to v2.5.1. (https://github.com/maistra/istio-workspace/pull/720[#720]), by https://github.com/dependabot[@dependabot]
* google.golang.org/grpc to 1.36.0 (https://github.com/maistra/istio-workspace/pull/721[#721]), by https://github.com/dependabot[@dependabot]
* istio.io/client-go to 1.9.1 (https://github.com/maistra/istio-workspace/pull/731[#731]), by https://github.com/dependabot[@dependabot]

2 changes: 1 addition & 1 deletion go.mod
Expand Up @@ -19,7 +19,7 @@ require (
github.com/magiconair/properties v1.8.4 // indirect
github.com/mikefarah/yq/v4 v4.6.1
github.com/mitchellh/mapstructure v1.3.3 // indirect
github.com/onsi/ginkgo v1.15.1
github.com/onsi/ginkgo v1.15.2
github.com/onsi/gomega v1.11.0
github.com/openshift/api v0.0.0-20200527184302-a843dc3262a0
github.com/operator-framework/operator-lib v0.3.0
Expand Down

0 comments on commit 5cbf194

Please sign in to comment.