@drunk-pulumi/azure-components 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -2
- package/ResourceBuilder.d.ts +76 -24
- package/ResourceBuilder.js +144 -44
- package/aks/AzKubernetes.d.ts +17 -3
- package/aks/AzKubernetes.js +92 -41
- package/aks/ContainerRegistry.d.ts +4 -3
- package/aks/ContainerRegistry.js +22 -19
- package/apim/Apim.d.ts +51 -0
- package/apim/Apim.js +248 -0
- package/apim/ApimApi.d.ts +34 -0
- package/apim/ApimApi.js +193 -0
- package/apim/ApimApiSet.d.ts +27 -0
- package/apim/ApimApiSet.js +88 -0
- package/apim/ApimPolicyBuilder.d.ts +93 -0
- package/apim/ApimPolicyBuilder.js +294 -0
- package/apim/ApimProduct.d.ts +27 -0
- package/apim/ApimProduct.js +118 -0
- package/apim/index.d.ts +2 -0
- package/apim/index.js +19 -0
- package/apim/openAPI3Type.d.ts +85 -0
- package/apim/openAPI3Type.js +3 -0
- package/apim/openApiHelper.d.ts +1 -0
- package/apim/openApiHelper.js +36 -0
- package/app/SignalR.d.ts +3 -3
- package/app/SignalR.js +35 -20
- package/azAd/AppRegistration.d.ts +13 -7
- package/azAd/AppRegistration.js +48 -40
- package/azAd/AzRole.js +2 -2
- package/azAd/GroupRole.d.ts +7 -11
- package/azAd/GroupRole.js +7 -6
- package/azAd/RoleAssignment.d.ts +1 -1
- package/azAd/RoleAssignment.js +5 -5
- package/azAd/UserAssignedIdentity.d.ts +3 -0
- package/azAd/UserAssignedIdentity.js +23 -7
- package/azAd/helpers/index.d.ts +0 -2
- package/azAd/helpers/index.js +26 -21
- package/azAd/helpers/rolesBuiltIn.d.ts +6 -57
- package/azAd/helpers/rolesBuiltIn.js +25868 -25353
- package/azAd/helpers/rsRoleDefinition.d.ts +12 -6
- package/azAd/helpers/rsRoleDefinition.js +41 -29
- package/base/BaseComponent.d.ts +1 -15
- package/base/BaseComponent.js +3 -22
- package/base/BaseResourceComponent.d.ts +24 -17
- package/base/BaseResourceComponent.js +61 -45
- package/base/helpers.d.ts +0 -6
- package/base/helpers.js +1 -18
- package/common/RandomPassword.js +4 -4
- package/common/RandomString.d.ts +1 -1
- package/common/RandomString.js +3 -3
- package/common/RsGroup.js +2 -2
- package/database/AzSql.d.ts +5 -5
- package/database/AzSql.js +37 -24
- package/database/MySql.d.ts +1 -1
- package/database/MySql.js +45 -28
- package/database/Postgres.d.ts +2 -1
- package/database/Postgres.js +29 -17
- package/database/Redis.d.ts +25 -4
- package/database/Redis.js +88 -25
- package/helpers/autoTags.js +2 -1
- package/helpers/certHelpers.d.ts +20 -0
- package/helpers/certHelpers.js +85 -0
- package/helpers/rsHelpers.d.ts +19 -1
- package/helpers/rsHelpers.js +27 -4
- package/helpers/stackEnv.d.ts +1 -1
- package/helpers/stackEnv.js +1 -1
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/package.json +9 -6
- package/services/Automation.d.ts +3 -1
- package/services/Automation.js +8 -8
- package/services/ServiceBus.d.ts +3 -2
- package/services/ServiceBus.js +17 -19
- package/types.d.ts +44 -15
- package/vault/EncryptionKey.d.ts +1 -1
- package/vault/EncryptionKey.js +4 -4
- package/vault/KeyVault.d.ts +2 -2
- package/vault/KeyVault.js +4 -4
- package/vault/VaultSecret.d.ts +1 -1
- package/vault/VaultSecret.js +9 -9
- package/vault/VaultSecrets.d.ts +2 -4
- package/vault/VaultSecrets.js +4 -6
- package/vault/helpers.d.ts +17 -0
- package/vault/helpers.js +50 -2
- package/vm/DiskEncryptionSet.js +2 -2
- package/vm/VirtualMachine.d.ts +2 -1
- package/vm/VirtualMachine.js +37 -25
- package/vnet/Basion.d.ts +4 -3
- package/vnet/Basion.js +17 -4
- package/vnet/DnsZone.d.ts +1 -1
- package/vnet/DnsZone.js +2 -2
- package/vnet/IpAddresses.d.ts +6 -2
- package/vnet/IpAddresses.js +2 -2
- package/vnet/NetworkPeering.d.ts +1 -1
- package/vnet/NetworkPeering.js +1 -1
- package/vnet/PrivateDnsZone.d.ts +1 -1
- package/vnet/PrivateDnsZone.js +4 -4
- package/vnet/PrivateEndpoint.d.ts +7 -10
- package/vnet/PrivateEndpoint.js +11 -10
- package/vnet/RouteTable.d.ts +1 -1
- package/vnet/RouteTable.js +2 -2
- package/vnet/VirtualNetwork.d.ts +30 -43
- package/vnet/VirtualNetwork.js +77 -43
- package/vnet/VpnGateway.js +2 -2
package/README.md
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
A modular, reusable TypeScript library of Pulumi components for rapidly building and managing Azure infrastructure. This project provides high-level abstractions for common Azure resources, enabling you to compose complex cloud environments with minimal boilerplate.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
|
+
|
|
6
7
|
- **Composable Components:** Build infrastructure using reusable building blocks (e.g., Resource Groups, Key Vaults, VMs, Networking, Storage, Databases, etc.).
|
|
7
8
|
- **Opinionated Defaults:** Sensible defaults for security, tagging, and resource configuration.
|
|
8
9
|
- **Extensible:** Easily extend or customize components for your organization's needs.
|
|
@@ -10,6 +11,7 @@ A modular, reusable TypeScript library of Pulumi components for rapidly building
|
|
|
10
11
|
- **Azure Best Practices:** Implements patterns for identity, encryption, logging, and networking.
|
|
11
12
|
|
|
12
13
|
## Project Structure
|
|
14
|
+
|
|
13
15
|
```
|
|
14
16
|
src/
|
|
15
17
|
aks/ # Azure Kubernetes Service components
|
|
@@ -32,30 +34,49 @@ src/
|
|
|
32
34
|
## Getting Started
|
|
33
35
|
|
|
34
36
|
### Prerequisites
|
|
37
|
+
|
|
35
38
|
- [Node.js](https://nodejs.org/) (v16+ recommended)
|
|
36
39
|
- [Pulumi CLI](https://www.pulumi.com/docs/get-started/install/)
|
|
37
40
|
- Azure account with sufficient permissions
|
|
38
41
|
- [pnpm](https://pnpm.io/) (or npm/yarn)
|
|
39
42
|
|
|
40
43
|
### Installation
|
|
44
|
+
|
|
41
45
|
Clone the repository and install dependencies:
|
|
46
|
+
|
|
42
47
|
```bash
|
|
43
48
|
git clone <repo-url>
|
|
44
49
|
cd drunk-pulumi-azure-components
|
|
45
50
|
pnpm install
|
|
46
51
|
```
|
|
47
52
|
|
|
53
|
+
### Set Default Config
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
pulumi org set-default YOUR_ORG_NAME
|
|
57
|
+
|
|
58
|
+
pulumi config set azure-native:tenantId YOUR_AZ_TENANT_ID
|
|
59
|
+
pulumi config set azure-native:subscriptionId YOUR_AZ_SUBSCRIPTION_ID
|
|
60
|
+
pulumi config set azure-native:location YOUR_AZ_LOCATION
|
|
61
|
+
```
|
|
62
|
+
|
|
48
63
|
### Usage
|
|
64
|
+
|
|
49
65
|
You can use the components in your own Pulumi project or in the provided `pulumi-test/` directory for examples.
|
|
50
66
|
|
|
51
67
|
#### Example: Creating a Resource Group with Key Vault and Logging
|
|
68
|
+
|
|
52
69
|
```typescript
|
|
53
70
|
import { ResourceBuilder } from '../src/ResourceBuilder';
|
|
54
71
|
|
|
55
72
|
const builder = new ResourceBuilder('my-stack', {
|
|
56
73
|
groupRoles: { createWithName: 'my-rg-roles' },
|
|
57
|
-
vault: {
|
|
58
|
-
|
|
74
|
+
vault: {
|
|
75
|
+
/* vault config */
|
|
76
|
+
},
|
|
77
|
+
logs: {
|
|
78
|
+
/* logs config */
|
|
79
|
+
},
|
|
59
80
|
enableDefaultUAssignId: true,
|
|
60
81
|
});
|
|
61
82
|
|
|
@@ -65,16 +86,19 @@ export const outputs = builder.getOutputs();
|
|
|
65
86
|
See `pulumi-test/samples/` for more usage examples.
|
|
66
87
|
|
|
67
88
|
### Project Scripts
|
|
89
|
+
|
|
68
90
|
- `pnpm build` – Compile TypeScript sources
|
|
69
91
|
- `pnpm lint` – Run ESLint
|
|
70
92
|
- `pnpm test` – Run tests (if available)
|
|
71
93
|
|
|
72
94
|
### Directory Reference
|
|
95
|
+
|
|
73
96
|
- **src/**: All core component code
|
|
74
97
|
- **pulumi-test/**: Example Pulumi stacks and sample usage
|
|
75
98
|
- **.devcontainer/**: Development container setup for VS Code
|
|
76
99
|
|
|
77
100
|
## Component Overview
|
|
101
|
+
|
|
78
102
|
- **ResourceBuilder**: Main entry point for composing resources (resource group, roles, vault, logs, disk encryption, etc.)
|
|
79
103
|
- **azAd/**: Azure AD roles, group roles, user-assigned identities
|
|
80
104
|
- **vault/**: Key Vaults, encryption keys, secrets
|
|
@@ -87,6 +111,7 @@ See `pulumi-test/samples/` for more usage examples.
|
|
|
87
111
|
- **services/**: Automation, Search, Service Bus
|
|
88
112
|
|
|
89
113
|
## Contributing
|
|
114
|
+
|
|
90
115
|
1. Fork the repository
|
|
91
116
|
2. Create a new branch (`git checkout -b feature/my-feature`)
|
|
92
117
|
3. Make your changes
|
|
@@ -94,7 +119,9 @@ See `pulumi-test/samples/` for more usage examples.
|
|
|
94
119
|
5. Submit a pull request
|
|
95
120
|
|
|
96
121
|
## License
|
|
122
|
+
|
|
97
123
|
MIT License
|
|
98
124
|
|
|
99
125
|
## Support & Contact
|
|
126
|
+
|
|
100
127
|
For questions, issues, or feature requests, please open an issue on GitHub or contact the maintainer.
|
package/ResourceBuilder.d.ts
CHANGED
|
@@ -1,41 +1,93 @@
|
|
|
1
1
|
import * as pulumi from '@pulumi/pulumi';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { RsGroup, RsGroupArgs } from './common';
|
|
5
|
-
import { Logs, LogsArgs } from './logs';
|
|
6
|
-
import { KeyVault, KeyVaultArgs } from './vault';
|
|
2
|
+
import * as types from './types';
|
|
3
|
+
import { AppRegistration, AppRegistrationArgs, GroupRole, GroupRoleArgs, RoleAssignmentArgs, UserAssignedIdentity, UserAssignedIdentityArgs } from './azAd';
|
|
7
4
|
import { DiskEncryptionSet, DiskEncryptionSetArgs } from './vm';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
5
|
+
import { KeyVault, KeyVaultArgs } from './vault';
|
|
6
|
+
import { Logs, LogsArgs } from './logs';
|
|
7
|
+
import { RsGroup, RsGroupArgs } from './common';
|
|
8
|
+
import { Vnet, VnetArgs } from './vnet';
|
|
9
|
+
import { BaseComponent } from './base/BaseComponent';
|
|
13
10
|
export type ResourceBuilderOutputs = {
|
|
14
|
-
groupRoles?: GroupRoleOutputTypes;
|
|
11
|
+
groupRoles?: types.GroupRoleOutputTypes;
|
|
15
12
|
rsGroup: ReturnType<RsGroup['getOutputs']>;
|
|
16
13
|
vaultInfo?: ReturnType<KeyVault['getOutputs']>;
|
|
17
14
|
defaultUAssignedId?: ReturnType<UserAssignedIdentity['getOutputs']>;
|
|
15
|
+
defaultAppIdentity?: ReturnType<AppRegistration['getOutputs']>;
|
|
18
16
|
logs?: ReturnType<Logs['getOutputs']>;
|
|
19
17
|
diskEncryptionSet?: ReturnType<DiskEncryptionSet['getOutputs']>;
|
|
18
|
+
vnet?: ReturnType<Vnet['getOutputs']>;
|
|
20
19
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Arguments for composing a standard Azure resource group environment with optional common foundation resources.
|
|
22
|
+
*
|
|
23
|
+
* You always pass the base `RsGroupArgs` (minus common meta props removed via `Omit`).
|
|
24
|
+
* Each optional `*Create` property triggers creation of that resource. If both an existing instance reference
|
|
25
|
+
* (e.g. `groupRoles`) and a corresponding `*Create` block are provided, the existing instance takes precedence
|
|
26
|
+
* and the `*Create` block is ignored.
|
|
27
|
+
*/
|
|
28
|
+
export interface ResourceBuilderArgs extends Omit<RsGroupArgs, types.CommonProps> {
|
|
29
|
+
/**
|
|
30
|
+
* Pre-created group role outputs or the `GroupRole` component itself to reuse instead of creating new ones.
|
|
31
|
+
* When supplied, `groupRolesCreate` is ignored.
|
|
32
|
+
*/
|
|
33
|
+
groupRoles?: types.GroupRoleOutputTypes | GroupRole;
|
|
34
|
+
/**
|
|
35
|
+
* Definition to create a new set of Azure AD groups / roles (reader, contributor, etc.).
|
|
36
|
+
* Provide when you want the builder to provision standard role groups automatically.
|
|
37
|
+
*/
|
|
38
|
+
groupRolesCreate?: types.WithName & GroupRoleArgs;
|
|
39
|
+
vaultInfo?: types.ResourceInputs;
|
|
40
|
+
/**
|
|
41
|
+
* Configuration to create a Key Vault in the resource group. Adds linkage with created identities and group roles.
|
|
42
|
+
*/
|
|
43
|
+
vaultCreate?: types.WithName & Omit<KeyVaultArgs, types.CommonProps>;
|
|
44
|
+
/**
|
|
45
|
+
* Configuration to create a Log Analytics workspace (and related diagnostics) bound to the resource group.
|
|
46
|
+
*/
|
|
47
|
+
logsCreate?: types.WithName & Omit<LogsArgs, types.CommonProps>;
|
|
48
|
+
/**
|
|
49
|
+
* Configuration for provisioning a Disk Encryption Set (defaults encryptionType if omitted).
|
|
50
|
+
* Depends on Key Vault (if also created) and optionally the default user-assigned identity.
|
|
51
|
+
*/
|
|
52
|
+
diskEncryptionCreate?: types.WithName & Omit<DiskEncryptionSetArgs, types.CommonProps>;
|
|
53
|
+
/**
|
|
54
|
+
* Create a default User Assigned Managed Identity. `memberof` selects which generated group role (defaults to 'readOnly').
|
|
55
|
+
* If `groupRoles` / `groupRolesCreate` not provided, the identity will not have group memberships applied.
|
|
56
|
+
*/
|
|
57
|
+
defaultUAssignedIdCreate?: types.WithName & Omit<UserAssignedIdentityArgs, types.CommonProps | 'memberof'> & {
|
|
58
|
+
/** Which group role key to map the identity into (e.g. 'readOnly', 'contributor'). */
|
|
59
|
+
memberof?: types.GroupRoleTypes;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Create a default App Registration + Service Principal. `memberof` optionally assigns it a role group (defaults 'readOnly').
|
|
63
|
+
* Vault info (if created) is passed for secret references.
|
|
64
|
+
*/
|
|
65
|
+
defaultAppIdentityCreate?: types.WithName & Omit<AppRegistrationArgs, types.CommonProps | 'memberof'> & {
|
|
66
|
+
/** Which group role key to map the app into. */
|
|
67
|
+
memberof?: types.GroupRoleTypes;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Configuration to create a Virtual Network with sub-resources (subnets, NSGs, etc. per `VnetArgs`).
|
|
71
|
+
*/
|
|
72
|
+
vnetCreate?: types.WithName & Omit<VnetArgs, types.CommonProps>;
|
|
30
73
|
}
|
|
31
74
|
export declare class ResourceBuilder extends BaseComponent<ResourceBuilderArgs> {
|
|
32
75
|
readonly rsGroup: RsGroup;
|
|
33
|
-
readonly vaultInfo?:
|
|
34
|
-
readonly groupRoles?: GroupRoleOutputTypes;
|
|
76
|
+
readonly vaultInfo?: types.ResourceOutputs;
|
|
77
|
+
readonly groupRoles?: types.GroupRoleOutputTypes;
|
|
35
78
|
readonly defaultUAssignedId?: UserAssignedIdentity;
|
|
79
|
+
readonly defaultAppIdentity?: AppRegistration;
|
|
36
80
|
readonly logs?: Logs;
|
|
37
|
-
readonly diskEncryptionSet
|
|
81
|
+
private readonly diskEncryptionSet?;
|
|
82
|
+
private readonly vnet;
|
|
38
83
|
constructor(name: string, args: ResourceBuilderArgs, opts?: pulumi.ComponentResourceOptions);
|
|
39
84
|
getOutputs(): ResourceBuilderOutputs;
|
|
85
|
+
private createGroupRoles;
|
|
86
|
+
private createVault;
|
|
87
|
+
private createUserIdentity;
|
|
88
|
+
private createAppIdentity;
|
|
89
|
+
private createLogs;
|
|
90
|
+
private createDiskEncryptionSet;
|
|
91
|
+
private createVnet;
|
|
92
|
+
grant(props: Omit<RoleAssignmentArgs, 'scope'>): this;
|
|
40
93
|
}
|
|
41
|
-
export {};
|
package/ResourceBuilder.js
CHANGED
|
@@ -1,72 +1,172 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.ResourceBuilder = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
4
38
|
const azAd_1 = require("./azAd");
|
|
39
|
+
const vm_1 = require("./vm");
|
|
40
|
+
const vault_1 = require("./vault");
|
|
41
|
+
const logs_1 = require("./logs");
|
|
42
|
+
const common_1 = require("./common");
|
|
43
|
+
const vnet_1 = require("./vnet");
|
|
5
44
|
const BaseComponent_1 = require("./base/BaseComponent");
|
|
6
45
|
const helpers_1 = require("./base/helpers");
|
|
7
|
-
const
|
|
8
|
-
const logs_1 = require("./logs");
|
|
9
|
-
const vault_1 = require("./vault");
|
|
10
|
-
const vm_1 = require("./vm");
|
|
46
|
+
const helpers_2 = require("./helpers");
|
|
11
47
|
class ResourceBuilder extends BaseComponent_1.BaseComponent {
|
|
12
48
|
rsGroup;
|
|
13
49
|
vaultInfo;
|
|
14
50
|
groupRoles;
|
|
15
51
|
defaultUAssignedId;
|
|
52
|
+
defaultAppIdentity;
|
|
16
53
|
logs;
|
|
17
54
|
diskEncryptionSet;
|
|
55
|
+
vnet;
|
|
18
56
|
constructor(name, args, opts) {
|
|
19
57
|
super((0, helpers_1.getComponentResourceType)('ResourceBuilder'), name, args, opts);
|
|
20
|
-
const { groupRoles,
|
|
21
|
-
|
|
22
|
-
if ('createWithName' in groupRoles) {
|
|
23
|
-
this.groupRoles = new azAd_1.GroupRole(groupRoles.createWithName, {}, { dependsOn: opts?.dependsOn, parent: this }).getOutputs();
|
|
24
|
-
}
|
|
25
|
-
else if (groupRoles instanceof azAd_1.GroupRole)
|
|
26
|
-
this.groupRoles = groupRoles.getOutputs();
|
|
27
|
-
else
|
|
28
|
-
this.groupRoles = groupRoles;
|
|
29
|
-
}
|
|
58
|
+
const { groupRolesCreate, groupRoles, vaultCreate, defaultUAssignedIdCreate, logsCreate, diskEncryptionCreate, ...props } = args;
|
|
59
|
+
this.groupRoles = this.createGroupRoles();
|
|
30
60
|
this.rsGroup = new common_1.RsGroup(name, { ...props, groupRoles: this.groupRoles }, { dependsOn: opts?.dependsOn, parent: this });
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
memberof: this.groupRoles ? [this.groupRoles.readOnly] : undefined,
|
|
39
|
-
}, { dependsOn: this.vaultInfo ? [this.rsGroup, this.vaultInfo] : this.rsGroup, parent: this });
|
|
40
|
-
}
|
|
41
|
-
if (logs) {
|
|
42
|
-
this.logs = new logs_1.Logs(name, {
|
|
43
|
-
...logs,
|
|
44
|
-
rsGroup: this.rsGroup,
|
|
45
|
-
vaultInfo: this.vaultInfo,
|
|
46
|
-
groupRoles: this.groupRoles,
|
|
47
|
-
}, { dependsOn: this.vaultInfo ? [this.rsGroup, this.vaultInfo] : this.rsGroup, parent: this });
|
|
48
|
-
}
|
|
49
|
-
if (diskEncryption) {
|
|
50
|
-
this.diskEncryptionSet = new vm_1.DiskEncryptionSet(name, {
|
|
51
|
-
...diskEncryption,
|
|
52
|
-
rsGroup: this.rsGroup,
|
|
53
|
-
encryptionType: 'EncryptionAtRestWithPlatformAndCustomerKeys',
|
|
54
|
-
defaultUAssignedId: this.defaultUAssignedId,
|
|
55
|
-
vaultInfo: this.vaultInfo,
|
|
56
|
-
groupRoles: this.groupRoles,
|
|
57
|
-
}, { dependsOn: this.vaultInfo ? [this.rsGroup, this.vaultInfo] : this.rsGroup, parent: this });
|
|
58
|
-
}
|
|
61
|
+
this.vaultInfo = this.createVault();
|
|
62
|
+
this.defaultUAssignedId = this.createUserIdentity();
|
|
63
|
+
this.defaultAppIdentity = this.createAppIdentity();
|
|
64
|
+
this.logs = this.createLogs();
|
|
65
|
+
this.diskEncryptionSet = this.createDiskEncryptionSet();
|
|
66
|
+
this.vnet = this.createVnet();
|
|
67
|
+
this.registerOutputs();
|
|
59
68
|
}
|
|
60
69
|
getOutputs() {
|
|
61
70
|
return {
|
|
62
71
|
groupRoles: this.groupRoles,
|
|
63
72
|
rsGroup: this.rsGroup.getOutputs(),
|
|
64
|
-
vaultInfo: this.vaultInfo
|
|
73
|
+
vaultInfo: this.vaultInfo,
|
|
65
74
|
defaultUAssignedId: this.defaultUAssignedId?.getOutputs(),
|
|
75
|
+
defaultAppIdentity: this.defaultAppIdentity?.getOutputs(),
|
|
66
76
|
logs: this.logs?.getOutputs(),
|
|
67
77
|
diskEncryptionSet: this.diskEncryptionSet?.getOutputs(),
|
|
78
|
+
vnet: this.vnet?.getOutputs(),
|
|
68
79
|
};
|
|
69
80
|
}
|
|
81
|
+
createGroupRoles() {
|
|
82
|
+
const { groupRoles, groupRolesCreate } = this.args;
|
|
83
|
+
if (groupRoles) {
|
|
84
|
+
return groupRoles instanceof azAd_1.GroupRole ? groupRoles.getOutputs() : groupRoles;
|
|
85
|
+
}
|
|
86
|
+
if (groupRolesCreate) {
|
|
87
|
+
return new azAd_1.GroupRole(groupRolesCreate.name ?? this.name, groupRolesCreate, {
|
|
88
|
+
dependsOn: this.opts?.dependsOn,
|
|
89
|
+
parent: this,
|
|
90
|
+
}).getOutputs();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
createVault() {
|
|
94
|
+
const { vaultInfo, vaultCreate } = this.args;
|
|
95
|
+
if (vaultInfo)
|
|
96
|
+
return { resourceName: pulumi.output(vaultInfo.resourceName), id: pulumi.output(vaultInfo.id) };
|
|
97
|
+
if (!vaultCreate)
|
|
98
|
+
return undefined;
|
|
99
|
+
return new vault_1.KeyVault(vaultCreate.name ?? this.name, { ...vaultCreate, rsGroup: this.rsGroup, groupRoles: this.groupRoles }, {
|
|
100
|
+
dependsOn: this.rsGroup,
|
|
101
|
+
parent: this,
|
|
102
|
+
}).getOutputs();
|
|
103
|
+
}
|
|
104
|
+
createUserIdentity() {
|
|
105
|
+
const { defaultUAssignedIdCreate } = this.args;
|
|
106
|
+
if (!defaultUAssignedIdCreate)
|
|
107
|
+
return undefined;
|
|
108
|
+
return new azAd_1.UserAssignedIdentity(defaultUAssignedIdCreate.name ?? this.name, {
|
|
109
|
+
...defaultUAssignedIdCreate,
|
|
110
|
+
rsGroup: this.rsGroup,
|
|
111
|
+
vaultInfo: this.vaultInfo,
|
|
112
|
+
memberof: this.groupRoles ? [this.groupRoles[defaultUAssignedIdCreate.memberof ?? 'readOnly']] : undefined,
|
|
113
|
+
}, {
|
|
114
|
+
dependsOn: this.rsGroup,
|
|
115
|
+
parent: this,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
createAppIdentity() {
|
|
119
|
+
const { defaultAppIdentityCreate } = this.args;
|
|
120
|
+
if (!defaultAppIdentityCreate)
|
|
121
|
+
return undefined;
|
|
122
|
+
return new azAd_1.AppRegistration(defaultAppIdentityCreate.name ?? this.name, {
|
|
123
|
+
...defaultAppIdentityCreate,
|
|
124
|
+
memberof: this.groupRoles ? [this.groupRoles[defaultAppIdentityCreate.memberof ?? 'readOnly']] : undefined,
|
|
125
|
+
vaultInfo: this.vaultInfo,
|
|
126
|
+
}, {
|
|
127
|
+
dependsOn: this.rsGroup,
|
|
128
|
+
parent: this,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
createLogs() {
|
|
132
|
+
const { logsCreate } = this.args;
|
|
133
|
+
if (!logsCreate)
|
|
134
|
+
return undefined;
|
|
135
|
+
return new logs_1.Logs(logsCreate.name ?? this.name, {
|
|
136
|
+
...logsCreate,
|
|
137
|
+
rsGroup: this.rsGroup,
|
|
138
|
+
vaultInfo: this.vaultInfo,
|
|
139
|
+
groupRoles: this.groupRoles,
|
|
140
|
+
}, { dependsOn: this.rsGroup, parent: this });
|
|
141
|
+
}
|
|
142
|
+
createDiskEncryptionSet() {
|
|
143
|
+
const { diskEncryptionCreate } = this.args;
|
|
144
|
+
if (!diskEncryptionCreate)
|
|
145
|
+
return undefined;
|
|
146
|
+
return new vm_1.DiskEncryptionSet(diskEncryptionCreate.name ?? this.name, {
|
|
147
|
+
...diskEncryptionCreate,
|
|
148
|
+
encryptionType: diskEncryptionCreate.encryptionType ?? 'EncryptionAtRestWithPlatformAndCustomerKeys',
|
|
149
|
+
rsGroup: this.rsGroup,
|
|
150
|
+
defaultUAssignedId: this.defaultUAssignedId,
|
|
151
|
+
vaultInfo: this.vaultInfo,
|
|
152
|
+
groupRoles: this.groupRoles,
|
|
153
|
+
}, { dependsOn: this.rsGroup, parent: this });
|
|
154
|
+
}
|
|
155
|
+
createVnet() {
|
|
156
|
+
const { vnetCreate } = this.args;
|
|
157
|
+
if (!vnetCreate)
|
|
158
|
+
return undefined;
|
|
159
|
+
return new vnet_1.Vnet(vnetCreate.name ?? this.name, {
|
|
160
|
+
...vnetCreate,
|
|
161
|
+
rsGroup: this.rsGroup,
|
|
162
|
+
groupRoles: this.groupRoles,
|
|
163
|
+
vaultInfo: this.vaultInfo,
|
|
164
|
+
}, { dependsOn: this.rsGroup, parent: this });
|
|
165
|
+
}
|
|
166
|
+
grant(props) {
|
|
167
|
+
new azAd_1.RoleAssignment(`${this.name}-${props.roleName}`, { ...props, scope: helpers_2.rsHelpers.getRsGroupIdFrom(this.rsGroup) }, { dependsOn: this, deletedWith: this, parent: this });
|
|
168
|
+
return this;
|
|
169
|
+
}
|
|
70
170
|
}
|
|
71
171
|
exports.ResourceBuilder = ResourceBuilder;
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jlc291cmNlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBeUM7QUFHekMsaUNBU2dCO0FBQ2hCLDZCQUFnRTtBQUNoRSxtQ0FBaUQ7QUFDakQsaUNBQXdDO0FBQ3hDLHFDQUFnRDtBQUNoRCxpQ0FBd0M7QUFFeEMsd0RBQXFEO0FBQ3JELDRDQUEwRDtBQUMxRCx1Q0FBc0M7QUE2RXRDLE1BQWEsZUFBZ0IsU0FBUSw2QkFBa0M7SUFDckQsT0FBTyxDQUFVO0lBQ2pCLFNBQVMsQ0FBeUI7SUFDbEMsVUFBVSxDQUE4QjtJQUN4QyxrQkFBa0IsQ0FBd0I7SUFDMUMsa0JBQWtCLENBQW1CO0lBQ3JDLElBQUksQ0FBUTtJQUNYLGlCQUFpQixDQUFxQjtJQUN0QyxJQUFJLENBQW1CO0lBRXhDLFlBQVksSUFBWSxFQUFFLElBQXlCLEVBQUUsSUFBc0M7UUFDekYsS0FBSyxDQUFDLElBQUEsa0NBQXdCLEVBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sRUFDSixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLFdBQVcsRUFDWCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixHQUFHLEtBQUssRUFDVCxHQUFHLElBQUksQ0FBQztRQUVULElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQ3hCLElBQUksRUFDSixFQUFFLEdBQUcsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ3pDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElB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
|
package/aks/AzKubernetes.d.ts
CHANGED
|
@@ -3,11 +3,15 @@ import * as inputs from '@pulumi/azure-native/types/input';
|
|
|
3
3
|
import * as pulumi from '@pulumi/pulumi';
|
|
4
4
|
import { BaseResourceComponent, CommonBaseArgs } from '../base';
|
|
5
5
|
import * as types from '../types';
|
|
6
|
-
export interface AzKubernetesArgs extends CommonBaseArgs, types.WithEncryptionEnabler, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, Pick<ccs.ManagedClusterArgs, 'dnsPrefix' | 'supportPlan' | 'autoScalerProfile' | 'autoUpgradeProfile' | '
|
|
6
|
+
export interface AzKubernetesArgs extends CommonBaseArgs, types.WithEncryptionEnabler, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, types.WithDiskEncryptSet, Partial<Pick<ccs.ManagedClusterArgs, 'dnsPrefix' | 'supportPlan' | 'autoScalerProfile' | 'autoUpgradeProfile' | 'storageProfile'>> {
|
|
7
7
|
sku: ccs.ManagedClusterSKUTier;
|
|
8
|
+
nodeResourceGroup?: pulumi.Input<string>;
|
|
9
|
+
namespaces?: Record<string, ccs.NamespaceArgs['properties']>;
|
|
8
10
|
agentPoolProfiles: pulumi.Input<inputs.containerservice.ManagedClusterAgentPoolProfileArgs & {
|
|
9
11
|
vmSize: pulumi.Input<string>;
|
|
10
12
|
vnetSubnetID: pulumi.Input<string>;
|
|
13
|
+
enableEncryptionAtHost: pulumi.Input<boolean>;
|
|
14
|
+
osDiskSizeGB: pulumi.Input<number>;
|
|
11
15
|
}>[];
|
|
12
16
|
attachToAcr?: types.ResourceInputs;
|
|
13
17
|
features: {
|
|
@@ -15,7 +19,6 @@ export interface AzKubernetesArgs extends CommonBaseArgs, types.WithEncryptionEn
|
|
|
15
19
|
enablePrivateClusterPublicFQDN?: boolean;
|
|
16
20
|
enableVerticalPodAutoscaler?: boolean;
|
|
17
21
|
/** KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. */
|
|
18
|
-
enableKeda?: boolean;
|
|
19
22
|
enableWorkloadIdentity?: boolean;
|
|
20
23
|
enablePodIdentity?: boolean;
|
|
21
24
|
};
|
|
@@ -40,16 +43,27 @@ export interface AzKubernetesArgs extends CommonBaseArgs, types.WithEncryptionEn
|
|
|
40
43
|
export declare class AzKubernetes extends BaseResourceComponent<AzKubernetesArgs> {
|
|
41
44
|
readonly id: pulumi.Output<string>;
|
|
42
45
|
readonly resourceName: pulumi.Output<string>;
|
|
46
|
+
readonly namespaces: Record<string, types.ResourceOutputs>;
|
|
47
|
+
readonly privateDnsZone: types.ResourceOutputs | undefined;
|
|
43
48
|
constructor(name: string, args: AzKubernetesArgs, opts?: pulumi.ComponentResourceOptions);
|
|
44
49
|
getOutputs(): {
|
|
45
50
|
id: pulumi.Output<string>;
|
|
46
51
|
resourceName: pulumi.Output<string>;
|
|
52
|
+
namespaces: Record<string, {
|
|
53
|
+
resourceName: pulumi.Output<string>;
|
|
54
|
+
id: pulumi.Output<string>;
|
|
55
|
+
}>;
|
|
56
|
+
privateDnsZone: {
|
|
57
|
+
resourceName: pulumi.Output<string>;
|
|
58
|
+
id: pulumi.Output<string>;
|
|
59
|
+
} | undefined;
|
|
47
60
|
};
|
|
48
61
|
private createIdentity;
|
|
49
62
|
private createUserNameAndSshKeys;
|
|
50
63
|
private createDiskEncryptionSet;
|
|
51
64
|
private createCluster;
|
|
65
|
+
private createNameSpaces;
|
|
52
66
|
private createMaintenance;
|
|
53
67
|
private assignPermission;
|
|
54
|
-
private
|
|
68
|
+
private getPrivateDNSZone;
|
|
55
69
|
}
|