diff --git a/api/k8sconsts/odiglet.go b/api/k8sconsts/odiglet.go index a48bd64cfb..d44ebb7b8e 100644 --- a/api/k8sconsts/odiglet.go +++ b/api/k8sconsts/odiglet.go @@ -35,7 +35,6 @@ const ( OdigletLocalTrafficServiceName = "odiglet-local" OdigletMetricsServerPort = 8080 - OdigletWaspServicePort = 4040 // CSI Driver identification OdigletCSIDriverName = "odigos.csi.driver" diff --git a/common/consts/consts.go b/common/consts/consts.go index 64bfffaa32..12bf2d7039 100644 --- a/common/consts/consts.go +++ b/common/consts/consts.go @@ -120,7 +120,6 @@ const ( AllowedTestConnectionHostsProperty = "allowed-test-connection-hosts" EnableDataCompressionProperty = "enable-data-compression" ResourceSizePresetProperty = "resource-size-preset" - WaspEnabledProperty = "wasp-enabled" ) var ErrorPodsNotFound = errors.New("could not find a ready pod") diff --git a/common/odigos_config.go b/common/odigos_config.go index 177f08a94f..3233917319 100644 --- a/common/odigos_config.go +++ b/common/odigos_config.go @@ -667,7 +667,6 @@ type OdigosConfiguration struct { ClickhouseJsonTypeEnabledProperty *bool `json:"clickhouseJsonTypeEnabled,omitempty"` CheckDeviceHealthBeforeInjection *bool `json:"checkDeviceHealthBeforeInjection,omitempty"` ResourceSizePreset string `json:"resourceSizePreset,omitempty" yaml:"resourceSizePreset"` - WaspEnabled *bool `json:"waspEnabled,omitempty" yaml:"waspEnabled"` MetricsSources *MetricsSourceConfiguration `json:"metricsSources,omitempty" yaml:"metricsSources"` TraceCorrelations *TraceCorrelationsConfiguration `json:"traceCorrelations,omitempty" yaml:"traceCorrelations"` diff --git a/config/data/instrumentation.yaml b/config/data/instrumentation.yaml index 3f967c9dc5..ab88807ac9 100644 --- a/config/data/instrumentation.yaml +++ b/config/data/instrumentation.yaml @@ -37,8 +37,3 @@ spec: description: Verify the virtual device health before injecting instrumentation into a pod. helmValuePath: instrumentor.checkDeviceHealthBeforeInjection renderCondition: ["instrumentor.mountMethod", "==", "k8s-virtual-device"] - - displayName: Wasp Enabled - componentType: toggle - isHelmOnly: false - description: Enable Wasp-based instrumentation. - helmValuePath: wasp.enabled diff --git a/distros/distro/oteldistribution.go b/distros/distro/oteldistribution.go index 44d26d7eb2..2b0567d446 100644 --- a/distros/distro/oteldistribution.go +++ b/distros/distro/oteldistribution.go @@ -122,7 +122,8 @@ type RuntimeAgent struct { // If true, the agent supports ld-preload injection of "append" environment variables. LdPreloadInjectionSupported bool `yaml:"ldPreloadInjectionSupported,omitempty"` - // If true, the agent supports wasp + // If true, the agent supports wasp. + // This field used to be inspected by the pods webhook, it is currently no used - keep it for clarity and future use. WaspSupported bool `yaml:"waspSupported,omitempty"` // If true, the instrumentation applied by this agent does not require application restart. diff --git a/distros/distro/utils.go b/distros/distro/utils.go index 30cabf7686..d20ba4ce74 100644 --- a/distros/distro/utils.go +++ b/distros/distro/utils.go @@ -11,10 +11,6 @@ func IsRestartRequired(d *OtelDistro, config *common.OdigosConfiguration) bool { if d.RuntimeAgent == nil { return false } - // currently if wasp is enabled and supported by the distribution, restart is required - if config.WaspEnabled != nil && *config.WaspEnabled && d.RuntimeAgent.WaspSupported { - return true - } return !d.RuntimeAgent.NoRestartRequired } diff --git a/docs/snippets/shared/setup/verifying-images.mdx b/docs/snippets/shared/setup/verifying-images.mdx index 241672b031..2ff00ca486 100644 --- a/docs/snippets/shared/setup/verifying-images.mdx +++ b/docs/snippets/shared/setup/verifying-images.mdx @@ -100,7 +100,6 @@ artifact is signed from lives in | Component images (`odigos-*`) | `^https://github\.com/odigos-io/odigos/\.github/workflows/publish-modules\.yml@refs/tags/v.*$` | | CLI image + `odigos-victoria-metrics` | `^https://github\.com/odigos-io/odigos/\.github/workflows/release\.yml@refs/heads/main$` | | Enterprise images (`odigos-enterprise-*`) | `^https://github\.com/odigos-io/odigos-enterprise/\.github/workflows/release-images\.yml@refs/(tags/.*\|heads/.*)$` | -| `wasp-init` | `^https://github\.com/odigos-io/ebpf-core/\.github/workflows/build-sender\.yml@refs/(heads/main\|heads/releases/.*\|tags/.*)$` | | `odigos-cli-offsets` | `^https://github\.com/odigos-io/enterprise-go-instrumentation/\.github/workflows/offsets-push\.yml@refs/heads/.*$` | | `odigos-vmagent-instrumentations` | `^https://github\.com/odigos-io/vm-agent/\.github/workflows/publish-agents\.yml@refs/(heads/.*\|tags/agents/.*)$` | @@ -130,7 +129,7 @@ version listed in [`SIGNING.md`](https://github.com/odigos-io/ci-core/blob/main/ `odigos-enterprise-connector-runtime`, `odigos-enterprise-connector-aws`, `odigos-enterprise-connector-azure`, `odigos-enterprise-connector-gcp` — `odiglet` and `agents` also publish `-extended` variants (separate digests, same identity) -- **Supporting images**: `wasp-init`, `odigos-cli-offsets`, and +- **Supporting images**: `odigos-cli-offsets`, and `odigos-vmagent-instrumentations` (signed for publishes after 2026-08-12) ## Air-gapped verification diff --git a/frontend/graph/configs.graphqls b/frontend/graph/configs.graphqls index 458b52d70b..b6509c69f3 100644 --- a/frontend/graph/configs.graphqls +++ b/frontend/graph/configs.graphqls @@ -329,10 +329,6 @@ input LocalUiConfigAllowConcurrentAgentsInput { enabled: Boolean } -input LocalUiConfigWaspInput { - enabled: Boolean -} - input LocalUiConfigSpanSamplingAttributesInput { disabled: Boolean samplingCategoryDisabled: Boolean @@ -377,7 +373,6 @@ input LocalUiConfigInput { clusterName: String instrumentor: LocalUiConfigInstrumentorInput allowConcurrentAgents: LocalUiConfigAllowConcurrentAgentsInput - wasp: LocalUiConfigWaspInput rollout: LocalUiConfigRolloutInput autoRollback: LocalUiConfigAutoRollbackInput goAutoOffsetsCron: String diff --git a/frontend/graph/conversions.go b/frontend/graph/conversions.go index 2e0dc33378..d2ce4f7bea 100644 --- a/frontend/graph/conversions.go +++ b/frontend/graph/conversions.go @@ -234,12 +234,6 @@ func EffectiveConfigToModel(config *common.OdigosConfiguration, prov map[string] pc.recordAs("karpenterEnabled", "karpenter.enabled") } - result.Wasp = &model.WaspConfig{} - if config.WaspEnabled != nil { - result.Wasp.Enabled = config.WaspEnabled - pc.recordAs("waspEnabled", "wasp.enabled") - } - result.Instrumentor = &model.InstrumentorConfig{} if config.CheckDeviceHealthBeforeInjection != nil { result.Instrumentor.CheckDeviceHealthBeforeInjection = config.CheckDeviceHealthBeforeInjection diff --git a/frontend/graph/generated.go b/frontend/graph/generated.go index d21ecb7b9a..318cb239f0 100644 --- a/frontend/graph/generated.go +++ b/frontend/graph/generated.go @@ -12269,7 +12269,6 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { ec.unmarshalInputLocalUiConfigSpanSamplingAttributesInput, ec.unmarshalInputLocalUiConfigTraceCorrelationsInput, ec.unmarshalInputLocalUiConfigTraceCorrelationsServiceIOInput, - ec.unmarshalInputLocalUiConfigWaspInput, ec.unmarshalInputMessagingPayloadCollectionInput, ec.unmarshalInputNoisyOperationRuleInput, ec.unmarshalInputPatchSourceRequestInput, @@ -84471,7 +84470,7 @@ func (ec *executionContext) unmarshalInputLocalUiConfigInput(ctx context.Context asMap[k] = v } - fieldsInOrder := [...]string{"telemetryEnabled", "ignoredNamespaces", "ignoredContainers", "ignoreOdigosNamespace", "clusterName", "instrumentor", "allowConcurrentAgents", "wasp", "rollout", "autoRollback", "goAutoOffsetsCron", "goAutoOffsetsMode", "sampling", "componentLogLevels", "traceCorrelations"} + fieldsInOrder := [...]string{"telemetryEnabled", "ignoredNamespaces", "ignoredContainers", "ignoreOdigosNamespace", "clusterName", "instrumentor", "allowConcurrentAgents", "rollout", "autoRollback", "goAutoOffsetsCron", "goAutoOffsetsMode", "sampling", "componentLogLevels", "traceCorrelations"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -84527,13 +84526,6 @@ func (ec *executionContext) unmarshalInputLocalUiConfigInput(ctx context.Context return it, err } it.AllowConcurrentAgents = data - case "wasp": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("wasp")) - data, err := ec.unmarshalOLocalUiConfigWaspInput2ᚖgithubᚗcomᚋodigosᚑioᚋodigosᚋfrontendᚋgraphᚋmodelᚐLocalUIConfigWaspInput(ctx, v) - if err != nil { - return it, err - } - it.Wasp = data case "rollout": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("rollout")) data, err := ec.unmarshalOLocalUiConfigRolloutInput2ᚖgithubᚗcomᚋodigosᚑioᚋodigosᚋfrontendᚋgraphᚋmodelᚐLocalUIConfigRolloutInput(ctx, v) @@ -84828,33 +84820,6 @@ func (ec *executionContext) unmarshalInputLocalUiConfigTraceCorrelationsServiceI return it, nil } -func (ec *executionContext) unmarshalInputLocalUiConfigWaspInput(ctx context.Context, obj any) (model.LocalUIConfigWaspInput, error) { - var it model.LocalUIConfigWaspInput - asMap := map[string]any{} - for k, v := range obj.(map[string]any) { - asMap[k] = v - } - - fieldsInOrder := [...]string{"enabled"} - for _, k := range fieldsInOrder { - v, ok := asMap[k] - if !ok { - continue - } - switch k { - case "enabled": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("enabled")) - data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) - if err != nil { - return it, err - } - it.Enabled = data - } - } - - return it, nil -} - func (ec *executionContext) unmarshalInputMessagingPayloadCollectionInput(ctx context.Context, obj any) (model.MessagingPayloadCollectionInput, error) { var it model.MessagingPayloadCollectionInput asMap := map[string]any{} @@ -111824,14 +111789,6 @@ func (ec *executionContext) unmarshalOLocalUiConfigTraceCorrelationsServiceIOInp return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) unmarshalOLocalUiConfigWaspInput2ᚖgithubᚗcomᚋodigosᚑioᚋodigosᚋfrontendᚋgraphᚋmodelᚐLocalUIConfigWaspInput(ctx context.Context, v any) (*model.LocalUIConfigWaspInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalInputLocalUiConfigWaspInput(ctx, v) - return &res, graphql.ErrorOnPath(ctx, err) -} - func (ec *executionContext) marshalOMessagingPayloadCollection2ᚖgithubᚗcomᚋodigosᚑioᚋodigosᚋfrontendᚋgraphᚋmodelᚐMessagingPayloadCollection(ctx context.Context, sel ast.SelectionSet, v *model.MessagingPayloadCollection) graphql.Marshaler { if v == nil { return graphql.Null diff --git a/frontend/graph/model/models_gen.go b/frontend/graph/model/models_gen.go index 4d94ee919e..e86a5ee7f6 100644 --- a/frontend/graph/model/models_gen.go +++ b/frontend/graph/model/models_gen.go @@ -1961,7 +1961,6 @@ type LocalUIConfigInput struct { ClusterName *string `json:"clusterName,omitempty"` Instrumentor *LocalUIConfigInstrumentorInput `json:"instrumentor,omitempty"` AllowConcurrentAgents *LocalUIConfigAllowConcurrentAgentsInput `json:"allowConcurrentAgents,omitempty"` - Wasp *LocalUIConfigWaspInput `json:"wasp,omitempty"` Rollout *LocalUIConfigRolloutInput `json:"rollout,omitempty"` AutoRollback *LocalUIConfigAutoRollbackInput `json:"autoRollback,omitempty"` GoAutoOffsetsCron *string `json:"goAutoOffsetsCron,omitempty"` @@ -2006,10 +2005,6 @@ type LocalUIConfigTraceCorrelationsServiceIOInput struct { MetricsFlushInterval *string `json:"metricsFlushInterval,omitempty"` } -type LocalUIConfigWaspInput struct { - Enabled *bool `json:"enabled,omitempty"` -} - type MessagingPayloadCollection struct { MaxPayloadLength *int `json:"maxPayloadLength,omitempty"` DropPartialPayloads *bool `json:"dropPartialPayloads,omitempty"` diff --git a/frontend/services/local_ui_config.go b/frontend/services/local_ui_config.go index a6a1c6ccb0..77cfa96567 100644 --- a/frontend/services/local_ui_config.go +++ b/frontend/services/local_ui_config.go @@ -137,11 +137,6 @@ func applyLocalUiConfigInput(cfg *common.OdigosConfiguration, input model.LocalU cfg.AllowConcurrentAgents = input.AllowConcurrentAgents.Enabled } } - if input.Wasp != nil { - if input.Wasp.Enabled != nil { - cfg.WaspEnabled = input.Wasp.Enabled - } - } if input.Rollout != nil { if cfg.Rollout == nil { cfg.Rollout = &common.RolloutConfiguration{} diff --git a/frontend/services/provenance.go b/frontend/services/provenance.go index 567ded06f4..e956d204b7 100644 --- a/frontend/services/provenance.go +++ b/frontend/services/provenance.go @@ -64,9 +64,6 @@ func recordOverlayProvenance(config *common.OdigosConfiguration, provenance map[ if config.AllowConcurrentAgents != nil { provenance["allowConcurrentAgents"] = sourceName } - if config.WaspEnabled != nil { - provenance["waspEnabled"] = sourceName - } if config.Rollout != nil { if config.Rollout.AutomaticRolloutDisabled != nil { provenance["rollout.automaticRolloutDisabled"] = sourceName @@ -235,18 +232,6 @@ func detectProfileProvenance(base, remote, local, effective *common.OdigosConfig provenance["checkDeviceHealthBeforeInjection"] = "profile" } - // waspEnabled: settable by overlays - preWasp := base.WaspEnabled - if remote != nil && remote.WaspEnabled != nil { - preWasp = remote.WaspEnabled - } - if local != nil && local.WaspEnabled != nil { - preWasp = local.WaspEnabled - } - if !reflect.DeepEqual(preWasp, effective.WaspEnabled) { - provenance["waspEnabled"] = "profile" - } - // metricsSources: only base config and profiles can set this if !reflect.DeepEqual(base.MetricsSources, effective.MetricsSources) { provenance["metricsSources"] = "profile" diff --git a/frontend/webapp/cypress/e2e/settings.cy.ts b/frontend/webapp/cypress/e2e/settings.cy.ts index be4149ef6b..ec96ba9afe 100644 --- a/frontend/webapp/cypress/e2e/settings.cy.ts +++ b/frontend/webapp/cypress/e2e/settings.cy.ts @@ -203,7 +203,6 @@ describe('Settings CRUD', () => { selectDropdownOption('instrumentor.agentEnvVarsInjectionMethod', 'pod-manifest'); clickToggle('allowConcurrentAgents.enabled'); clickToggle('instrumentor.checkDeviceHealthBeforeInjection'); - clickToggle('wasp.enabled'); // ─ Rollout & Rollback ─ clickToggle('rollout.automaticRolloutDisabled'); @@ -264,7 +263,6 @@ describe('Settings CRUD', () => { expect(yaml).to.contain('agentEnvVarsInjectionMethod: pod-manifest'); expect(yaml).to.contain('allowConcurrentAgents:'); expect(yaml).to.contain('checkDeviceHealthBeforeInjection:'); - expect(yaml).to.contain('waspEnabled:'); // ─ Rollout & Rollback (inputs + toggles) ─ expect(yaml).to.contain('automaticRolloutDisabled:'); @@ -302,7 +300,6 @@ describe('Settings CRUD', () => { expect(yaml).to.contain('agentEnvVarsInjectionMethod: pod-manifest'); expect(yaml).to.contain('allowConcurrentAgents:'); expect(yaml).to.contain('checkDeviceHealthBeforeInjection:'); - expect(yaml).to.contain('waspEnabled:'); // ─ Rollout & Rollback ─ expect(yaml).to.contain('automaticRolloutDisabled:'); @@ -345,7 +342,6 @@ describe('Settings CRUD', () => { verifyDropdown('instrumentor.agentEnvVarsInjectionMethod', 'pod-manifest'); verifyToggle('allowConcurrentAgents.enabled', true); verifyToggle('instrumentor.checkDeviceHealthBeforeInjection', true); - verifyToggle('wasp.enabled', true); // ─ Rollout & Rollback ─ verifyToggle('rollout.automaticRolloutDisabled', true); @@ -415,7 +411,6 @@ describe('Settings CRUD', () => { expect(yaml).to.not.contain('cypress-test-container'); expect(yaml).to.not.contain('maxConcurrentRollouts: 5'); expect(yaml).to.not.contain('keepPercentage: 50'); - expect(yaml).to.not.contain('waspEnabled:'); expect(yaml).to.not.contain('allowConcurrentAgents:'); }); }); diff --git a/helm/odigos/templates/odiglet/daemonset.yaml b/helm/odigos/templates/odiglet/daemonset.yaml index b53d71e7b4..1cf9f0c059 100644 --- a/helm/odigos/templates/odiglet/daemonset.yaml +++ b/helm/odigos/templates/odiglet/daemonset.yaml @@ -169,8 +169,8 @@ spec: {{- if .Values.odiglet.traceIdSuffix }} - --trace-id-suffix={{ .Values.odiglet.traceIdSuffix }} {{- end }} - {{- if .Values.wasp.enabled }} - - --wasp-enabled + {{- if .Values.wasp.disabled }} + - --wasp-disabled {{- end }} command: - /root/odiglet @@ -421,6 +421,12 @@ spec: {{- if and .Values.odiglet.runAsNonRoot (not (eq .Values.instrumentor.mountMethod "k8s-init-container")) }} {{ fail "odiglet.runAsNonRoot is only supported with instrumentor.mountMethod=k8s-init-container" }} {{- end }} +# Without the host PID namespace, uprobes cannot be scoped to a single process, so they apply +# to every process sharing the agent files. k8s-init-container gives each pod its own copy, +# which keeps that scope contained to the pod. +{{- if and .Values.odiglet.noHostPid (not (eq .Values.instrumentor.mountMethod "k8s-init-container")) }} +{{ fail "odiglet.noHostPid is only supported with instrumentor.mountMethod=k8s-init-container" }} +{{- end }} # to use device plugins we need to have the "k8s-virtual-device" mount method or non specified (default) # and to have hostMounts allowed {{- if or (eq .Values.instrumentor.mountMethod "") (eq .Values.instrumentor.mountMethod "k8s-virtual-device") }} diff --git a/helm/odigos/templates/odiglet/local-service.yaml b/helm/odigos/templates/odiglet/local-service.yaml index 56b83a7421..092027757a 100644 --- a/helm/odigos/templates/odiglet/local-service.yaml +++ b/helm/odigos/templates/odiglet/local-service.yaml @@ -16,9 +16,6 @@ spec: - name: metrics port: 8080 targetPort: 8080 - - name: wasp - port: 4040 - targetPort: 4040 selector: app.kubernetes.io/name: odiglet internalTrafficPolicy: Local diff --git a/helm/odigos/templates/odigos-configuration-cm.yaml b/helm/odigos/templates/odigos-configuration-cm.yaml index bd242c6983..058d1d10bb 100644 --- a/helm/odigos/templates/odigos-configuration-cm.yaml +++ b/helm/odigos/templates/odigos-configuration-cm.yaml @@ -295,9 +295,6 @@ data: {{- if .Values.allowConcurrentAgents.enabled }} allowConcurrentAgents: {{ .Values.allowConcurrentAgents.enabled }} {{- end }} - {{- if .Values.wasp.enabled }} - waspEnabled: {{ .Values.wasp.enabled }} - {{- end }} {{- if .Values.goAutoOffsetsCron }} goAutoOffsetsCron: {{ .Values.goAutoOffsetsCron }} {{- end }} diff --git a/helm/odigos/values.schema.json b/helm/odigos/values.schema.json index b5fb674a43..7e7489d2a9 100644 --- a/helm/odigos/values.schema.json +++ b/helm/odigos/values.schema.json @@ -2896,9 +2896,10 @@ "additionalProperties": false, "description": "controls the wasp settings", "properties": { - "enabled": { + "disabled": { "default": false, - "title": "enabled", + "description": "odiglet uses wasp automatically when the kernel requires it. set to true to opt out.", + "title": "disabled", "type": "boolean" } }, diff --git a/helm/odigos/values.yaml b/helm/odigos/values.yaml index 4cc9947e46..cc61babf09 100644 --- a/helm/odigos/values.yaml +++ b/helm/odigos/values.yaml @@ -1715,7 +1715,8 @@ clickhouseDestinationJsonType: # description: controls the wasp settings # @schema wasp: - enabled: false + # odiglet uses wasp automatically when the kernel requires it. set to true to opt out. + disabled: false # @schema # description: |- diff --git a/instrumentor/cmd/main.go b/instrumentor/cmd/main.go index 9991e8bd62..845020239f 100644 --- a/instrumentor/cmd/main.go +++ b/instrumentor/cmd/main.go @@ -70,7 +70,7 @@ func main() { os.Exit(1) } - i, err := instrumentor.New(managerOptions, dp, nil) + i, err := instrumentor.New(managerOptions, dp) if err != nil { logger.Error("Failed to initialize instrumentor", "err", err) os.Exit(1) diff --git a/instrumentor/controllers/agentenabled/pods_webhook.go b/instrumentor/controllers/agentenabled/pods_webhook.go index 1ffd261ea8..a9e1a06661 100644 --- a/instrumentor/controllers/agentenabled/pods_webhook.go +++ b/instrumentor/controllers/agentenabled/pods_webhook.go @@ -39,7 +39,6 @@ type PodsWebhook struct { DistrosGetter *distros.Getter // decoder is used to decode the admission request's raw object into a structured corev1.Pod. Decoder admission.Decoder - WaspMutator func(*corev1.Pod, common.OdigosConfiguration) error } var _ admission.Handler = &PodsWebhook{} @@ -176,7 +175,6 @@ func (p *PodsWebhook) injectOdigos(ctx context.Context, pod *corev1.Pod, req adm } volumeMounted := false - waspSupported := false dirsToCopy := make(map[string]struct{}) for i := range pod.Spec.Containers { @@ -203,10 +201,6 @@ func (p *PodsWebhook) injectOdigos(ctx context.Context, pod *corev1.Pod, req adm return err } - if distroMetadata.RuntimeAgent != nil && distroMetadata.RuntimeAgent.WaspSupported { - waspSupported = true - } - volumeMounted = volumeMounted || containerVolumeMounted dirsToCopy = mergeMaps(dirsToCopy, containerDirsToCopy) } @@ -230,13 +224,6 @@ func (p *PodsWebhook) injectOdigos(ctx context.Context, pod *corev1.Pod, req adm podswebhook.MountPodVolumeToCSI(pod) } - if odigosConfiguration.WaspEnabled != nil && *odigosConfiguration.WaspEnabled && waspSupported && p.WaspMutator != nil { - err = p.WaspMutator(pod, odigosConfiguration) - if err != nil { - return fmt.Errorf("failed to do wasp mutation: %w", err) - } - } - // Inject ODIGOS environment variables and instrumentation device into all containers injectErr := p.injectOdigosInstrumentation(ctx, pod, &ic, pw, &odigosConfiguration) if injectErr != nil { diff --git a/instrumentor/controllers/manager.go b/instrumentor/controllers/manager.go index fae0f99dc7..5d1f597665 100644 --- a/instrumentor/controllers/manager.go +++ b/instrumentor/controllers/manager.go @@ -8,7 +8,6 @@ import ( "github.com/go-logr/logr" - "github.com/odigos-io/odigos/common" "github.com/odigos-io/odigos/distros" "github.com/odigos-io/odigos/instrumentor/controllers/agentenabled" "github.com/odigos-io/odigos/instrumentor/controllers/instrumentednodes" @@ -199,7 +198,6 @@ func SetupWithManager(ctx context.Context, mgr manager.Manager, dp *distros.Prov type WebhookConfig struct { DistrosProvider *distros.Provider - WaspMutator func(*corev1.Pod, common.OdigosConfiguration) error } func RegisterWebhooks(mgr manager.Manager, config WebhookConfig) error { @@ -222,7 +220,6 @@ func RegisterWebhooks(mgr manager.Manager, config WebhookConfig) error { Client: mgr.GetClient(), DistrosGetter: config.DistrosProvider.Getter, Decoder: decoder, - WaspMutator: config.WaspMutator, } // Register directly with GetWebhookServer() since this webhook uses admission.Handler for full control. diff --git a/instrumentor/instrumentor.go b/instrumentor/instrumentor.go index 0b16f98e95..f8c1c47b69 100644 --- a/instrumentor/instrumentor.go +++ b/instrumentor/instrumentor.go @@ -23,7 +23,6 @@ import ( "github.com/odigos-io/odigos/k8sutils/pkg/feature" "github.com/open-policy-agent/cert-controller/pkg/rotator" "golang.org/x/sync/errgroup" - corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" controllerruntime "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/healthz" @@ -34,10 +33,9 @@ type Instrumentor struct { certReady chan struct{} dp *distros.Provider webhooksRegistered *atomic.Bool - waspMutator func(*corev1.Pod, common.OdigosConfiguration) error } -func New(opts controllers.KubeManagerOptions, dp *distros.Provider, waspMutator func(*corev1.Pod, common.OdigosConfiguration) error) (*Instrumentor, error) { +func New(opts controllers.KubeManagerOptions, dp *distros.Provider) (*Instrumentor, error) { err := feature.Setup() if err != nil { return nil, err @@ -131,7 +129,6 @@ func New(opts controllers.KubeManagerOptions, dp *distros.Provider, waspMutator certReady: rotatorSetupFinished, dp: dp, webhooksRegistered: webhooksRegistered, - waspMutator: waspMutator, }, nil } @@ -182,7 +179,6 @@ func (i *Instrumentor) Run(ctx context.Context, odigosTelemetryDisabled bool) { logger.Info("Cert rotator is ready") err := controllers.RegisterWebhooks(i.mgr, controllers.WebhookConfig{ DistrosProvider: i.dp, - WaspMutator: i.waspMutator, }) if err != nil { return err diff --git a/scheduler/controllers/odigosconfiguration/odigosconfiguration_controller.go b/scheduler/controllers/odigosconfiguration/odigosconfiguration_controller.go index a24ea0289e..5affb2bc37 100644 --- a/scheduler/controllers/odigosconfiguration/odigosconfiguration_controller.go +++ b/scheduler/controllers/odigosconfiguration/odigosconfiguration_controller.go @@ -235,10 +235,6 @@ func mergeConfigs(baseConfig *common.OdigosConfiguration, addtionalConfig *commo baseConfig.AllowConcurrentAgents = addtionalConfig.AllowConcurrentAgents } - if addtionalConfig.WaspEnabled != nil { - baseConfig.WaspEnabled = addtionalConfig.WaspEnabled - } - if addtionalConfig.Rollout != nil { if baseConfig.Rollout == nil { baseConfig.Rollout = &common.RolloutConfiguration{}