Skip to content

Commit

Permalink
fix: introduce pulumiResourceNamePrefix parameter
Browse files Browse the repository at this point in the history
* feat: introduce `prefixPulumiResources`

* feat: introduce `prefixPulumiResources`

* feat: rename `prefixPulumiResources` to `pulumiResourceNamePrefix`
  • Loading branch information
adrians5j authored Dec 14, 2022
1 parent 380bb68 commit 9bd346b
Show file tree
Hide file tree
Showing 15 changed files with 97 additions and 12 deletions.
4 changes: 3 additions & 1 deletion apps/admin/webiny.application.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createAdminApp } from "@webiny/serverless-cms-aws";

export default createAdminApp();
export default createAdminApp({
pulumiResourceNamePrefix: "wby-"
});
4 changes: 3 additions & 1 deletion apps/api/webiny.application.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createApiApp } from "@webiny/serverless-cms-aws";

export default createApiApp();
export default createApiApp({
pulumiResourceNamePrefix: "wby-"
});
2 changes: 1 addition & 1 deletion apps/core/webiny.application.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { createCoreApp } from "@webiny/serverless-cms-aws";

export default createCoreApp({
elasticSearch: false
pulumiResourceNamePrefix: "wby-"
});
4 changes: 3 additions & 1 deletion apps/website/webiny.application.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createWebsiteApp } from "@webiny/serverless-cms-aws";

export default createWebsiteApp();
export default createWebsiteApp({
pulumiResourceNamePrefix: "wby-"
});
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createAdminApp } from "@webiny/serverless-cms-aws";

export default createAdminApp();
export default createAdminApp({
pulumiResourceNamePrefix: "wby-"
});
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createWebsiteApp } from "@webiny/serverless-cms-aws";

export default createWebsiteApp();
export default createWebsiteApp({
pulumiResourceNamePrefix: "wby-"
});
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { createApiApp } from "@webiny/serverless-cms-aws";

export default createApiApp({
elasticSearch: true
elasticSearch: true,
pulumiResourceNamePrefix: "wby-"
});
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { createCoreApp } from "@webiny/serverless-cms-aws";

export default createCoreApp({
elasticSearch: true
elasticSearch: true,
pulumiResourceNamePrefix: "wby-"
});
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createApiApp } from "@webiny/serverless-cms-aws";

export default createApiApp();
export default createApiApp({
pulumiResourceNamePrefix: "wby-"
});
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createCoreApp } from "@webiny/serverless-cms-aws";

export default createCoreApp();
export default createCoreApp({
pulumiResourceNamePrefix: "wby-"
});
7 changes: 6 additions & 1 deletion packages/pulumi-aws/src/apps/admin/createAdminPulumiApp.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { PulumiAppParamCallback } from "@webiny/pulumi";
import { PulumiAppParam, PulumiAppParamCallback } from "@webiny/pulumi";
import { createReactPulumiApp, CustomDomainParams } from "~/apps";

export type AdminPulumiApp = ReturnType<typeof createReactPulumiApp>;
Expand All @@ -12,6 +12,11 @@ export interface CreateAdminPulumiAppParams {
* or add additional ones into the mix.
*/
pulumi?: (app: AdminPulumiApp) => void | Promise<void>;

/**
* Prefixes names of all Pulumi cloud infrastructure resource with given prefix.
*/
pulumiResourceNamePrefix?: PulumiAppParam<string>;
}

export const createAdminPulumiApp = (projectAppParams: CreateAdminPulumiAppParams) => {
Expand Down
16 changes: 16 additions & 0 deletions packages/pulumi-aws/src/apps/api/createApiPulumiApp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ export interface CreateApiPulumiAppParams {
* or add additional ones into the mix.
*/
pulumi?: (app: ApiPulumiApp) => void | Promise<void>;

/**
* Prefixes names of all Pulumi cloud infrastructure resource with given prefix.
*/
pulumiResourceNamePrefix?: PulumiAppParam<string>;
}

export const createApiPulumiApp = (projectAppParams: CreateApiPulumiAppParams = {}) => {
Expand All @@ -39,6 +44,17 @@ export const createApiPulumiApp = (projectAppParams: CreateApiPulumiAppParams =
path: "apps/api",
config: projectAppParams,
program: async app => {
const pulumiResourceNamePrefix = app.getParam(
projectAppParams.pulumiResourceNamePrefix
);
if (pulumiResourceNamePrefix) {
app.onResource(resource => {
if (!resource.name.startsWith(pulumiResourceNamePrefix)) {
resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
}
});
}

// Overrides must be applied via a handler, registered at the very start of the program.
// By doing this, we're ensuring user's adjustments are not applied too late.
if (projectAppParams.pulumi) {
Expand Down
16 changes: 16 additions & 0 deletions packages/pulumi-aws/src/apps/core/createCorePulumiApp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ export interface CreateCorePulumiAppParams {
* or add additional ones into the mix.
*/
pulumi?: (app: CorePulumiApp) => void | Promise<void>;

/**
* Prefixes names of all Pulumi cloud infrastructure resource with given prefix.
*/
pulumiResourceNamePrefix?: PulumiAppParam<string>;
}

export interface CoreAppLegacyConfig {
Expand All @@ -50,6 +55,17 @@ export function createCorePulumiApp(projectAppParams: CreateCorePulumiAppParams
path: "apps/core",
config: projectAppParams,
program: async app => {
const pulumiResourceNamePrefix = app.getParam(
projectAppParams.pulumiResourceNamePrefix
);
if (pulumiResourceNamePrefix) {
app.onResource(resource => {
if (!resource.name.startsWith(pulumiResourceNamePrefix)) {
resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
}
});
}

// Overrides must be applied via a handler, registered at the very start of the program.
// By doing this, we're ensuring user's adjustments are not applied to late.
if (projectAppParams.pulumi) {
Expand Down
18 changes: 17 additions & 1 deletion packages/pulumi-aws/src/apps/react/createReactPulumiApp.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as aws from "@pulumi/aws";

import { createPulumiApp, PulumiAppParamCallback } from "@webiny/pulumi";
import { createPulumiApp, PulumiAppParam, PulumiAppParamCallback } from "@webiny/pulumi";
import { tagResources } from "~/utils";
import { createPrivateAppBucket } from "../createAppBucket";
import { applyCustomDomain, CustomDomainParams } from "../customDomain";
Expand All @@ -26,6 +26,11 @@ export interface CreateReactPulumiAppParams {
* or add additional ones into the mix.
*/
pulumi?: (app: ReactPulumiApp) => void | Promise<void>;

/**
* Prefixes names of all Pulumi cloud infrastructure resource with given prefix.
*/
pulumiResourceNamePrefix?: PulumiAppParam<string>;
}

export const createReactPulumiApp = (projectAppParams: CreateReactPulumiAppParams) => {
Expand All @@ -34,6 +39,17 @@ export const createReactPulumiApp = (projectAppParams: CreateReactPulumiAppParam
path: projectAppParams.folder,
config: projectAppParams,
program: async app => {
const pulumiResourceNamePrefix = app.getParam(
projectAppParams.pulumiResourceNamePrefix
);
if (pulumiResourceNamePrefix) {
app.onResource(resource => {
if (!resource.name.startsWith(pulumiResourceNamePrefix)) {
resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
}
});
}

const { name } = projectAppParams;

// Overrides must be applied via a handler, registered at the very start of the program.
Expand Down
16 changes: 16 additions & 0 deletions packages/pulumi-aws/src/apps/website/createWebsitePulumiApp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ export interface CreateWebsitePulumiAppParams {
* or add additional ones into the mix.
*/
pulumi?: (app: WebsitePulumiApp) => void | Promise<void>;

/**
* Prefixes names of all Pulumi cloud infrastructure resource with given prefix.
*/
pulumiResourceNamePrefix?: PulumiAppParam<string>;
}

export const createWebsitePulumiApp = (projectAppParams: CreateWebsitePulumiAppParams = {}) => {
Expand All @@ -41,6 +46,17 @@ export const createWebsitePulumiApp = (projectAppParams: CreateWebsitePulumiAppP
path: "apps/website",
config: projectAppParams,
program: async app => {
const pulumiResourceNamePrefix = app.getParam(
projectAppParams.pulumiResourceNamePrefix
);
if (pulumiResourceNamePrefix) {
app.onResource(resource => {
if (!resource.name.startsWith(pulumiResourceNamePrefix)) {
resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
}
});
}

// Overrides must be applied via a handler, registered at the very start of the program.
// By doing this, we're ensuring user's adjustments are not applied to late.
if (projectAppParams.pulumi) {
Expand Down

0 comments on commit 9bd346b

Please sign in to comment.