omni/client/pkg/diff/testdata/populated-to-empty.diff
Utku Ozdemir a89d270cd3
fix: replace gotextdiff with linear-space Myers diff to prevent OOM
The gotextdiff/myers library uses the naive Myers algorithm variant that stores the full edit trace, resulting in O((M+N)^2) space complexity.

For machine configs with large inline K8s manifests (thousands of lines), this causes massive memory spikes — e.g., 80K lines allocates ~98 GB and gets OOM-killed.

Replace it with neticdk/go-stdlib/diff/myers which implements the linear-space Myers variant (divide-and-conquer). Memory usage drops from ~25 GB to ~8 MB for 40K-line inputs.

The diff output format is unchanged (unified diff with @@ hunks).

Co-authored-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
Co-authored-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-02-12 15:06:43 +01:00

95 lines
11 KiB
Diff

@@ -1,93 +0,0 @@
-version: v1alpha1
-debug: false
-persist: true
-machine:
- type: controlplane
- token: 4mt9sd.hr5cin96659m36mo
- ca:
- crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJQakNCOGFBREFnRUNBaEJBc0RIVW0vUmd0OUVHcWpjK0g3UEhNQVVHQXl0bGNEQVFNUTR3REFZRFZRUUsKRXdWMFlXeHZjekFlRncweU5qQXlNVEV4TVRRMk1qbGFGdzB6TmpBeU1Ea3hNVFEyTWpsYU1CQXhEakFNQmdOVgpCQW9UQlhSaGJHOXpNQ293QlFZREsyVndBeUVBSjdqVTRZVWI4RGRIbXIwRzlycmNvTmdxQmNYZ1Q0RWRRZmJDCllMV3IyOEtqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVc3MwcVpWU1VLWHRwL0kzRQpFWTlDYk5manNwMHdCUVlESzJWd0EwRUFnalBqeUpFZlkwV2RSUWc1SW5NUk16M3kvMHNyVW5tRXRCdmtZbzRtCnpBakZvSTVDUHA4RjBvVXZUWGl6dUpvZ0lyTDFzU3ZlRTZ1NWRtd0tkY1ovQ0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
- key: LS0tLS1CRUdJTiBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0KTUM0Q0FRQXdCUVlESzJWd0JDSUVJRTA1Rys1M3daVnJWaG5yUkpVWnVUMjdxWks3NFVKOVdOaUdQcklkMHBxeQotLS0tLUVORCBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0K
- certSANs: []
- kubelet:
- image: ghcr.io/siderolabs/kubelet:v1.35.0
- defaultRuntimeSeccompProfileEnabled: true
- disableManifestsDirectory: true
- install:
- wipe: false
- grubUseUKICmdline: true
- features:
- diskQuotaSupport: true
- kubePrism:
- enabled: true
- port: 7445
- hostDNS:
- enabled: true
- forwardKubeDNSToHost: true
- nodeLabels:
- node.kubernetes.io/exclude-from-external-load-balancers: ""
-cluster:
- id: azUt9rGPGjaEIgUlURIz1pG20YRjuR-bgju_e_flrG0=
- secret: 1owH1iMEusQTzqq432Y4ew3B0WM7HmAiZ3/fXaOhTjk=
- controlPlane:
- endpoint: https://1.2.3.4:6443
- clusterName: benchmark-cluster
- network:
- dnsDomain: cluster.local
- podSubnets:
- - 10.244.0.0/16
- serviceSubnets:
- - 10.96.0.0/12
- token: 146zj4.kv8b0ajr2b218c3b
- secretboxEncryptionSecret: SCDXKJSC3znqdmYaJ8paPZyZXvWzBvf1vsbdsMIE2EM=
- ca:
- crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpakNDQVRDZ0F3SUJBZ0lSQU4wRXNjUkdCakptOFF5dWVXdyt3eTB3Q2dZSUtvWkl6ajBFQXdJd0ZURVQKTUJFR0ExVUVDaE1LYTNWaVpYSnVaWFJsY3pBZUZ3MHlOakF5TVRFeE1UUTJNamxhRncwek5qQXlNRGt4TVRRMgpNamxhTUJVeEV6QVJCZ05WQkFvVENtdDFZbVZ5Ym1WMFpYTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CCkJ3TkNBQVFhKzdKak5CVG91QkZhMmpDRkN5TlBPWWlEUlUwcFZuVzkxWE1qbDVteVV0VU81MjE5QmN3a2lCTE4KRDRUOUlpUnFsYU5BVHlhZzNna1FPNTlJK01DYm8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXdIUVlEVlIwbApCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPCkJCWUVGR2tCNjJWcEphTW93ZW1LQXZlb2tVdkIzVHpTTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1ZmdEMKcnF2UDZCa2FwemFjQitDT2U0T1o3VDYyV0JycFgvQ1dVUE5pd1FJZ09ZcG55SHJYa0JuVm1HNXUzWXFTL2dmWQpuYzA0VFFQOVRVS0JGWDRrd2pRPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
- key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUZxK1ZEVnVsVGY2MDNDTWQ2Qlc5dlFnc09wbHFWMjV0b3AySnQzQWM2blJvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFR3Z1eVl6UVU2TGdSV3Rvd2hRc2pUem1JZzBWTktWWjF2ZFZ6STVlWnNsTFZEdWR0ZlFYTQpKSWdTelErRS9TSWthcFdqUUU4bW9ONEpFRHVmU1BqQW13PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
- aggregatorCA:
- crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJYakNDQVFXZ0F3SUJBZ0lRVnZZaTVxazAvbm84cW04S3RUN3QvakFLQmdncWhrak9QUVFEQWpBQU1CNFgKRFRJMk1ESXhNVEV4TkRZeU9Wb1hEVE0yTURJd09URXhORFl5T1Zvd0FEQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxRwpTTTQ5QXdFSEEwSUFCREFhV2tlQmw1OTFLMlJyL3VVSWcyOFphWDlERDJsa3JRUzYvb1RlSFhwWGZIVEJZQjJmCjZrNVZsQjBTTTByaWVPWSt4a1NjZkhVNzhCSGJQWjFjbU51allUQmZNQTRHQTFVZER3RUIvd1FFQXdJQ2hEQWQKQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZApCZ05WSFE0RUZnUVVia3p4VnlYQTFFd1J6SmpjMXZmbGExY2VQSTh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnCkpqdzE3eUw0T010RHJzcEZVUHp5Y29yK2k4eFQzQVdxM09IN3RrM0t5K1lDSUgvRm8yY0lyb0IrdXFDQWQ2L28Ka3VEdXlrWjI3WnNNdGZRSzVSTnFFRkFtCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
- key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUlINm5YaXRTVFBsb0JwZGUrdXZ2NUtpb0JrelJpZ2R1RU1IWWVaeGFJWWJvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFTUJwYVI0R1huM1VyWkd2KzVRaURieGxwZjBNUGFXU3RCTHIraE40ZGVsZDhkTUZnSFovcQpUbFdVSFJJelN1SjQ1ajdHUkp4OGRUdndFZHM5blZ5WTJ3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
- serviceAccount:
- key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKSndJQkFBS0NBZ0VBb2x6eVdtcmZNY0NzTnRpeUtGNzNFQUEzZTJDd0tNb2FXamNIb3V6TkpYZEVISmU0CjFTVkwySTFPZk1kRjM1aXBVOWRRN0QvbmpUbmlnd1F1b0FveSt3UTNERkFFN3BBTjYxZGJMN2N1eEM0aXZKSzkKaTFNSEROSzNGb0RQeHg0WHVUeFJIRXRjQ3plcHRhM0xRMzloSFQxVzFZVWxvSjExM0RrbmZ0MGg1dkVaSU9aYQprWmR0Y3BkWFB6a0VmaWp4Z3RiQS9vNlRaSjUzR2laTWhZcHVTdHo1ZWE3cnB4Qzg1ZGYrNU1qUW1uWHVIRXRPCnU0amRweVcyRXJHRkhkSzYybjU3WVlCdm05cmpObVB1MUh0cUZXSjVPRW5LMEFpYTA0ZEUrUlp2bEhFWW1RM3QKRzRCZElIRDA4R1hWWDliQWJmVzA1L09CeEMxb2VLdkVjMlhhdmtmaVdXT0g5eWVheFlhNHU4TDF6OXlWZ1VtSApQV1ZxTVN0WjV2amwyYmhwZVN2dDBtSGFtTFdXVHVtZnRpNUQzTU01em1jOHhTZG1WU0dkS3FHbnlzdGd6OHMvClNSd1RrLzM0RDcveU43MXJPRXZJTGQzdWJ4WGJwYUtxdUJndUJNZCtWTklzazUzZmlNek1pNEFJVCtzWmRkSU0KMWhRU1d4M2FNdUJaQlhmUUR2akRzK3hSVGEzSUlkMXlYQnYycUYxeGFKTktMU2MwUGN2Q1I5Z1RIbzBtRzNXWQpjdDdFbEZCZ3Z2TWNPcEI5RG80TllJaVlDSE1BSmU5dFRCaWxTa2FGTmcrOHE0TktQUm9QL3V6enhLQmlsbGI4CjB5S1JMQm05d2Y1cXJKWllsdExvbFV6bXMrek92SFl2Z1RUb082ZUVEL1hsdkFJVFlITnZvQkhIYWFjQ0F3RUEKQVFLQ0FnQko0ZzdjcXo1R2x4MG0xaVA0TUFLd1V0RHNnVnFZTFNPaHd1SGtOMnJBN2sxZHo0THA1MDlreXlTWQpybHR5L0xhczh0R2R1QlRIMUx2cEQ3bWgxUkpPM0tPcUpDMmlXNFloL2ozOThCZEZhWk1nQ1l4Y1BwdDZMOWJsCjFCYjR6bzVRR2d6MDJhd1laS3VEQTRONEF4cHZvazZGMmxGOWpibW96WTlWOFEydzJDeXRwblUzUkZlbktnd24KTm14L2RtVTBPMEpXZEEzSlh6em1kdUFpY3BSdTE3Qmt1WDc5cHFXMjE3dmpZeWhkNldWQmxkbE5pR0lJNGlYQQp5dXcrM25wdDI5bU1URlE5Y1hVc2Rud2pUOGU5MUhKQjlYNW5mVXJyRCthSWpMZVlyb0JaZ1pkUWlQQ1h4eDhHCjErZ3BkUUZhNkZENnJmbnlpaEU4dkRrb3BBUk9FYTN6b01qRVBVYXFEZzJVTjRPaUJjU1R3aUlHenBxdmJ5Si8KS2p6bW5PSjRsMm1TN3ZTRXZCMUJBRFBVN1dONzNyeHQ5NEJaeVUxZXN6OEFrYXdPWXVFdUVrYStEY1ZySkd4RQpHVkxOWjZZWnhUZXZYVjE4dHd2VXQxcEtaRE80clpsMVBRYVExQkdhMmlMZ3A4a1hhdWg0bTFtRGRkVEZEZjk1CkR2cXgyQnJycUNlZ1h6ekRacGNBcjRONWNZS0k3c21hV1N1ckF1WitOU2xvQVVZenRuZUZhYktadk4vS0hmSXUKVGRWVTBZTzJEQkM2N010dmJiZlhEMDBDUUc1R09mODYxTmVKRFljeE0xSElUVTcxUEtlVEhWNlN6OGZ4emVDZQpTS3JEWEN1YjBmMHVLNmM5OS9IUG9oTEtDVjhFNDZua2J3QUxRMk5nN1VlbE9WQlNjUUtDQVFFQXhvMkVGb1BkCmd4cUIwaHhhQkVuSS9YQzNtblRydCszZ1dUN1N1UjJYdFJpSkNvVXdWVjhXOFdFTVBrR2tFZ212ZHBnR0ErOHkKaE9sOVV0Q1RIdEFkSkU4NXR6bnZDbU5wanBXbmEyanh2SWp4aDdvRm1EYU5uSjdiUG9Pekw3ajFudUtuQTE4bwpZSFh5N3dpd1BkalJFNmNEdVpLRzlqb2o0S3pBM3lOWEZjR201bVVtVXlmaklLZWptdG5JMmlvSE9ZQ1dZREsvCjN5RW10QzRXNWt5T1Arck5jd2lVS1R3N3FpWGp4b2dqVU9xTVh3aHQyYWdOT0I4Rjh4TWdNQzloNmx1dDZuS20KWDZUVDZiN3k5WGpvanNrQVR1YU91V3NCUjlSSHRJZEwvRk1tVjlXNFltaHBrNW1HZE02cmJTOGlZOVQvYVNYQwp0VSt5UVpJdTc1UDBrUUtDQVFFQTBWYnFvRVk2VGdlYWE2TFd6QTlwMnlTRVoyWjRQOUxSVFFPTERBN2RFZDZzCnlmL2RkOEkyY3IyVFIydHZZMEw2VGJDRkhFVmVRZU9pTUx6dGFrdU05TXdmdXJJMUhVU3pyZTNhSlhZMHhvbWQKc3VWaHpHUTluR2tYUzNmOXVTTGx0ak82QXFLUmRyMzQ2WDloK2ZLeFFIbUpPaUY3Y0ErMFc5MlM2WkVjdUlTQQpGdWh0UVNYSnlnR2dhbzNBUW1uTkNvYndab1RUWHphSms4VEkwM2pQRGZGMStjNWF0aFlHL2FnWmp5TEwxNmxICkFzelZhbUxGU0NHSGU3b21iNm9oMGQ0N3ZmZXRneEN0RnN2UHdLc0dWeDJrVXhzMjVGbTdPbGZEM29qbGE0akIKVEtld1ZmVnRyTUUxY0poR1VpaWhSUWlPdmRzR1FQNk1NMGJIRlIwMnR3S0NBUUFnL0pIZFM3c1pkT1hzaWxsSwpMUmYvUXlLOXZuOEs1N0pHSVhIUTMyRzg3SDZZQ05pbTFrMXhmTFlVQWNQSVcyT1RTRjUzZU4zanh3YlRJMlBOCjByV0V1c1RUOUFRS3JjbHpydGxKdHYyeVhPNERwcHdYVmJqaE5HTW9WNmtGWEsweDRHWHU0WGhMemt5MStiT08KRXQ5cGJHM3Avclg5WWx0amtFL2F3bnhOV1FicGNCU1Y3Q0tINGxJRC8vcW1oQ1QvSUtYYkJaTnE5bzcva0VpdApxanBYMUNLZDRlYjdrczQyem1TeEx4enU3SWkxb1NqZTZGU0o1bDJPckxiRVNwcngzSmxnUWZ2eUYrZzlCVVJJCkUvWlBBb1hTbGV0UVVyNjd1RURSZFVqaWVzMzcrYjNRVzVodXRTcnBiUXg5N3o2L1p6dW50R1pNeVJqTVhBVUEKT0l5QkFvSUJBQUM3UWdTZldqTE5tZitJU1NIYlorNUpHV0ZYSFZKenhTRjB3cmFmRXF5dVQ0SkJMNS9zZ000egoxV0RwZ2pFaG1jaE50cGxic0xHZ1B2L1dtU25HNjg0ckxHMDFsRFB1K29YQUVBUVRmcW0yNzJNaHBBN1h4dE5XCkZxdS8xcFlnQmhkMTVNOS9pK3lUUzF4ZGdwVWlBUGFOdGlvSzFlaVZWWGNBdGpPMHV4bjE5SkNmN1VuTi9QK0UKcysvTFlRR2Fad29EWUxHckF5WVJCYmdMZHZ3dUx1TUlsZlh5ZjZTbFBROEQyRnNFcnh1b3pzTzJ2WVFxcGkvVApWaXJiZ3FqZk9sRUdhc1VHS1lnTXRkNGZoakZSSjZ1RVFmKzhWNXZDcUlIU3JxK0hZTzNZUTN5bUZWcW5pZU9SCnBVTW9kUTV5YitYUzJ0VFZBQmVZREJ0ZHd2SlM4TThDZ2dFQUlKNjQ2OFR2Um00bHVmM09IQUQ1cG83SEY1blMKckt6ZTB1UVhmTW4zRm53NlRWQzlvY2FXQlQxVEFYM3UvVG9wY0ZFRHJ5TDdBZ1ZsVFBqUWNsdHBmTHJjQTNGbQo2Si9rRUg3OWptZ1RkTFVkL0VoNmFXRUMwMktONWd6Mkk5bmlYMGtSamErOUNacUdFM3NhVS8yUWZBc2pBMkxhCjV3c0x3SmU5alVhM0JpVjIxWlFTekh0K29ab2xVdUhPWCtZOFYzQ012d1pXcUp4VVZobURDTit4SnZoOVErSGcKRkl3TWdHcmlFUDVIbFhVd3VyeE1DRzZGREtHUlJPRi9pV1VJZE4xSXlBUzQxY0Rwa1h4TkR6d1NrNEZuaGlNbwpxSE50S01mTTRYeHQ3VXZESWJieE5LZ2RCci9UczJBb2tDWHpZMjhDaFhiK0toMXlMbGpHTUU4cG1RPT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K
- apiServer:
- image: registry.k8s.io/kube-apiserver:v1.35.0
- admissionControl:
- - name: PodSecurity
- configuration:
- apiVersion: pod-security.admission.config.k8s.io/v1alpha1
- defaults:
- audit: restricted
- audit-version: latest
- enforce: baseline
- enforce-version: latest
- warn: restricted
- warn-version: latest
- exemptions:
- namespaces:
- - kube-system
- runtimeClasses: []
- usernames: []
- kind: PodSecurityConfiguration
- auditPolicy:
- apiVersion: audit.k8s.io/v1
- kind: Policy
- rules:
- - level: Metadata
- controllerManager:
- image: registry.k8s.io/kube-controller-manager:v1.35.0
- proxy:
- image: registry.k8s.io/kube-proxy:v1.35.0
- scheduler:
- image: registry.k8s.io/kube-scheduler:v1.35.0
- discovery:
- enabled: true
- registries:
- kubernetes:
- disabled: true
- service: {}
- etcd:
- ca:
- crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJmVENDQVNTZ0F3SUJBZ0lSQUo5NC8wNWpBSktZaUpZeHZnTWJoVVV3Q2dZSUtvWkl6ajBFQXdJd0R6RU4KTUFzR0ExVUVDaE1FWlhSalpEQWVGdzB5TmpBeU1URXhNVFEyTWpsYUZ3MHpOakF5TURreE1UUTJNamxhTUE4eApEVEFMQmdOVkJBb1RCR1YwWTJRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTb0twaFpQWlNoCnpyTzNNSnBlRk02UThJWm03OElHT2xNMzA2Nm1wZHQvRVFLNlJRUnYwZ3FodG10VFp6L0lUL0hlZk52V0Q1R2gKWkx0MmN3RDZ6ZHJrbzJFd1h6QU9CZ05WSFE4QkFmOEVCQU1DQW9Rd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSApBd0VHQ0NzR0FRVUZCd01DTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFRkc1bnloZmYxVk1sClZMZkN4VHpLdTFjYnRzY2lNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJSHBNaGZ6aTJVUVhyZkpjdXh4ZXVpdFoKY3hyc0pPS1JBaStSWkFFWDlBZEJBaUFyRXYzQ2N3OXAycTR5Rm1IelVNbGlPQjJsUXNSUVloQkxmcEltb2lIUApudz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
- key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUhsWldRYzJrVVhlb2NYMmE1aEFVaXlDUnFzQ0FwOXlpV2NhbnlpejVLNy9vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFcUNxWVdUMlVvYzZ6dHpDYVhoVE9rUENHWnUvQ0JqcFROOU91cHFYYmZ4RUN1a1VFYjlJSwpvYlpyVTJjL3lFL3gzbnpiMWcrUm9XUzdkbk1BK3MzYTVBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
----
-apiVersion: v1alpha1
-kind: HostnameConfig
-auto: stable