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

Add support for Linkerd authorization policies #250

Open
orishoshan opened this issue Sep 25, 2023 · 3 comments · May be fixed by #324
Open

Add support for Linkerd authorization policies #250

orishoshan opened this issue Sep 25, 2023 · 3 comments · May be fixed by #324
Assignees
Labels
enhancement New feature or request

Comments

@orishoshan
Copy link
Collaborator

The intents operator supports reconciling ClientIntents into Istio authorization policies.

Proposal: Add support for Linkerd authorization policies, keeping with the same style.

@orishoshan orishoshan added the enhancement New feature or request label Sep 25, 2023
@orishoshan
Copy link
Collaborator Author

@aerosouund has taken this issue :)

@orishoshan
Copy link
Collaborator Author

For this example ClientIntents:

apiVersion: k8s.otterize.com/v1alpha3
kind: ClientIntents
metadata:
  name: client
  namespace: otterize-tutorial-istio
spec:
  service:
    name: client
  calls:
    - name: nginx
      type: http
      HTTPResources:
        - path: /client-path
          methods: [ GET ]
  1. Create a Server resource for nginx if it wasn't already created, as well as a HTTPRoute for the HTTPResources part (if there are any).
  2. Create a MeshTLSAuthentication resource for client if it wasn't already created. For each client, create a separate MeshTLSAuthentication resource. I recommend using the name of the client in the name of the resource, such as meshtls-client1, meshtls-client2, and so on, to make it easy to find the resources when you need to update them or check if they already exist.
  3. Create an AuthorizationPolicy resource that requires the MeshTLSAuthentication or Server.

As we discussed on Zoom, start with the create flow for ClientIntents and then move on to edit and delete. To understand the edit flow better, after creating a MeshTLS resource, scale down the intents operator to 0, then edit the ClientIntents so that the client is client2, and you should see two MeshTLS resources. In that situation the intents-operator needs to be able to detect that the first resource is now orphaned and delete it.

Sounds good @aerosouund?

@aerosouund
Copy link
Contributor

Sounds perfect, will move on with implementing this!

@aerosouund aerosouund linked a pull request Dec 30, 2023 that will close this issue
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants