Skip to content

Consolidate Binaries and Configuration Sprawl #478

@jonstacks

Description

@jonstacks

We now have 3 different k8s deployments (api,tunnel, and bindings) each running their own manager and each in a separate binary. Each of these also takes their own cobra command line argument options. Some of these options should be shared across each manager and some are unique to each manager.

There are 2 things I think we should tackle:

  1. Our image size is now much larger. Since we build 3 statically linked binaries, much of the each binary size is probably our libs + stdlib. We can probably re-shrink our image size and reduce compilation time by creating a single binary that takes an argument for which manager to run. Ex: ./manager tunnel or ./manager bindings
  2. Configuration sprawl. When we add a new CLI option to a manger, we have to add custom serialization to the helm chart depending on the field type and then we also have to de-serialize it from the command line argument in our go program. Some of these options are duplicated across the managers. You have to go look at each k8s deployment to figure out the configuration for the system. It would be nice if we had a single config file that contained the global options as well as the options for each manager.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions