-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Description
Currently, kube-inject
has 3 modes:
- Automagically read configmaps in cluster and apply
- Same as (1), but users overrides with flags like
--injectConfigMapName
- User passes in files directly for the template
This leads to our multicluster install needlessly installing these configmaps in the remote cluster, which is complex, confusing for users, and likely to fall out of sync.
Additionally, none of these support revisions.
I propose we make these changes:
-
Deprecate (2)
-
Re-implement (1) to call the Istiod service, rather than reading the configmaps (ie implementation details)
This will be done by reading the mutating webhook configurations. If its a Service, we will do a port-forward, and call /inject. If its a URL (external istiod), we will call it directly.
An additional flag, like--injection-url
will be added, to not look at webhook configs.
If there are no webhooks and--injection-url
is not set, we will continue to use configmaps and display a deprecation warning
An additional flag,--revision
will be added. When this is set, we will look at the revision webhook rather than