Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export by matching label expressions #52

Open
jewertow opened this issue Sep 20, 2024 · 1 comment · May be fixed by #170
Open

Export by matching label expressions #52

jewertow opened this issue Sep 20, 2024 · 1 comment · May be fixed by #170

Comments

@jewertow
Copy link
Collaborator

jewertow commented Sep 20, 2024

Enable users to define service exports by using matchExpressions rules.

Users can use operators such as In, NotIn, Exists, and DoesNotExist for more fine-grained control as to which services should be exported.

Example structure

serviceSelectors:
  - matchExpressions:
      - key: app.kubernetes.io/name
        operator: In
        values:
          - ratings
          - reviews
@jewertow jewertow added the good first issue Good for newcomers label Sep 20, 2024
@bartoszmajsak bartoszmajsak changed the title Implement matchExpressions selector Exporting by matching label expressions Jan 20, 2025
@bartoszmajsak
Copy link
Collaborator

Took a liberty to reword the issue and link it to the part #142

@bartoszmajsak bartoszmajsak added the epic Given issue is an umbrella for more fine-grained work items label Jan 20, 2025
@bartoszmajsak bartoszmajsak changed the title Exporting by matching label expressions Export by matching label expressions Jan 20, 2025
bartoszmajsak pushed a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 24, 2025
This PR extends `MeshFederation` Custom Resource with configuration for local Federation setup.

This configuration that includes:

- network name
- trust domain
- controlPlane's namespace
   - required to create certain mesh-wide resources
- ingress configuration to be used for creating Federation Ingress Gateway
   - the default should be `istio`
   - support for `openshift-router`

It also defines export rules based on selectors (both label matching as
well as expressions)

### Current assumptions

- there should be only one instance of `MeshFederation`  per namespace
- `metadata.name` is used instead of originally proposed `id` to uniquely identify the local instance

### Related Issues

API for openshift-service-mesh#52 openshift-service-mesh#143

Fixes openshift-service-mesh#141
bartoszmajsak pushed a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 24, 2025
This PR extends `MeshFederation` Custom Resource with configuration for local Federation setup.

This configuration that includes:

- network name
- trust domain
- controlPlane's namespace
   - required to create certain mesh-wide resources
- ingress configuration to be used for creating Federation Ingress Gateway
   - the default should be `istio`
   - support for `openshift-router`

It also defines export rules based on selectors (both label matching as
well as expressions)

### Current assumptions

- there should be only one instance of `MeshFederation`  per namespace
- `metadata.name` is used instead of originally proposed `id` to uniquely identify the local instance

### Related Issues

API for openshift-service-mesh#52 openshift-service-mesh#143

Fixes openshift-service-mesh#141
bartoszmajsak pushed a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 24, 2025
This PR extends `MeshFederation` Custom Resource with configuration for local Federation setup.

This configuration that includes:

- network name
- trust domain
- controlPlane's namespace
   - required to create certain mesh-wide resources
- ingress configuration to be used for creating Federation Ingress Gateway
   - the default should be `istio`
   - support for `openshift-router`

It also defines export rules based on selectors (both label matching as
well as expressions)

### Current assumptions

- there should be only one instance of `MeshFederation`  per namespace
- `metadata.name` is used instead of originally proposed `id` to uniquely identify the local instance

### Related Issues

API for openshift-service-mesh#52 openshift-service-mesh#143

Fixes openshift-service-mesh#141
bartoszmajsak pushed a commit that referenced this issue Jan 24, 2025
This PR extends `MeshFederation` Custom Resource with configuration for local Federation setup.

This configuration that includes:

- network name
- trust domain
- controlPlane's namespace
   - required to create certain mesh-wide resources
- ingress configuration to be used for creating Federation Ingress Gateway
   - the default should be `istio`
   - support for `openshift-router`

It also defines export rules based on selectors (both label matching as
well as expressions)

### Current assumptions

- there should be only one instance of `MeshFederation`  per namespace
- `metadata.name` is used instead of originally proposed `id` to uniquely identify the local instance

### Related Issues

API for #52 #143

Fixes #141
openshift-merge-bot bot pushed a commit that referenced this issue Jan 25, 2025
This PR extends `MeshFederation` Custom Resource with configuration for
local Federation setup.

This configuration includes:

- network name
- trust domain
- controlPlane's namespace
   - required to create certain mesh-wide resources
- ingress configuration to be used for creating Federation Ingress
Gateway
   - the default should be `istio`
   - support for `openshift-router`

It also defines export rules based on selectors (both label matching as
well as expressions)

### Current assumptions

- there should be only one instance of `MeshFederation`  per namespace
- `metadata.name` is used instead of originally proposed `id` to
uniquely identify the local instance

### Related Issues

API for #52 #143

Fixes #141

Co-authored-by: Eoin Fennessy <[email protected]>
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
bartoszmajsak added a commit to bartoszmajsak/ossm-federation that referenced this issue Jan 27, 2025
This commit introduces the initial implementation of the MeshFederation
controller. The controller is responsible for:

- Managing the MeshFederation server lifecycle (openshift-service-mesh#152)
  - removes a need for a channel to trigger push - pushing directly
    instead
- Configuring MeshFederation resources, including:
  - IngressGateway
  - PeerAuthentication
  - EnvoyFilter (for OpenShift Router)
  - Routes (for OpenShift Router)
- Watching Kubernetes services to:
  - Push SotW updates to all connected peers (openshift-service-mesh#153)
  - Update MeshFederation cluster configuration
  - Support both label selectors and expressions (openshift-service-mesh#52 openshift-service-mesh#143)

Basic EnvTest tests are included to verify the setup.

Fixes openshift-service-mesh#152 openshift-service-mesh#52 openshift-service-mesh#143 openshift-service-mesh#153
@bartoszmajsak bartoszmajsak removed the epic Given issue is an umbrella for more fine-grained work items label Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants