-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4797ae6
commit 4934aeb
Showing
16 changed files
with
250 additions
and
105 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,39 @@ | ||
# | ||
REGISTRY ?= ghcr.io/siderolabs | ||
TAG ?= 1.6.7 | ||
|
||
clean: | ||
rm -rf .terraform.lock.hcl .terraform/ | ||
rm -f oracle-*.qcow2 | ||
rm -f oracle-*.oci | ||
rm -f image_metadata.json | ||
|
||
init: | ||
terraform init -upgrade | ||
|
||
images: clean | ||
docker run --rm -i -v /dev:/dev --privileged $(REGISTRY)/imager:v$(TAG) oracle \ | ||
--extra-kernel-arg talos.dashboard.disabled=1 --platform oracle --arch amd64 --tar-to-stdout | tar xz | ||
xz -d oracle-amd64.qcow2.xz | ||
cp image_metadata_amd64.json image_metadata.json | ||
tar zcf oracle-amd64.oci oracle-amd64.qcow2 image_metadata.json | ||
|
||
docker run --rm -i -v /dev:/dev --privileged $(REGISTRY)/imager:v$(TAG) oracle \ | ||
--extra-kernel-arg talos.dashboard.disabled=1 --platform oracle --arch arm64 --tar-to-stdout | tar xz | ||
xz -d oracle-arm64.qcow2.xz | ||
cp image_metadata_arm64.json image_metadata.json | ||
tar zcf oracle-arm64.oci oracle-arm64.qcow2 image_metadata.json | ||
|
||
images-factory: clean | ||
wget -O oracle-amd64.qcow2.xz https://factory.talos.dev/image/6d423353cba6ef7d56d5a818fff27caf23f32b90cf271eada90f706141a84ec0/v$(TAG)/oracle-amd64.qcow2.xz | ||
xz -d oracle-amd64.qcow2.xz | ||
cp image_metadata_amd64.json image_metadata.json | ||
tar zcf oracle-amd64.oci oracle-amd64.qcow2 image_metadata.json | ||
|
||
wget -O oracle-arm64.qcow2.xz https://factory.talos.dev/image/6d423353cba6ef7d56d5a818fff27caf23f32b90cf271eada90f706141a84ec0/v$(TAG)/oracle-arm64.qcow2.xz | ||
xz -d oracle-arm64.qcow2.xz | ||
cp image_metadata_arm64.json image_metadata.json | ||
tar zcf oracle-arm64.oci oracle-arm64.qcow2 image_metadata.json | ||
|
||
images-update: | ||
terraform apply -var="release=v$(TAG)" |
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
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
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 |
---|---|---|
@@ -1,14 +1,40 @@ | ||
|
||
variable "compartment_ocid" {} | ||
variable "tenancy_ocid" {} | ||
variable "compartment_ocid" { | ||
description = "The OCID of the compartment" | ||
type = string | ||
default = "ocid1.compartment.oc1.." | ||
} | ||
variable "tenancy_ocid" { | ||
description = "The OCID of the tenancy" | ||
type = string | ||
default = "ocid1.tenancy.oc1.." | ||
} | ||
variable "user_ocid" {} | ||
variable "fingerprint" {} | ||
variable "key_file" { | ||
default = "~/.oci/oci_main_terraform.pem" | ||
} | ||
|
||
variable "region" { | ||
description = "the OCI region where resources will be created" | ||
data "terraform_remote_state" "init" { | ||
backend = "local" | ||
config = { | ||
path = "${path.module}/../prepare/terraform.tfstate" | ||
} | ||
} | ||
|
||
locals { | ||
region = data.terraform_remote_state.init.outputs.region | ||
tags = data.terraform_remote_state.init.outputs.tags | ||
} | ||
|
||
variable "release" { | ||
description = "The image name" | ||
type = string | ||
default = null | ||
default = "1.6.7" | ||
} | ||
|
||
variable "arch" { | ||
description = "The Talos architecture list" | ||
type = list(string) | ||
default = ["amd64", "arm64"] | ||
} |
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
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,7 @@ | ||
|
||
init: | ||
terraform init -upgrade | ||
|
||
apply: | ||
terraform apply -target=oci_core_vcn.main | ||
terraform apply |
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
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
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
This file was deleted.
Oops, something went wrong.
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 |
---|---|---|
@@ -1,13 +1,8 @@ | ||
|
||
# openssl genrsa -out ~/.oci/oci_api_key.pem 2048 | ||
# chmod go-rwx ~/.oci/oci_api_key.pem | ||
# openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem | ||
|
||
provider "oci" { | ||
tenancy_ocid = var.tenancy_ocid | ||
user_ocid = var.user_ocid | ||
fingerprint = var.fingerprint | ||
private_key_path = "~/.oci/oci_api_key.pem" | ||
|
||
region = var.region | ||
private_key_path = var.key_file | ||
region = local.region | ||
} |
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,52 @@ | ||
|
||
resource "random_string" "backup" { | ||
length = 16 | ||
numeric = false | ||
special = false | ||
upper = false | ||
} | ||
|
||
data "oci_objectstorage_namespace" "namespace" { | ||
compartment_id = var.compartment_ocid | ||
} | ||
|
||
resource "oci_objectstorage_bucket" "backup" { | ||
compartment_id = var.compartment_ocid | ||
name = random_string.registry.result | ||
namespace = data.oci_objectstorage_namespace.namespace.namespace | ||
defined_tags = merge(local.tags, { "Kubernetes.Type" = "project", "Kubernetes.Role" = "backup" }) | ||
|
||
access_type = "NoPublicAccess" | ||
auto_tiering = "Disabled" | ||
storage_tier = "Standard" | ||
versioning = "Disabled" | ||
|
||
lifecycle { | ||
ignore_changes = [ | ||
defined_tags, | ||
] | ||
} | ||
} | ||
|
||
resource "oci_objectstorage_object_lifecycle_policy" "test_object_lifecycle_policy" { | ||
bucket = oci_objectstorage_bucket.backup.name | ||
namespace = data.oci_objectstorage_namespace.namespace.namespace | ||
|
||
rules { | ||
action = "DELETE" | ||
is_enabled = "true" | ||
name = "Clean all objects" | ||
time_amount = "30" | ||
time_unit = "DAYS" | ||
target = "objects" | ||
} | ||
|
||
rules { | ||
action = "ABORT" | ||
is_enabled = "true" | ||
name = "Abort incomplete multipart uploads" | ||
time_amount = "2" | ||
time_unit = "DAYS" | ||
target = "multipart-uploads" | ||
} | ||
} |
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 |
---|---|---|
@@ -1,5 +1,16 @@ | ||
|
||
output "registry" { | ||
output "registries" { | ||
description = "Registry name" | ||
value = "https://${var.region}.ocir.io/${data.oci_artifacts_container_configuration.registry.namespace}/${oci_artifacts_container_repository.registry.display_name}" | ||
value = [for repo in oci_artifacts_container_repository.registry : | ||
try("${local.region}.ocir.io/${data.oci_artifacts_container_configuration.registry.namespace}/${repo.display_name}", "") | ||
] | ||
} | ||
|
||
output "backup" { | ||
description = "Backup bucket name" | ||
value = { | ||
bucket = oci_objectstorage_bucket.backup.name, | ||
region = local.region, | ||
endpoint = "https://${data.oci_objectstorage_namespace.namespace.namespace}.compat.objectstorage.${local.region}.oraclecloud.com", | ||
} | ||
} |
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 |
---|---|---|
@@ -1,20 +1,31 @@ | ||
|
||
resource "random_id" "registry" { | ||
byte_length = 8 | ||
resource "random_string" "registry" { | ||
length = 16 | ||
numeric = false | ||
special = false | ||
upper = false | ||
} | ||
|
||
data "oci_artifacts_container_configuration" "registry" { | ||
compartment_id = var.compartment_ocid | ||
} | ||
|
||
resource "oci_artifacts_container_repository" "registry" { | ||
for_each = toset(var.repos) | ||
compartment_id = var.compartment_ocid | ||
display_name = "registry-${random_id.registry.hex}" | ||
display_name = "${random_string.registry.result}/${each.value}" | ||
defined_tags = merge(local.tags, { "Kubernetes.Type" = "infra" }) | ||
is_immutable = false | ||
is_public = false | ||
|
||
readme { | ||
content = "Container registry for ${var.project}" | ||
content = "Container mirror of ${each.value}" | ||
format = "text/plain" | ||
} | ||
|
||
lifecycle { | ||
ignore_changes = [ | ||
defined_tags, | ||
] | ||
} | ||
} |
Oops, something went wrong.