Files
oam/examples/pulumi/multi-part cloud-init/index.ts
2024-09-28 18:46:58 +02:00

54 lines
1.9 KiB
TypeScript

import * as cloudinit from "@pulumi/cloudinit";
import * as fs from 'fs';
import * as yaml from 'yaml';
export const userData = new cloudinit.Config(
"userData",
{
gzip: false,
base64Encode: false,
parts: [
{
contentType: "text/cloud-config",
content: fs.readFileSync("../../cloud-init/aws.ssm.yaml", "utf8"),
filename: "cloud-config.ssm.yml",
},
{
contentType: "text/cloud-config",
content: fs.readFileSync("../../cloud-init/docker.yum.yaml", "utf8"),
filename: "cloud-config.docker.yml",
mergeType: "dict(recurse_array,no_replace)+list(append)",
},
{
contentType: "text/cloud-config",
content: yaml.stringify({
write_files: [{
path: "/etc/cron.daily/security-updates",
permissions: "0755",
content: [
"#!/bin/bash",
"dnf -y upgrade --security --nobest",
].join("\n"),
defer: true,
}],
}),
filename: "cloud-config.security-updates.yml",
mergeType: "dict(recurse_array,no_replace)+list(append)",
},
{
contentType: "text/cloud-config",
content: yaml.stringify({
package_upgrade: false,
packages: [ "postgresql" ],
runcmd: [
"systemctl daemon-reload",
"systemctl enable --now 'postgres'",
]
}),
filename: "cloud-config.postgres.yml",
mergeType: "dict(allow_delete,no_replace)+list(append)",
},
],
},
);