forked from pulumi/examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add YAML examples * Add cue examples
- Loading branch information
Showing
39 changed files
with
1,158 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
name: cue | ||
runtime: | ||
name: yaml | ||
options: | ||
compiler: cue export | ||
description: CUE Example |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package eks | ||
|
||
#EksCluster: { | ||
type: "eks:Cluster" | ||
properties: { | ||
instanceType: *"t2.medium" | "t3.medium" | ||
desiredCapacity: int | *2 | ||
minSize: int | *1 | ||
maxSize: int | *2 | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
module: "examples.pulumi.com/yaml-eks" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package main | ||
|
||
import "examples.pulumi.com/yaml-eks/aws:eks" | ||
|
||
resources: { | ||
rawkode: eks.#EksCluster | ||
stack72: eks.#EksCluster & { | ||
properties: { | ||
instanceType: "t2.medium" | ||
desiredCapacity: 4 | ||
maxSize: 8 | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
name: aws-eks | ||
runtime: yaml | ||
description: An EKS cluster | ||
variables: | ||
vpcId: | ||
Fn::Invoke: | ||
Function: aws:ec2:getVpc | ||
Arguments: | ||
default: true | ||
Return: id | ||
subnetIds: | ||
Fn::Invoke: | ||
Function: aws:ec2:getSubnetIds | ||
Arguments: | ||
vpcId: ${vpcId} | ||
Return: ids | ||
resources: | ||
cluster: | ||
type: eks:Cluster | ||
properties: | ||
vpcId: ${vpcId} | ||
subnetIds: ${subnetIds} | ||
instanceType: "t2.medium" | ||
desiredCapacity: 2 | ||
minSize: 1 | ||
maxSize: 2 | ||
outputs: | ||
kubeconfig: ${cluster.kubeconfig} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
|
||
# Amazon EKS Cluster | ||
|
||
This example deploys an EKS Kubernetes cluster inside the default AWS VPC. | ||
|
||
## Deploying the App | ||
|
||
To deploy your infrastructure, follow the below steps. | ||
|
||
## Prerequisites | ||
|
||
1. [Install Pulumi](https://www.pulumi.com/docs/get-started/install/) | ||
1. [Configure Pulumi for AWS](https://www.pulumi.com/docs/intro/cloud-providers/aws/setup/) | ||
|
||
## Deploying and running the program | ||
|
||
1. Create a new stack: | ||
|
||
``` | ||
$ pulumi stack init dev | ||
``` | ||
|
||
1. Set the AWS region: | ||
|
||
``` | ||
$ pulumi config set aws:region us-east-2 | ||
``` | ||
|
||
1. Run `pulumi up` to preview and deploy changes: | ||
|
||
``` | ||
$ pulumi up | ||
Previewing changes: | ||
... | ||
Performing changes: | ||
... | ||
Resources: | ||
+ 28 created | ||
Duration: 10m0s | ||
``` | ||
|
||
1. Check the deployed kubeconfig: | ||
|
||
``` | ||
$ pulumi stack output kubeconfig | ||
{"apiVersion":"v1","clusters":[{"cluster":{"certificate-authority-data":"LS0tLS1CRUdJTiBDR... | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
name: aws-native-static-website | ||
runtime: yaml | ||
description: A static website hosted on AWS S3 | ||
resources: | ||
site-bucket: | ||
type: aws-native:s3:Bucket | ||
properties: | ||
websiteConfiguration: | ||
indexDocument: index.html | ||
index.html: | ||
type: aws:s3:BucketObject | ||
properties: | ||
bucket: ${site-bucket} | ||
source: | ||
Fn::FileAsset: ./www/index.html | ||
acl: public-read | ||
contentType: text/html | ||
favicon.png: | ||
type: aws:s3:BucketObject | ||
properties: | ||
bucket: ${site-bucket} | ||
source: | ||
Fn::FileAsset: ./www/favicon.png | ||
acl: public-read | ||
contentType: image/png | ||
bucketPolicy: | ||
type: aws:s3:BucketPolicy | ||
properties: | ||
bucket: ${site-bucket} | ||
policy: | | ||
{ | ||
"Version": "2012-10-17", | ||
"Statement": [ | ||
{ | ||
"Effect": "Allow", | ||
"Principal": "*", | ||
"Action": ["s3:GetObject"], | ||
"Resource": ["${site-bucket.arn}/*"] | ||
} | ||
] | ||
} | ||
outputs: | ||
bucketName: ${site-bucket.bucketName} | ||
websiteUrl: ${site-bucket.websiteURL} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
[![Deploy](https://get.pulumi.com/new/button.svg)](https://app.pulumi.com/new?template=https://github.com/pulumi/examples/blob/master/aws-native-ts-s3-folder/README.md) | ||
|
||
# Host a Static Website on Amazon S3 with the AWS Native Provider | ||
|
||
A static website that uses [S3's website support](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). | ||
For a detailed walkthrough of this example, see the tutorial [Static Website on AWS S3](https://www.pulumi.com/docs/tutorials/aws/s3-website/). | ||
|
||
Note: Some resources are not yet supported by the Native AWS provider, so we are using both the Native | ||
and Classic provider in this example. The resources will be updated to use native resources as they are | ||
available in AWS's Cloud Control API. | ||
|
||
## Deploying and running the program | ||
|
||
Note: some values in this example will be different from run to run. These values are indicated | ||
with `***`. | ||
|
||
1. Install required plugins: | ||
|
||
```bash | ||
$ pulumi plugin install resource aws 4.37.3 | ||
$ pulumi plugin install resource aws-native 0.11.0 | ||
``` | ||
|
||
1. Create a new stack: | ||
|
||
```bash | ||
$ pulumi stack init dev | ||
``` | ||
|
||
1. Set the AWS region: | ||
|
||
Either using an environment variable | ||
```bash | ||
$ export AWS_REGION=us-west-2 | ||
``` | ||
|
||
Or with the stack config | ||
```bash | ||
$ pulumi config set aws:region us-west-2 | ||
$ pulumi config set aws-native:region us-west-2 | ||
``` | ||
|
||
1. Run `pulumi up` to preview and deploy changes. After the preview is shown you will be | ||
prompted if you want to continue or not. | ||
|
||
```bash | ||
$ pulumi up | ||
Previewing update (dev) | ||
... | ||
|
||
Updating (dev) | ||
|
||
View Live: https://app.pulumi.com/***/aws-native-ts-s3-folder/dev/updates/1 | ||
|
||
Type Name Status | ||
+ pulumi:pulumi:Stack aws-native-ts-s3-folder-dev created | ||
+ ├─ aws-native:s3:Bucket s3-website-bucket created | ||
+ ├─ aws:s3:BucketPolicy bucketPolicy created | ||
+ ├─ aws:s3:BucketObject index.html created | ||
+ └─ aws:s3:BucketObject favicon.png created | ||
|
||
Outputs: | ||
bucketName: "***" | ||
websiteUrl: "http:https://***.s3-website-us-west-2.amazonaws.com" | ||
|
||
Resources: | ||
+ 5 created | ||
|
||
Duration: *** | ||
``` | ||
|
||
1. To see the resources that were created, run `pulumi stack output`: | ||
|
||
```bash | ||
$ pulumi stack output | ||
Current stack outputs (2): | ||
OUTPUT VALUE | ||
bucketName *** | ||
websiteUrl http:https://***.s3-website-us-west-2.amazonaws.com | ||
``` | ||
|
||
1. To see that the S3 objects exist, you can either use the AWS Console or the AWS CLI: | ||
|
||
```bash | ||
$ aws s3 ls $(pulumi stack output bucketName) | ||
2021-09-30 15:27:58 13731 favicon.png | ||
2021-09-30 15:27:58 198 index.html | ||
``` | ||
|
||
1. Open the site URL in a browser to see both the rendered HTML and the favicon: | ||
|
||
```bash | ||
$ pulumi stack output websiteUrl | ||
***.s3-website-us-west-2.amazonaws.com | ||
``` | ||
|
||
![Hello S3 example](https://user-images.githubusercontent.com/274700/116912066-9384e300-abfc-11eb-8130-dbcff512a9de.png) | ||
|
||
1. To clean up resources, run `pulumi destroy` and answer the confirmation question at the prompt. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<html> | ||
|
||
<head> | ||
<meta charset="UTF-8"> | ||
<title>Hello, Pulumi!</title> | ||
<link href="favicon.png" rel="icon" type="image/png" /> | ||
</head> | ||
|
||
<body> | ||
<h1>Hello, S3!</h1> | ||
<p>Made with ❤️ with <a href="https://pulumi.com">Pulumi</a></p> | ||
<p>This file is served from Amazon S3.</p> | ||
</body> | ||
|
||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
name: azure-app-service | ||
runtime: yaml | ||
description: A static website hosted on AWS S3 | ||
configuration: | ||
sqlAdmin: | ||
type: String | ||
default: pulumi | ||
variables: | ||
blobAccessToken: | ||
Fn::Invoke: | ||
Function: azure-native:storage:listStorageAccountServiceSAS | ||
Arguments: | ||
accountName: ${sa.name} | ||
protocols: https | ||
sharedAccessStartTime: '2022-01-01' | ||
sharedAccessExpiryTime: '2030-01-01' | ||
resource: c | ||
resourceGroupName: ${appservicegroup.name} | ||
permissions: r | ||
canonicalizedResource: /blob/${sa.name}/${container.name} | ||
contentType: application/json | ||
cacheControl: max-age=5 | ||
contentDisposition: inline | ||
contentEncoding: deflate | ||
Return: serviceSasToken | ||
resources: | ||
appservicegroup: | ||
type: azure-native:resources:ResourceGroup | ||
sa: | ||
type: azure-native:storage:StorageAccount | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
kind: 'StorageV2' | ||
sku: { name: 'Standard_LRS' } | ||
appserviceplan: | ||
type: azure-native:web:AppServicePlan | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
kind: App | ||
sku: | ||
name: B1 | ||
tier: Basic | ||
container: | ||
type: azure-native:storage:BlobContainer | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
accountName: ${sa.name} | ||
publicAccess: None | ||
blob: | ||
type: azure-native:storage:Blob | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
accountName: ${sa.name} | ||
containerName: ${container.name} | ||
type: 'Block' | ||
source: | ||
Fn::FileArchive: ./www | ||
appInsights: | ||
type: azure-native:insights:Component | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
applicationType: web | ||
kind: web | ||
sqlPassword: | ||
type: random:RandomPassword | ||
properties: | ||
length: 16 | ||
special: true | ||
sqlServer: | ||
type: azure-native:sql:Server | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
administratorLogin: ${sqlAdmin} | ||
administratorLoginPassword: ${sqlPassword.result} | ||
version: '12.0' | ||
db: | ||
type: azure-native:sql:Database | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
serverName: ${sqlServer.name} | ||
sku: { name: 'S0' } | ||
|
||
app: | ||
type: azure-native:web:WebApp | ||
properties: | ||
resourceGroupName: ${appservicegroup.name} | ||
serverFarmId: ${appserviceplan} | ||
siteConfig: | ||
appSettings: | ||
- name: WEBSITE_RUN_FROM_PACKAGE | ||
value: https://${sa.name}.blob.core.windows.net/${container.name}/${blob.name}?${blobAccessToken} | ||
- name: APPINSIGHTS_INSTRUMENTATIONKEY | ||
value: ${appInsights.instrumentationKey} | ||
- name: APPLICATIONINSIGHTS_CONNECTION_STRING | ||
value: InstrumentationKey=${appInsights.instrumentationKey} | ||
- name: ApplicationInsightsAgent_EXTENSION_VERSION | ||
value: ~2 | ||
connectionStrings: | ||
- name: db | ||
type: SQLAzure | ||
connectionString: Server= tcp:${sqlServer.name}.database.windows.net;initial catalog=${db.name};userID=${sqlAdmin};password=${sqlPassword.result};Min Pool Size=0;Max Pool Size=30;Persist Security Info=true; | ||
outputs: | ||
endpoint: ${app.defaultHostName} |
Oops, something went wrong.