1
1
import { execSync } from 'child_process' ;
2
2
import { readFile , writeFile } from 'fs/promises' ;
3
- import { gunzip } from 'node:zlib' ;
4
- import { Readable } from 'stream' ;
5
- import { gunzipSync } from 'zlib' ;
6
- import * as yaml from 'js-yaml' ;
7
3
import { compile } from 'json-schema-to-typescript' ;
8
- import { extract } from 'tar-stream' ;
9
4
import { fileSync } from 'tmp' ;
10
5
import { OTLP_COLLECTOR_CHART , VECTOR_HELM_CHART } from './utils/observability' ;
11
6
import { CONTOUR_CHART } from './utils/reverse-proxy' ;
@@ -17,33 +12,6 @@ async function generateJsonSchemaFromHelmValues(input: string) {
17
12
return await readFile ( jsonSchemaTempFile . name , 'utf-8' ) . then ( r => JSON . parse ( r ) ) ;
18
13
}
19
14
20
- function getFileFromTar ( tar : Readable , filename : string ) {
21
- return new Promise ( resolve => {
22
- const extractInstance = extract ( ) ;
23
-
24
- extractInstance . on ( 'entry' , function ( header , stream , next ) {
25
- if ( header . name === filename ) {
26
- let data = '' ;
27
- stream . on ( 'data' , chunk => ( data += chunk ) ) ;
28
- stream . on ( 'end' , ( ) => {
29
- resolve ( data ) ;
30
- } ) ;
31
- }
32
- stream . on ( 'end' , function ( ) {
33
- next ( ) ; // ready for next entry
34
- } ) ;
35
-
36
- stream . resume ( ) ; // just auto drain the stream
37
- } ) ;
38
-
39
- extractInstance . on ( 'finish' , function ( ) {
40
- // all entries read
41
- } ) ;
42
-
43
- tar . pipe ( extractInstance ) ;
44
- } ) ;
45
- }
46
-
47
15
async function generateOpenTelemetryCollectorTypes ( ) {
48
16
const jsonSchemaUrl = `https://raw.githubusercontent.com/open-telemetry/opentelemetry-helm-charts/opentelemetry-collector-${ OTLP_COLLECTOR_CHART . version } /charts/opentelemetry-collector/values.schema.json` ;
49
17
const jsonSchema = await fetch ( jsonSchemaUrl ) . then ( res => res . json ( ) ) ;
@@ -64,37 +32,8 @@ async function generateVectorDevTypes() {
64
32
}
65
33
66
34
async function generateContourTypes ( ) {
67
- let helmManifest = await fetch ( `${ CONTOUR_CHART . fetchOpts ! [ 'repo' ] } /index.yaml` , {
68
- redirect : 'follow' ,
69
- } )
70
- . then ( r => r . text ( ) )
71
- . then ( r => yaml . load ( r ) as any ) ;
72
-
73
- let relevantChart = helmManifest . entries [ CONTOUR_CHART [ 'chart' ] as string ] . find (
74
- entry => entry . version === CONTOUR_CHART . version ,
75
- ) ;
76
-
77
- if ( ! relevantChart ) {
78
- throw new Error (
79
- `Could not find chart ${ CONTOUR_CHART [ 'chart' ] } with version ${ CONTOUR_CHART . version } in the Helm repository!` ,
80
- ) ;
81
- }
82
-
83
- const url = relevantChart . urls . find ( ( url : string ) => url . endsWith ( '.tgz' ) ) ;
84
-
85
- if ( ! url ) {
86
- throw new Error (
87
- `Could not find a .tgz file in the Helm repository for chart ${ CONTOUR_CHART [ 'chart' ] } !` ,
88
- ) ;
89
- }
90
-
91
- const valuesFile = await fetch ( url )
92
- . then ( r => r . arrayBuffer ( ) )
93
- . then ( r => Buffer . from ( r ) )
94
- . then ( r => gunzipSync ( r ) )
95
- . then ( r => Readable . from ( r ) )
96
- . then ( r => getFileFromTar ( r , 'contour/values.yaml' ) )
97
- . then ( ( r : any ) => r . toString ( ) ) ;
35
+ const helmValuesFileUrl = `https://raw.githubusercontent.com/bitnami/charts/contour/${ CONTOUR_CHART . version } /bitnami/contour/values.yaml` ;
36
+ const valuesFile = await fetch ( helmValuesFileUrl ) . then ( r => r . text ( ) ) ;
98
37
99
38
const valuesTempFile = fileSync ( ) ;
100
39
await writeFile ( valuesTempFile . name , valuesFile ) ;
0 commit comments