khuedoan-homelab/external
Khue Doan 81f0a94574 chore(deps): update all non-major dependencies
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [cloudflare](https://registry.terraform.io/providers/cloudflare/cloudflare) ([source](https://github.com/cloudflare/terraform-provider-cloudflare)) | required_provider | minor | `~> 3.7.0` -> `~> 3.8.0` |
| [dendrite](https://github.com/locmai/charts) |  | patch | `0.0.1` -> `0.0.2` |
| [renovate](https://github.com/renovatebot/helm-charts) |  | minor | `31.62.0` -> `31.63.2` |

⚠️ Release Notes retrieval for this PR were skipped because no github.com credentials were available.
If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Reviewed-on: https://git.khuedoan.com/ops/homelab/pulls/2
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-committed-by: Renovate Bot <bot@renovateapp.com>
2022-01-31 23:21:52 +07:00
..
.gitignore fix(external): fix wrong provider name for B2 2021-12-09 01:23:04 +07:00
backblaze.tf chore: cleanup Backblaze secret keys 2021-12-25 21:58:23 +07:00
cert_manager.tf refactor(external): split Cloudflare into multiple files 2021-12-25 02:06:05 +07:00
cloudflare.tf refactor(external): ask to enter variables if var file does not exist 2021-12-25 02:34:49 +07:00
cloudflared.tf refactor(external): split Cloudflare into multiple files 2021-12-25 02:06:05 +07:00
external_dns.tf refactor(external): split Cloudflare into multiple files 2021-12-25 02:06:05 +07:00
Makefile refactor: inject Terraform secrets with Terraform 2021-12-29 22:51:36 +07:00
namespaces.yml feat(external): inject Backblaze secrets to k8up namespace 2021-12-25 20:18:45 +07:00
README.md docs(external): list some alternatives 2022-01-29 23:59:03 +07:00
tekton.tf refactor: inject Terraform secrets with Terraform 2021-12-29 22:51:36 +07:00
terraform.tfvars.j2 refactor(external): ask to enter variables if var file does not exist 2021-12-25 02:34:49 +07:00
tfvars.yml style: format YAMLs to fix yamllint 2021-12-26 12:36:14 +07:00
variables.tf style(external): format 2021-12-25 02:50:18 +07:00
versions.tf chore(deps): update all non-major dependencies 2022-01-31 23:21:52 +07:00

External resources

WIP documents

These resources are optional, the homelab still works without them but will lack some features like trusted certificates and offsite backup

Although I try to keep the amount of external resources to the minimum, there's still need for a few of them. Below is a list of external resources and why we need them (also see some alternatives below).

  • Terraform Cloud:
    • Workspace to store the state for external resources
  • Cloudflare:
    • DNS
    • DNS-01 challenge for Let's Encrypt
    • Tunnel to public services to the internet without port-forwarding
  • Backblaze:
    • B2 storage with S3 compatible API for offsite backup

This layer will:

  • Create external resources
  • Add external secrets to namespaces

Prerequisites

Create Terraform workspace

TODO

Create Cloudflare API token

https://dash.cloudflare.com/profile/api-tokens

Terraform API token summary:

This API token will affect the below accounts and zones, along with their respective permissions

└── Khue Doan - Argo Tunnel:Edit, Account Settings:Read
    └── khuedoan.com - Zone:Read, DNS:Edit

Client IP Address Filtering

└── Is in - 117.xxx.xxx.xxx, 2402:xxx:xxx:xxx:xxx:xxx:xxx:xxx

Create Backblaze API key

https://secure.backblaze.com/app_keys.htm

Name of Key: Homelab
Allow access to Bucket(s): All
Type of Access: Read and Write

Deploy

Apply Terraform (you will be prompted to login to Terraform Cloud and enter API keys from the previous steps):

make

Alternatives

  • Terraform Cloud: any other Terraform backends
  • Cloudflare Tunnel: you can build a small VPS in the cloud and route traffic via it using Wireguard and HAProxy.
  • Backblaze B2: any S3 compatible object storage, such as S3 Glacier, Minio...