Skip to content
This repository was archived by the owner on Sep 30, 2020. It is now read-only.
This repository was archived by the owner on Sep 30, 2020. It is now read-only.

Plugins #509

@mumoshu

Description

@mumoshu

Would it be useful/possible to introduce "kube-aws plugins" to define sets of configurations and resources(settings, k8s manifests, required iam policies, etc) used to extend kube-aws, without complicating the core of kube-aws?

For example, I guess with the feature, #507 can be implemented as a plugin composed of:

Design 1

Intentions:

  • The directory is named plugins/enabled/<unique name of an instance of plugin> so that
    • we can later introduce plugins/available/<unique name of a plugin> for defining a plugin=a template of instances of plugin
  • The controller directory is there to place controller node specific files and settings

Design 2

  • plugins/available/
    • <unique name of a plugin e.g. cluster-dump>/
      • controller
        • manifests/
          • cluster-dump.yaml.tmpl
        • iam-policies/
          • allow-puts-to-s3-path.json.tmpl
  • cluster.yaml
    • With the new configuration key to allow enabling and customizing plugins
      clusterName: ***
      externalDNSName: ***
      kmsKeyARN: ***
      *snip*
      plugins:
        clusterDump:
        - pluginName: <unique name of a plugin e.g. cluster-dump>
            s3Prefix: <customs3prefix_to_where_cluster_is_dumped>
        rescheduler:
        - pluginName: rescheduler

and we bundle default plugins into kube-aws binaries, but putting files to plugins/available would allow customizing a default plugin.


@c-knowles I can't locate the exact link to it but if I remember correctly, we've discussed before about introducing "plugins" to make kube-aws extendable by users?

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions