Skip to content

Conversation

ostromart
Copy link
Owner

This is just a quick sketch of what I'd like to do to see if this is going down a good path. If looks ok I'll code properly and create PR in istio.

ostromart added a commit that referenced this pull request Apr 6, 2018
ostromart added a commit that referenced this pull request Apr 6, 2018
* Mixer filter fixes

* Address review comments

* Changes to listener build, revert OnListener APIs

* Move buildListener just before callbacks

* Address review comments

* Address review comments #2

* Address comments #3

* Address review comments #4

* Change return to struct value
@ostromart ostromart closed this Apr 6, 2018
@ostromart ostromart deleted the istio_metrics_ostromart branch April 6, 2018 21:34
ostromart added a commit that referenced this pull request Apr 18, 2018
ostromart added a commit that referenced this pull request Apr 19, 2018
* Add proxy instances to plugin input params

* Fix yet another slice handling issue

* Update mixer cluster names

* Fix mixer cluster addresses

* Fix mixer cluster addresses #2
ostromart pushed a commit that referenced this pull request Jun 23, 2018
* # This is a combination of 5 commits.
# This is the 1st commit message:

update istio.io/api for new mcp definitions

# This is the commit message #1:

update mcp server

# This is the commit message #2:

update snapshot package

# This is the commit message #3:

use mcp service in galley/pkg/server

# This is the commit message #4:

fix linter

* update istio.io/api for new mcp definitions

update the latest mcp service definitions from istio.io/api

* fix linter error (again?)
ostromart pushed a commit that referenced this pull request Aug 17, 2018
* [test-framework] Design sketch for test framework.

* [test-framework] Reorgnanization and linter fixes (istio#5128)

* [test-framework] Adding pilot test showcase (doesn't build)

* [test-framework] Adding mixer test showcase (doesn't build)

* [test-framework] Get the code to build.

* [test-framework] Cleanup the dependency model. (istio#5212)

* Cleanup the dependency model.

+ Colocate all (current) dependencies.
+ Tighten the Dependency interface.
+ Introduce internal.Stateful to reduce the surface area of Dependency.

* Cleanup and linter fixes.

* [test-framework] Adding basic cluster app (istio#5257)

* [test-framework] Adding cluster App creation (istio#5342)

* [test-framework] Add example to simple showcase test (istio#5369)

* add new changes to simple showcase test

* Fix typo

* [test-framework] Rationalize FortioApp model. (#1) (istio#5452)

* Rationalize FortioApp model.

- GetFortioApp returns a single instance of DeployedFortioApp and error.
It uses a name pick the app directly, similar to the GetApp model.
- Add *OrFail overload, similar to GetApp case.
- Add GetFortioApps which has a label selector, and returns an array of
deployed apps.

* More cleanup of the Fortio code and get the code to compile.

* [test-framework] First pass cleanup of the model (#2) (istio#5451)

* First pass cleanup of the model:

- Add CallOrFail to DeployedApp for expedient test authoring.
- Replace the Mixer mock adapter with a mock PolicyBackend. This is much
easier to manage from a testing standpoint.
- Remove label based custom logic. Labels are used for filtering only.
- Align Mixer showcase test with the Pilot app model. This way, we can
author Mixer integrations tests by applying configuration and controlling
app/Mixer backend behavior.

* Accommodate CR feedback.

* [test-framework] Remove charts/DeployedIstioComponent and Environment cleanup (istio#5474)

* Remove charts and DeployedIstioComponent.

* Cleanup the Environment interface and enforce methods in local and
cluster implementations.

* [test-framework] Refactor the driver interface and implementation. (istio#5475)

* [test-framework] Cleaning up App API to simplify URL construction (istio#5487)

* [test-framework] API and command-line cleanup. (istio#5510)

* Improve the command-line handling and remove ApiServer & Helm code.

* - Check double-run in driver.Interface.Run().
- Add support for suite level dependency processing.
- Use scoped logs in the driver.

* [test-framework] Add internal interface for the environment (istio#5523)

* Minor improvements to environment & dependency interfaces.

* Add internal environment interfaces.

* Fix formatting and some linter issues.

* [test-framework] Adding bootstrap for local Envoy and Pilot App (istio#5513)

* [test-framework] Add health check to local envoy agent at startup (istio#5551)

Also fixing a bug in the envoy yaml template that was preventing the
configuration of multiple ports to a single instance.  Expanded the
test to cover this.

* [test-framework] Switch from testing.T => testing.TB and uniformize *OrFail. (istio#5716)

* [test-framework] Further rationalize driver model. (istio#5742)

* Further rationalize driver model.

- Extract out a "Context" to be used internally within the testing code. This is mainly useful to break cyclic dependency between the environment and the driver code.
- Cleanup the logging code: Most of the code here is not needed anymore: as the standard set of logging flags already take care of writing logs to well known locations
- Similarly, tmp code can be cleaned up now, to mainly focus on per-component state storage. Moved the code within driver folder to reduce fragmentation.

* Move the GetEnvironment method from the driver interface to Context.

The move allows us to use context object as the single handle to pass
through the rest of the test-framework stack.

* Minor naming fix.

* [test-framework] Revamp the internal machinery of the test framework. (istio#5804)

- Simplify the dependency model. Instead of dependencies having logic, they simply are enums.
- Rename GetEnvironment to AcquireEnvironment and change semantics to at most one per test. With this model, we can reset the internal state of dependencies during the acquisition of the environment.
- Implement a loose object model that opt-in to test framework services through interface implementation. The three services that can be opt-in to are: receiving user supplied configuration, cleanup, and reset with every environment acquisition.
- Implement a resource tracker for supplying these services.
- Switch to a common, internal environment interface, as opposed to environment specific internal interfaces. This switches the dispatch model so that environments are inherently aware of how each dependency work, rather than dependencies adjusting themselves for each environment. In effect, the internal structure of the code should be simplified.
- Use os.TempDir() as the default workdir.
- Fix formatting of help output.
- Switch internal.TestContext interface to be a struct to reduce code clutter.

* [test-framework] Implement Mixer related infrastructure for local environment. (istio#5805)

* Add local-Mixer infrastructure and implement a basic test to cover.

* Accommodate CR feedback.

* Separate out the settings.

* [test-framework] Adding local pilot (istio#6077)

* [test-framework] Add cluster support to the test framework. (istio#6179)

* Add cluster support to the test framework.

* CR feedback.

* Minor linter fixes.

* [test-framework] Integrating local Pilot and Envoy (istio#6332)

- Updated configuration of Envoy to use discovery v2 API on Pilot

- Adding a discovery proxy to allow interception of responses from
Pilot. This will provide the ability to modify the Envoy configs to
support local testing.

- Updated the agent test to incorporate a local pilot. Also starting
to hash out how to determine whether or not an Envoy has received
a configuration update.

* [test-framework] Refactoring pilot test application (istio#6489)

Simplifying the structure to make the code more readable and to make it
better fit in with the application model of the new local agent.

* [test-framework] A few fixes for local envoy code (istio#6537)

* [test-framework] More robust port reservation (istio#6736)

This PR reserves a block of ports, so that future attempts to pick
a port will not collide with previous attempts.

* [test-framework] Add control RPC to test service (istio#6737)

The RPC allows us to simulate in-mesh traffic from one service to
another.

Creating a copy of the pilot test service under pkg/test. This is a
more appropriate home for the code and also avoids changing the rest
of the code that depends on the old service.

* [test-framework] Support local in-mesh traffic (istio#6743)

There are a lot of changes here that are interrelated.  Here's the summary.

1) Adds concept of a protocol client, which is used to intercept outbound
URLs. The interception is performed by the proxy which modifies the
URL host:port so that an outbound call from service A to B will first go
through service A's Envoy proxy.

2) Moved the discovery response filtering logic into the application proxy,
since the additional logic requires state from the proxy.

3) Updated the discovery filtering logic to intercept the outbound listeners
created by Pilot to enable communication with other services
(e.g. so A can talk to B). Pilot uses virtual listeners which are not
actually bound to a port (since outbound traffic would typically be
redirected to 15001 in a cluster configuration). The updated logic
modifies these listeners by assigning a newly reserved port and forcing
the listener to bind to that port. The new port is then stored in a
port map, which is used to modify the URLs on outbound traffic from the
application.

* [test-framework] Remove tagging/label support. (istio#6975)

* Remove tagging/label support.

* remove ignore

* [test-framework] Add API Server support. (istio#7276)

* [test-framework] APIServer + Galley tests (istio#7277)

* [test-framework] Code cleanup: Move and simplify the core driver code. (istio#7286)

* Refactor the core driver code:

+ Created test/framework/ as the namespace of the internal/implementation
of the test framework.
+ Moved the top-level driver code to test/framework/driver
+ Simplified the code at the pkg/test level, leaving only framework.go
for top-level test framework operations.
+ Simplified code in framework.go to simply redirect to the driver.

* More code move:

+ Created framework/environments and moveed cluster & local there.
+ Renamed cluster to kubernetes.
+ Moved test/internal to test/framework/internal.
+ Moved test/tmpl to test/framework/tml.

Also renamed environment.Interface to framework.Environment.

* More shuffling:

+ Moved test/dependency =? test/framework/dependency.
+ Moved framework/environment.go => framework/environment/environment.go
This is needed to break the dependency cycle.
+ Moved environment variable flags, args code to framework/settings.
+ Moved test/framework(formerly operations.go) to test/api.go.
+ Moved driver code from framework/driver/... to framework/

* Fix the mutex error.

* Rename construct => new

* [test-framework] Support non-HTTP ports in local agent (istio#7419)

Also doing some other cleanup and build fixes.

* [test-framework] Componentize the test framework. (istio#7344)

* Refactor and componentize the test-framework.

* Accommodate CR feedback.

* [test-framework] Move pilot to components. (istio#7515)

* [test-framework] Some minor cleanup for pilot component (istio#7536)

* [test-framework] Adding support for component dependencies (istio#7598)

- Added Component interface, which is now implemented by all components

- Separate component registries for local and kubernetes

- Updated the dependency Tracker to initialize all dependencies of
a component before initializing the component, itself.

* [test-framework] Integrating test apps into framework (istio#7628)

* [test-framework] Updating jsonpb dependency

* [test-framework] fixing linter errors in generated files

Needed to rename the files so they'd be ignored.

* [test-framework] Removing t.Skip calls in unit tests.

* [test-framework] removing accidental edit
ostromart pushed a commit that referenced this pull request Oct 3, 2018
* Add a gw/vs for kiali

Previously ingress was required to use Kiali.  With this change
it is possible to use kiali using ingressgateway as per other
telemetry-gateway behavior.

I recognize this isn't the perfect organization - will get there
over time with multiple PRs.

* address review comments

* Address review comments #2
ostromart pushed a commit that referenced this pull request Aug 12, 2019
* Fixing iptabes ranges

Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>

* fix shellcheck errors

Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>

* fixing ci failures #1

Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>

* fixing ci failures #2

Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>

* fixing ci failures #3

Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>

* Addressing comments

Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>
ostromart pushed a commit that referenced this pull request Jan 14, 2020
ostromart added a commit that referenced this pull request Jan 14, 2020
* Go structs for Istio 1.1 values.yaml schema

* Lint, review comments

* Rewrite values structs for new installer, add unit tests

* Add license, cleanups

* Remove dead code

* Resolve conflicts
ostromart pushed a commit that referenced this pull request Feb 7, 2020
istio#20917)

* Minimal support for multiple control planes for fwd compatibility (istio#20798)

(cherry picked from commit ea5abed)

* fix
ostromart added a commit that referenced this pull request Aug 12, 2020
ostromart added a commit that referenced this pull request Sep 15, 2020
* Add error dictionary entries for operator reconciler

* Review comments

* Review comments #2

* Update go.sum
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant