Skip to content

Commit eb47501

Browse files
authored
Merge pull request #43 from cloudgraphdev/feature/CG-1270-use-nodeRecorceGroup-to-get-resources
feat(aksManagedCluster): CG-1270 add VMSS connection
2 parents 7e95105 + 6c2268b commit eb47501

File tree

5 files changed

+36
-3
lines changed

5 files changed

+36
-3
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ CloudGraph needs read permissions in order to ingest your data. To keep things e
4242
| adIdentitySecurityDefaultsEnforcementPolicy | |
4343
| adServicePrincipal | adApplication, authRoleAssignment |
4444
| adUser | adApplication, authRoleAssignment |
45-
| aksManagedCluster | resourceGroup |
45+
| aksManagedCluster | resourceGroup, virtualMachineScaleSet |
4646
| appInsights | resourceGroup |
4747
| appServiceEnvironment | resourceGroup, virtualNetwork |
4848
| appServicePlan | resourceGroup, appServiceWebApp |
@@ -117,7 +117,7 @@ CloudGraph needs read permissions in order to ingest your data. To keep things e
117117
| synapseWorkspaces | resourceGroup, synapseBigDataPools, synapseSqlPools |
118118
| trafficManager | resourceGroup |
119119
| virtualMachine | disk, networkInterface, resourceGroup, virtualNetwork, virtualMachineScaleSet |
120-
| virtualMachineScaleSet | resourceGroup, virtualMachine |
120+
| virtualMachineScaleSet | resourceGroup, virtualMachine, aksManagedCluster |
121121
| virtualNetwork | appServiceEnvironment,networkInterface, resourceGroup virtualMachine |
122122

123123
## Development

src/services/aksManagedCluster/connections.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { isEmpty } from 'lodash'
44
import services from '../../enums/services'
55
import { caseInsensitiveEqual } from '../../utils'
66
import { RawAzureResourceGroup } from '../resourceGroup/data'
7+
import { RawAzureVirtualMachineScaleSet } from '../virtualMachineScaleSet/data'
78
import { RawAzureAksManagedCluster } from './data'
89

910
export default ({
@@ -18,7 +19,7 @@ export default ({
1819
[property: string]: ServiceConnection[]
1920
} => {
2021
const connections: ServiceConnection[] = []
21-
const { id, resourceGroupId: rgName } = service
22+
const { id, resourceGroupId: rgName, nodeResourceGroup: nodeRgName } = service
2223

2324
/**
2425
* Find resource group related to this kubernetes environment
@@ -47,6 +48,33 @@ export default ({
4748
}
4849
}
4950

51+
/**
52+
* Find VMSS related to this kubernetes environment
53+
*/
54+
const vmssList: {
55+
name: string
56+
data: { [property: string]: RawAzureVirtualMachineScaleSet[] }
57+
} = data.find(({ name }) => name === services.virtualMachineScaleSet)
58+
59+
if (vmssList?.data?.[region]) {
60+
const vmssInRegion: RawAzureVirtualMachineScaleSet[] = vmssList.data[
61+
region
62+
].filter(({resourceGroupId: vmssRgName}: RawAzureVirtualMachineScaleSet) =>
63+
caseInsensitiveEqual(vmssRgName, nodeRgName)
64+
)
65+
66+
if (!isEmpty(vmssInRegion)) {
67+
for (const vmss of vmssInRegion) {
68+
connections.push({
69+
id: vmss.id,
70+
resourceType: services.virtualMachineScaleSet,
71+
relation: 'child',
72+
field: 'virtualMachineScaleSets',
73+
})
74+
}
75+
}
76+
}
77+
5078
const kResult = {
5179
[id]: connections,
5280
}

src/services/aksManagedCluster/schema.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,4 +193,5 @@ type azureAksManagedCluster implements azureResource
193193
skuName: String @search(by: [hash, regexp])
194194
skuTier: String @search(by: [hash, regexp])
195195
resourceGroup: [azureResourceGroup] @hasInverse(field: aksManagedClusters)
196+
virtualMachineScaleSets: [azureVirtualMachineScaleSet] @hasInverse(field: aksManagedClusters)
196197
}

src/services/virtualMachineScaleSet/schema.graphql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,4 +313,6 @@ type azureVirtualMachineScaleSet implements azureResource
313313
@hasInverse(field: virtualMachineScaleSets)
314314
virtualMachines: [azureVirtualMachine]
315315
@hasInverse(field: virtualMachineScaleSets)
316+
aksManagedClusters: [azureAksManagedCluster]
317+
@hasInverse(field: virtualMachineScaleSets)
316318
}

src/types/generated.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ export type AzureAksManagedCluster = AzureResource & {
342342
servicePrincipalProfileClientId?: Maybe<Scalars['String']>;
343343
skuName?: Maybe<Scalars['String']>;
344344
skuTier?: Maybe<Scalars['String']>;
345+
virtualMachineScaleSets?: Maybe<Array<Maybe<AzureVirtualMachineScaleSet>>>;
345346
};
346347

347348
export type AzureAksManagedClusterAadProfile = {
@@ -5294,6 +5295,7 @@ export type AzureVirtualMachinePlan = {
52945295
};
52955296

52965297
export type AzureVirtualMachineScaleSet = AzureResource & {
5298+
aksManagedClusters?: Maybe<Array<Maybe<AzureAksManagedCluster>>>;
52975299
doNotRunExtensionsOnOverprovisionedVMs?: Maybe<Scalars['Boolean']>;
52985300
overprovision?: Maybe<Scalars['Boolean']>;
52995301
platformFaultDomainCount?: Maybe<Scalars['Int']>;

0 commit comments

Comments
 (0)