ISTIOCTL-KUBE-INJECT(1)

πŸ“¦ version 1.31.3, in nixos 26.05, nixpkgs unstable

πŸ’– istioctl-kube-inject πŸ’–

okay bestie, so this is the manual page for istioctl kube-inject β€” the command that manually injects the Istio sidecar into your Kubernetes pod resources. it's giving "I got you, your pods are about to be ✨enhanced✨" and honestly? iconic.


🌸 NAME 🌸

istioctl-kube-inject β€” Inject Istio sidecar into Kubernetes pod resources


✨ SYNOPSIS ✨

istioctl kube-inject [flags]

πŸŽ€ DESCRIPTION πŸŽ€

so like, kube-inject manually injects the Istio sidecar into Kubernetes workloads. periodt. πŸ’…

the way that unsupported resources are just left unmodified means it's totally safe to run kube-inject over a single file that contains multiple Service, ConfigMap, Deployment, etc. definitions for a complex application. no cap, it's literally designed for that. when in doubt, just re-run istioctl kube-inject on deployments to get the most up-to-date changes. iykyk.

πŸ’‘ bestie tip: it's best to do kube-inject when the resource is initially created. like, get it right from the start, you know?

πŸ¦‹ OPTIONS πŸ¦‹

okay so here's the full menu of flags, bestie. no skipping, we're covering every single one:

  • --authority="" β€” XDS Subject Alternative Name (for example istiod.istio-system.svc)
  • --cert-dir="" β€” XDS Endpoint certificate directory
  • -f, --filename="" β€” Input Kubernetes resource filename
  • -h, --help[=false] β€” help for kube-inject
  • --injectConfigFile="" β€” Injection configuration filename. Cannot be used with --injectConfigMapName
  • --insecure[=false] β€” Skip server certificate and domain verification. (NOT SECURE!) 🚩
  • --meshConfigFile="" β€” Mesh configuration filename. Takes precedence over --meshConfigMapName if set
  • --meshConfigMapName="istio" β€” ConfigMap name for Istio mesh configuration, key should be "mesh"
  • --operatorFileName="" β€” Path to file containing IstioOperator custom resources. If configs from files like meshConfigFile, valuesFile are provided, they will be overridden by iop config values.
  • -o, --output="" β€” Modified output Kubernetes resource filename
  • --plaintext[=false] β€” Use plain-text HTTP/2 when connecting to server (no TLS).
  • -r, --revision="" β€” Control plane revision
  • --timeout=30s β€” The duration to wait before failing
  • --valuesFile="" β€” Injection values configuration filename.
  • --webhookConfig="istio-sidecar-injector" β€” MutatingWebhookConfiguration name for Istio
  • --xds-address="" β€” XDS Endpoint
  • --xds-label="" β€” Istiod pod label selector
  • --xds-port=15012 β€” Istiod pod port

πŸ’… OPTIONS INHERITED FROM PARENT COMMANDS πŸ’…

these are the flags you get from the parent command, bestie. they're like the hand-me-downs but make it Kubernetes:

  • --as="" β€” Username to impersonate for the operation. User could be a regular user or a service account in a namespace
  • --as-group=[] β€” Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
  • --as-uid="" β€” UID to impersonate for the operation.
  • --context="" β€” Kubernetes configuration context
  • -i, --istioNamespace="istio-system" β€” Istio system namespace
  • --kubeclient-timeout="15s" β€” Kubernetes client timeout as a time.Duration string, defaults to 15 seconds.
  • -c, --kubeconfig="" β€” Kubernetes configuration file
  • -n, --namespace="" β€” Kubernetes namespace
  • --vklog=0 β€” number for the log level verbosity. Like -v flag. ex: --vklog=9

🌈 EXAMPLE 🌈

okay these examples are literally the blueprint, bestie. copy them, love them, use them. πŸ‘‘

update resources on the fly before applying:

kubectl apply -f <(istioctl kube-inject -f <resource.yaml>)

create a persistent version of the deployment with Istio sidecar injected:

istioctl kube-inject -f deployment.yaml -o deployment-injected.yaml

update an existing deployment:

kubectl get deployment -o yaml | istioctl kube-inject -f - | kubectl apply -f -

capture cluster configuration for later use with kube-inject:

kubectl -n istio-system get cm istio-sidecar-injector  -o jsonpath="{.data.config}" > /tmp/inj-template.tmpl
kubectl -n istio-system get cm istio -o jsonpath="{.data.mesh}" > /tmp/mesh.yaml
kubectl -n istio-system get cm istio-sidecar-injector -o jsonpath="{.data.values}" > /tmp/values.json

use kube-inject based on captured configuration:

istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml \
  --injectConfigFile /tmp/inj-template.tmpl \
  --meshConfigFile /tmp/mesh.yaml \
  --valuesFile /tmp/values.json

πŸ’œ SEE ALSO πŸ’œ

  • istioctl(1) β€” the parent command, the main character, the origin story 🫢


okay that's the whole page, bestie! you're now fully educated on istioctl kube-inject and honestly? you ate that. πŸ’…βœ¨

πŸŽ€ cute sign-off: this page was auto generated by spf13/cobra, dated Jan 1980, and it's serving ISTIOCTL-KUBE-INJECT(1) realness. no cap, that's the vibe. πŸ¦‹πŸŒΈ
πŸ“¦ where this page comes from