Skip to content

Commit 2f9c40e

Browse files
authored
Support Update October (#46)
Addresses an issue with data collection, resolves incorrect component collection, and implements enhanced logging through data redaction. Additionally, the following updates have been included: dependency updates, and the introduction of Models for improved management.
1 parent c7c823f commit 2f9c40e

File tree

7 files changed

+74
-79
lines changed

7 files changed

+74
-79
lines changed

deno.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
},
2323
"imports": {
2424
"@cliffy/command": "jsr:@cliffy/command@1.0.0-rc.8",
25-
"@cloudydeno/kubernetes-apis": "jsr:@cloudydeno/kubernetes-apis@0.5.2",
26-
"@cloudydeno/kubernetes-client": "jsr:@cloudydeno/kubernetes-client@0.7.5",
25+
"@cloudydeno/kubernetes-apis": "jsr:@cloudydeno/kubernetes-apis@0.6.0",
26+
"@cloudydeno/kubernetes-client": "jsr:@cloudydeno/kubernetes-client@0.7.7",
2727
"@deno-lib/logger": "jsr:@deno-lib/logger@^1.1.9",
2828
"@deno-library/logger": "jsr:@deno-library/logger@^1.2.0",
29-
"@henrygd/semaphore": "jsr:@henrygd/semaphore@^0.0.2",
30-
"@std/yaml": "jsr:@std/yaml@1.0.9"
29+
"@henrygd/semaphore": "jsr:@henrygd/semaphore@^0.1.0",
30+
"@std/yaml": "jsr:@std/yaml@1.0.10"
3131
}
3232
}

deno.lock

Lines changed: 23 additions & 56 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/logic/codefresh.ts

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,6 @@
11
import { parse } from '@std/yaml';
22
import { logger } from '../utils/mod.ts';
3-
4-
interface CodefreshContext {
5-
name: string;
6-
token: string;
7-
type: string;
8-
url: string;
9-
}
10-
11-
interface CodefreshConfig {
12-
contexts: Record<string, CodefreshContext>;
13-
'current-context': string;
14-
}
15-
16-
interface CodefreshCredentials {
17-
headers: { Authorization: string };
18-
baseUrl: string;
19-
}
3+
import { CodefreshConfig, CodefreshCredentials } from '../models/mod.ts';
204

215
export class Codefresh {
226
constructor() {

src/logic/k8s.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ export class K8s {
168168
'jobs.batch': () => batchApi.namespace(namespace).getJobList(),
169169
'nodes': () => coreApi.getNodeList(),
170170
'pods': () => coreApi.namespace(namespace).getPodList(),
171+
'secrets': () => coreApi.namespace(namespace).getSecretList(),
171172
'serviceaccounts': () => coreApi.namespace(namespace).getServiceAccountList(),
172173
'services': () => coreApi.namespace(namespace).getServiceList(),
173174
'statefulsets.apps': () => appsApi.namespace(namespace).getStatefulSetList(),
@@ -178,8 +179,8 @@ export class K8s {
178179
'persistentvolumes': () => coreApi.getPersistentVolumeList({ labelSelector: 'io.codefresh.accountName' }),
179180
'storageclasses.storage.k8s.io': () => storageApi.getStorageClassList(),
180181
'products.codefresh.io': () => this.getCrd('products.codefresh.io', namespace),
181-
'promotionflows.codefresh.io': () => this.getCrd('products.codefresh.io', namespace),
182-
'promotionpolicies.codefresh.io': () => this.getCrd('promotionflows.codefresh.io', namespace),
182+
'promotionflows.codefresh.io': () => this.getCrd('promotionflows.codefresh.io', namespace),
183+
'promotionpolicies.codefresh.io': () => this.getCrd('promotionpolicies.codefresh.io', namespace),
183184
'promotiontemplates.codefresh.io': () => this.getCrd('promotiontemplates.codefresh.io', namespace),
184185
'restrictedgitsources.codefresh.io': () => this.getCrd('restrictedgitsources.codefresh.io', namespace),
185186
'analysisruns.argoproj.io': () => this.getCrd('analysisruns.argoproj.io', namespace),

src/models/codefreshConfig.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
interface CodefreshContext {
2+
name: string;
3+
token: string;
4+
type: string;
5+
url: string;
6+
}
7+
8+
export interface CodefreshConfig {
9+
contexts: Record<string, CodefreshContext>;
10+
'current-context': string;
11+
}
12+
13+
export interface CodefreshCredentials {
14+
headers: { Authorization: string };
15+
baseUrl: string;
16+
}

src/models/mod.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { CodefreshConfig, CodefreshCredentials } from './codefreshConfig.ts';
2+
3+
export type { CodefreshConfig, CodefreshCredentials };

src/utils/utils.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,30 @@ export class Utils {
6363

6464
const semaphore = getSemaphore(k8sType, 10);
6565

66+
if (k8sType == 'secrets') {
67+
console.log('Redacting secrets data');
68+
for (const secret of resources.items) {
69+
await semaphore.acquire();
70+
try {
71+
delete secret.metadata.managedFields;
72+
// prevent leaking sensitive data
73+
logger.info(`Redacting data for secret ${secret.metadata.name}`);
74+
if (
75+
secret.metadata.annotations &&
76+
secret.metadata.annotations['kubectl.kubernetes.io/last-applied-configuration']
77+
) {
78+
delete secret.metadata.annotations['kubectl.kubernetes.io/last-applied-configuration'];
79+
}
80+
secret.data = { 'REDACTED': 'Data is redacted by the support package' };
81+
82+
await this.writeYaml(secret, `${secret.metadata.name}_get`, `${dirPath}/${k8sType}`);
83+
} finally {
84+
semaphore.release();
85+
}
86+
}
87+
continue;
88+
}
89+
6690
if (k8sType == 'pods') {
6791
for (const pod of resources.items) {
6892
await semaphore.acquire();

0 commit comments

Comments
 (0)