|
1 |
| -import { logger, FieldRef, v1 } from "@crossplane-js/sdk" |
2 |
| -import type { CrossplaneDesiredResources, CrossplaneObservedResources } from "@crossplane-js/sdk" |
| 1 | +import { |
| 2 | + logger, |
| 3 | + // FieldRef, |
| 4 | + v1, |
| 5 | +} from '@crossplane-js/sdk' |
| 6 | +import type { |
| 7 | + CrossplaneDesiredResources, |
| 8 | + // CrossplaneObservedResources |
| 9 | +} from '@crossplane-js/sdk' |
3 | 10 |
|
4 |
| -import type { SimpleConfigMap } from "@/models/test.crossplane.io/v1beta1" |
| 11 | +import type { SimpleConfigMap } from '../../models/test.crossplane.io/v1beta1' |
5 | 12 |
|
6 |
| -export default function(composite: SimpleConfigMap, _resources: CrossplaneObservedResources): CrossplaneDesiredResources { |
7 |
| - logger.info("Composition function started") |
| 13 | +export default function ( |
| 14 | + composite: SimpleConfigMap |
| 15 | + // resources: CrossplaneObservedResources |
| 16 | +): CrossplaneDesiredResources { |
| 17 | + logger.info('SimpleConfigMap composition function started') |
| 18 | + logger.info(`composite:${JSON.stringify(composite)}`) |
8 | 19 |
|
9 | 20 | const namespace = composite.getNamespace()
|
10 | 21 | const isReady = composite.isReady()
|
11 | 22 |
|
12 |
| - logger.info(`Ready: ${isReady}`) |
| 23 | + logger.info(`Namespace: ${namespace}, Ready: ${isReady}`) |
13 | 24 | logger.info(composite)
|
14 |
| - |
15 |
| - const data = composite.spec.data; |
16 |
| - logger.info({ data }, "Input data") |
17 |
| - |
18 |
| - const uppercaseData: Record<string, string> = {}; |
19 |
| - for (const key in data) { |
20 |
| - uppercaseData[key.toUpperCase()] = data[key].toUpperCase(); |
21 |
| - } |
22 |
| - |
| 25 | + |
| 26 | + // Transform data to uppercase for testing (same as original test logic) |
| 27 | + const transformedData: Record<string, string> = {} |
| 28 | + Object.entries(composite.spec.data).forEach(([key, value]) => { |
| 29 | + transformedData[key.toUpperCase()] = value.toUpperCase() |
| 30 | + }) |
| 31 | + |
23 | 32 | const testConfigMap = new v1.ConfigMap({
|
24 | 33 | metadata: {
|
25 |
| - name: "generated-configmap", |
26 |
| - namespace: namespace, |
27 |
| - labels: { |
28 |
| - example: "true" |
29 |
| - }, |
30 |
| - }, |
31 |
| - data: { |
32 |
| - ...uppercaseData, |
33 |
| - // hello: new FieldRef<string>(composite, "$.status.conditions[?(@.type=='Ready')].status", ""), |
| 34 | + name: 'generated-configmap', |
| 35 | + namespace: namespace || 'test-xfuncjs', |
34 | 36 | },
|
| 37 | + data: transformedData, |
35 | 38 | })
|
36 | 39 |
|
37 |
| - const desired = { |
| 40 | + const desired: CrossplaneDesiredResources = { |
38 | 41 | resources: {
|
39 | 42 | configmap: {
|
40 |
| - resource: { |
41 |
| - apiVersion: "kubernetes.crossplane.io/v1alpha1", |
42 |
| - kind: "Object", |
43 |
| - metadata: { |
44 |
| - // name: `${composite.getName()}-configmap`, |
45 |
| - name: `generated-configmap`, |
46 |
| - annotations: { |
47 |
| - "uptest.upbound.io/timeout": "60" |
48 |
| - } |
49 |
| - }, |
50 |
| - spec: { |
51 |
| - forProvider: { |
52 |
| - manifest: testConfigMap, |
53 |
| - }, |
54 |
| - providerConfigRef: { |
55 |
| - // name: "in-cluster", |
56 |
| - name: "default", |
57 |
| - }, |
58 |
| - }, |
59 |
| - }, |
| 43 | + resource: testConfigMap, |
| 44 | + ready: true, |
60 | 45 | },
|
61 | 46 | },
|
62 | 47 | }
|
63 |
| - |
64 |
| - logger.info("Composition function completed") |
65 |
| - logger.debug({ desired }, "Generated output") |
66 |
| - |
67 |
| - return desired; |
| 48 | + |
| 49 | + logger.info('SimpleConfigMap composition function completed') |
| 50 | + logger.debug({ desired }, 'Generated output') |
| 51 | + |
| 52 | + return desired |
68 | 53 | }
|
0 commit comments