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

Resource usage from workloads #115

Closed
bassam opened this issue Nov 15, 2018 · 5 comments
Closed

Resource usage from workloads #115

bassam opened this issue Nov 15, 2018 · 5 comments
Assignees
Labels
roadmap Issues that have priority and are included in the roadmap, or are candidates to add to the roadmap user experience

Comments

@bassam
Copy link
Member

bassam commented Nov 15, 2018

We need to capture the concept of "using" a given resource like MySqlInstance or Bucket from a Workload or other kinds. We've discussed two approach for this usage, one that is weakly typed for example:

apiVersion: compute.conductor.io/v1alpha1
kind: Workload
...
  resources:
    - apiVersion: database.aws.conductor.io/v1alpha1
      kind: rdsinstance
      name: test-database
      namespace: default
...

where the the Workload has a list of references to resources that it "uses". This would help with the generation of secrets and other connection information, and also with future topology/region aware placement of the workload and its resources.

Another approach is to make the usage strongly typed, and similar to how volumes: in a PodSpec works. For example,

apiVersion: compute.conductor.io/v1alpha1
kind: Workload
...
  mysql:
    - name: test-database
       accessMode: readOnly
  bucket:
    - name: test-bucket
      accessMode: readWrite
...

The former approach enables extensibility by 3rd parties without needing to modify the workload spec. The latter providers a better user experience and enables us to set properties for "usage". One approach is to go with the strongly typed approach and work with APIMachinery SIG to enable strongly typed extensibility model.

This is related to #90.

@bassam bassam added this to the v0.1 milestone Nov 15, 2018
@bassam bassam changed the title Resource usage to workloads Resource usage from workloads Nov 15, 2018
@bassam
Copy link
Member Author

bassam commented Nov 23, 2018

This could also help with #149. We could automatically modify security groups, authorized networks, and such when we know that a workload is "using"/"consuming" a given resource.

@jbw976
Copy link
Member

jbw976 commented Dec 1, 2018

I don't think we will be able to address this in v0.1, but I think this is an important part of the experience nonetheless, moving to v0.2

@jbw976 jbw976 modified the milestones: v0.1, v0.2 Dec 1, 2018
@jbw976
Copy link
Member

jbw976 commented Feb 25, 2019

We already have support for declaring weakly typed usage of resources from workloads. This issue still captures whether we want to add strongly typed support, e.g.

apiVersion: compute.conductor.io/v1alpha1
kind: Workload
...
  mysql:
  ...
  bucket:

@ichekrygin
Copy link
Member

ichekrygin commented Mar 1, 2019

Strongly typed resources looks like an interesting approach. However, it could be limiting when comes to trying to consume 3rd part (out of tree) resources inside the Workload.

I suspect we will need to support both.

@jbw976 jbw976 modified the milestones: v0.2, v0.3 Apr 2, 2019
@jbw976 jbw976 removed this from the v0.3 milestone Jun 10, 2019
@jbw976 jbw976 added the roadmap Issues that have priority and are included in the roadmap, or are candidates to add to the roadmap label Jun 10, 2019
@negz
Copy link
Member

negz commented Jun 29, 2020

I don't believe this is relevant (at least in this specific context) with the direction we're going. We don't intend for Crossplane to manage workloads.

@negz negz closed this as completed Jun 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
roadmap Issues that have priority and are included in the roadmap, or are candidates to add to the roadmap user experience
Projects
None yet
Development

No branches or pull requests

4 participants