Skip to content

Commit dd8831b

Browse files
committed
feat: codify the infra
1 parent 2a45f8c commit dd8831b

12 files changed

+581
-0
lines changed

infra/.gitignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
**/.terraform/*
3+
*.tfstate
4+
*.tfstate.*
5+
crash.log
6+
crash.*.log
7+
*.tfvars
8+
*.tfvars.json
9+
override.tf
10+
override.tf.json
11+
*_override.tf
12+
*_override.tf.json
13+
.terraform.tfstate.lock.info
14+
.terraformrc
15+
terraform.rc

infra/.terraform.lock.hcl

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

infra/Makefile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.PHONY: fmt
2+
fmt:
3+
@terraform fmt ./**/*.tf
4+
5+
.PHONY: check
6+
check:
7+
@terraform validate
8+
9+
.PHONY: yolo
10+
yolo:
11+
@echo "Wise, you are not..."
12+
@terraform apply -auto-approve

infra/cdn/README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Fastly CDN Config
2+
3+
This module creates Fastly services for the Python.org CDN.
4+
5+
## Usage
6+
# Fastly VCL Terraform Module
7+
8+
This Terraform module configures a Fastly service using VCL (Varnish Configuration Language) for Python.org. It sets up a robust CDN configuration with various features to optimize performance, security, and logging.
9+
10+
## Features
11+
12+
- Configures Fastly VCL service for Python.org
13+
- Supports multiple domains (primary and extra domains)
14+
- Sets up backends with health checks
15+
- Implements caching strategies and TTL configurations
16+
- Configures HTTPS and HSTS
17+
- Implements rate limiting
18+
- Sets up logging to Datadog and S3
19+
- Configures various headers and request/response manipulations
20+
- Implements IP blocking capabilities
21+
22+
## Usage
23+
24+
```hcl
25+
module "fastly_production" {
26+
source = "./cdn"
27+
28+
name = "CoolPythonApp.org"
29+
domain = "CoolPythonApp.org"
30+
extra_domains = ["www.CoolPythonApp.org"]
31+
backend_address = "service.CoolPythonApp.org"
32+
default_ttl = 3600
33+
34+
datadog_key = var.DATADOG_API_KEY
35+
fastly_key = var.FASTLY_API_KEY
36+
fastly_header_token = var.FASTLY_HEADER_TOKEN
37+
fastly_s3_logging = var.fastly_s3_logging
38+
}
39+
```
40+
41+
## Outputs
42+
43+
N/A
44+
45+
## Requirements
46+
47+
Tested on
48+
- Tested on Terraform 1.8.5
49+
- Fastly provider 5.13.0

infra/cdn/certs/psf.io.pem

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIEQzCCAyugAwIBAgIUYH38nEb2KLRgscKhjcNpBLRUz+UwDQYJKoZIhvcNAQEL
3+
BQAwgbAxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZPcmVnb24xEjAQBgNVBAcMCUJl
4+
YXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xHDAa
5+
BgNVBAsME0luZnJhc3RydWN0dXJlIFRlYW0xDzANBgNVBAMMBlBTRl9DQTEoMCYG
6+
CSqGSIb3DQEJARYZaW5mcmFzdHJ1Y3R1cmVAcHl0aG9uLm9yZzAeFw0yNDAyMTIx
7+
NzU0MDZaFw0yOTAyMTAxNzU0MDZaMIGwMQswCQYDVQQGEwJVUzEPMA0GA1UECAwG
8+
T3JlZ29uMRIwEAYDVQQHDAlCZWF2ZXJ0b24xIzAhBgNVBAoMGlB5dGhvbiBTb2Z0
9+
d2FyZSBGb3VuZGF0aW9uMRwwGgYDVQQLDBNJbmZyYXN0cnVjdHVyZSBUZWFtMQ8w
10+
DQYDVQQDDAZQU0ZfQ0ExKDAmBgkqhkiG9w0BCQEWGWluZnJhc3RydWN0dXJlQHB5
11+
dGhvbi5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCXAZagv2UK
12+
AEnnnnrK/WWcZIKo/l+HTgL01XhReu9CDNs3f3ESlRT3Y4Hbla/pYRu9VM8tMGYS
13+
xG5FGJQ2JPVnKCb3mIEC7wy9+VOaQIp3l8+o0lDQhsOZs78ZA8XQpNLD5OURsUHJ
14+
re1U6WOTryMJwxpO+DzSBU+oSwfdn2k0BAJqSeIU45hHXeHO24z7GePuk3I1wb+E
15+
vfhtdIF/tHvF1I6h7ntmHUeUWYrTKXKB9meMAFwEC1ZNoN1z05X68cSeK8dAsxYh
16+
ghmQnUZ4hHH8pLlhYW/QBTol0nutwgHPyC9FIJnZzX50xAMRx3TKP1IbIehWBwF2
17+
CYJq6pRBZ1mfAgMBAAGjUzBRMB0GA1UdDgQWBBQrAQVRNWd6eVr6ZGn8vshzgS09
18+
qDAfBgNVHSMEGDAWgBQrAQVRNWd6eVr6ZGn8vshzgS09qDAPBgNVHRMBAf8EBTAD
19+
AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBmtyljZ1q2manMvIMEtXtc9lq3gwxIP4Pq
20+
ic5hKuEHDSy5iN0vZRhoqfgPzXMy61zCrvLmvxv8nN2B4Us44KQRzWwDvi8SavfQ
21+
LxRZ4KLe5Bg7MNfIKM/ZqYqHIt1FtVFYR7UyEILN/yDCyQC+8n6s8RLmT5OtZHPL
22+
0YAyHgdao4qCICkZShbCukq81ULvkq7i6QvHWZrVGAIc/1nN71QNEUMr9KtlTKO3
23+
TeSd+l13+CDGwMXUpglDiFL329TmG5pKr/zoTCGDmRvEfRPtICwY3FgqGDpmIwhw
24+
dXq0JPGHrFODeVrchUMSGqXhAZ+k/9YdJlGLbv3WJmD1GwFTs3Wf
25+
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)