Giter Site home page Giter Site logo

kubernetes-glue-operator's People

Contributors

actions-user avatar csviri avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

kubernetes-glue-operator's Issues

Sonar

add sonar checks to PR-s

MVP Scope

  • Workflow
  • Workflow Operator
  • Templating the resources
  • Substitute variables in plain resources
  • Javascript conditions
  • Conditions
  • Workflow / Workflow Operator mutability - deleting not present resource definitions
  • #20
  • Samples
  • Docs
  • Pure K8S Resource for deployment
  • Rename to resource-workflow-operator?

Utilizing Label Selectors

Label selectors could be utilized for different purposes. But one reason is to do sharding for deployment of the operator, so by certain running instances, only selected Glue and GlueOperator resources would be selected.
To achieve this, we can add a label selector field in spec for both resources. GlueOperator would also propagate the label selector to Glue.

It is a question whether we should propagate labels and label selectors automatically for dependent resources. This would be a little problematic if there is a dependent resource and a related resource for the same type, in this case, we create only one informer, and label selectors don't support or.

Optimization of JS Condition

JS Conditions are relative time consuming.

Some optimizations might be tried, like:

  • caching the serialized resources (if resource version did not change we are fine)
  • passing the resources differently (not ser/deser)

Related Resources

Capability set resources which are not managed for a Workflow but serves as an input for it.

Should be a related resource name or selector always mandatory?
That would be nice in first version at least.

If namespace not set, it is defaulted to namespace of the workflow.

Sample:

apiVersion: io.csviri.operator.workflow/v1beta1
kind: Workflow
metadata:
  name: wf-to-change
spec:
  resources:
    - name: configMap1
      resource:
        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: configmap1
        data:
          key: "{{secret1.data.value}}"
  relatedResources:
    - name: secret1
      resource:
        apiVersion: v1
        kind: Secret
        name: my-secret
        namespace: optional-namespace        

Other Features / Ideas

Ideas that will be eventually selected and issues created from them if decided to implement in upcoming release

  • Related Resources handling
  • Handling custom status updates
  • Openshift client -> support for client. Feature flag
  • Watch resources - event source registration (input only, not triggering?)
  • Webhook conditions?
  • Condition reference (if multiple resources has the same condition)
  • Label Selectors
  • Delete flag on workflow operator to delete Workflows
  • Bulk resource handling

Default glueMetadata for cluster scoped parent

Currently there is only one, where the parents are the namespaces, what is quite specific.
Also we should consider defaulting to put the Glue into the GlueOperator namespace if the if glueMetadata is not specified for the cluster scoped parent

Optimization for Templating

Templating now serializes GenericKubernetesResource to map/list structure, this can be time and resource intensive and we should take a look how could be optimized (in worst case cached by resource version)

Label Selector for GlueOperator parent resources

Label selectors are supported for Glue and GlueOperator: #86

It would also nice to have label selector for GlueOperator parent resources, this will allow to do canary testing, this only to process some resources with this operator and some with other operator or different deployment of this operator

Handling Cluster Scoped Resources

Owner References are not working for resources which are cluster scoped (by design in k8s). Those needs to be explicitly deleted.
This is already supported in DependentResources, just it needs to be detected which resource is cluster scoped and which is not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.