diff --git a/infra/vultr-kubernetes/k8s/.gitignore b/infra/vultr-kubernetes/k8s/.gitignore deleted file mode 100644 index b0e86bb..0000000 --- a/infra/vultr-kubernetes/k8s/.gitignore +++ /dev/null @@ -1 +0,0 @@ -terraform.yaml diff --git a/infra/vultr-kubernetes/k8s/backend.tf b/infra/vultr-kubernetes/k8s/backend.tf deleted file mode 100644 index b658f54..0000000 --- a/infra/vultr-kubernetes/k8s/backend.tf +++ /dev/null @@ -1,33 +0,0 @@ -terraform { - required_version = ">= 0.13" - backend s3 { - bucket = "project-athens" - key = "infra/vke/k8s/state/build.tfstate" - region = "us-west-1" - encrypt = true - } - required_providers { - # For interacting with S3 - aws = { - source = "hashicorp/aws" - version = "~> 5.0" - } - kubernetes = { - source = "hashicorp/kubernetes" - version = "2.30.0" - } - } -} - -provider aws { - access_key = var.aws_key - secret_key = var.aws_secret - region = var.aws_region - max_retries = 1 -} - -provider kubernetes { - config_path = "terraform.yaml" -} - - diff --git a/infra/vultr-kubernetes/k8s/ingress.tf b/infra/vultr-kubernetes/k8s/ingress.tf deleted file mode 100644 index 78846f1..0000000 --- a/infra/vultr-kubernetes/k8s/ingress.tf +++ /dev/null @@ -1,50 +0,0 @@ -resource kubernetes_ingress_v1 athens { - metadata { - name = var.shockrahxyz.name - namespace = kubernetes_namespace.websites.metadata.0.name - labels = { - app = "websites" - } - } - spec { - rule { - host = "test.shockrah.xyz" - http { - path { - backend { - service { - name = var.shockrahxyz.name - port { - number = 80 - } - } - } - path = "/" - } - } - } - } -} - - -resource kubernetes_service athens_lb { - metadata { - name = "athens-websites" - namespace = kubernetes_namespace.websites.metadata.0.name - labels = { - app = "websites" - } - } - spec { - selector = { - app = kubernetes_ingress_v1.athens.metadata.0.labels.app - } - port { - port = 80 - target_port = 80 - } - type = "LoadBalancer" - external_ips = [ var.cluster.ip ] - } -} - diff --git a/infra/vultr-kubernetes/k8s/namespace.tf b/infra/vultr-kubernetes/k8s/namespace.tf deleted file mode 100644 index 8885fc4..0000000 --- a/infra/vultr-kubernetes/k8s/namespace.tf +++ /dev/null @@ -1,5 +0,0 @@ -resource kubernetes_namespace websites { - metadata { - name = "websites" - } -} diff --git a/infra/vultr-kubernetes/k8s/readme.md b/infra/vultr-kubernetes/k8s/readme.md deleted file mode 100644 index 57da63c..0000000 --- a/infra/vultr-kubernetes/k8s/readme.md +++ /dev/null @@ -1,62 +0,0 @@ -# First we setup the ingress controller with helm - - -```sh -helm repo add traefik https://helm.traefik.io/traefik -helm repo update -# Now we can install this to our cluster -helm install --kubeconfig config.yaml traefik traefik/traefik -``` - -# Prove the service is present with - -```sh -kubectl --kubeconfig config.yaml get svc -``` - -# Create the pods - -```sh -kubectl --kubeconfig config.yaml -f k8s/nginx-dep.yaml -``` - -# Expose on port 80 - -```sh -kubectl --kubeconfig config.yaml -f k8s/nginx-service.yaml -``` - -# Create ingress on k8s - -```sh -kubectl --kubeconfig config.yaml -f k8s/traefik-ingress.yaml -``` - -# Take the external IP from the ingress - -Put that into terraform's A record for the domain since this is a load balancer -in Vultr ( actual resource apparantly ) - -# Configure cert-manager for traefik ingress - -Using the latest version from here: -https://github.com/cert-manager/cert-manager/releases/download/v1.14.2/cert-manager.crds.yaml - -```sh -kubectl --kubeconfig config.yaml \ - apply --validate=false \ - -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.2/cert-manager.yaml -``` - -# Create the cert issuer and certificate - - -```sh -kubectl --kubeconfig config.yaml apply -f k8s/letsencrypt-issuer.yaml -kubectl --kubeconfig config.yaml apply -f k8s/letsencrypt-issuer.yaml -``` - -Because we just have 1 cert for now we are looking for it's status to be `READY` - - - diff --git a/infra/vultr-kubernetes/k8s/shockrah-xyz.tf b/infra/vultr-kubernetes/k8s/shockrah-xyz.tf deleted file mode 100644 index ec76454..0000000 --- a/infra/vultr-kubernetes/k8s/shockrah-xyz.tf +++ /dev/null @@ -1,21 +0,0 @@ -Plain nginx for now so that we can test out reverse dns -resource kubernetes_pod shockrah { - metadata { - name = var.shockrahxyz.name - namespace = kubernetes_namespace.websites.metadata.0.name - labels = { - app = var.shockrahxyz.name - } - } - spec { - container { - image = "nginx" - name = "${var.shockrahxyz.name}" - port { - container_port = 80 - } - } - } -} - - diff --git a/infra/vultr-kubernetes/k8s/variables.tf b/infra/vultr-kubernetes/k8s/variables.tf deleted file mode 100644 index 02bc9a5..0000000 --- a/infra/vultr-kubernetes/k8s/variables.tf +++ /dev/null @@ -1,35 +0,0 @@ -# API Keys required to reach AWS/Vultr -variable vultr_api_key { - type = string - sensitive = true -} - -variable aws_key { - type = string - sensitive = true -} - -variable aws_secret { - type = string - sensitive = true -} - -variable aws_region { - type = string - sensitive = true -} - -variable shockrahxyz { - type = object({ - name = string - port = number - dns = string - }) -} - -variable cluster { - type = object({ - ip = string - }) -} - diff --git a/infra/vultr-kubernetes/k8s/yaml/alternate.temprah-lab.xyz/main.yaml b/infra/vultr-kubernetes/k8s/yaml/alternate.temprah-lab.xyz/main.yaml deleted file mode 100644 index 697e46e..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/alternate.temprah-lab.xyz/main.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# Here we are going to define the deployment and service -# Basically all things directly related to the actual service we want to provide ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: alternate-nginx-web - namespace: default - labels: - app: alternate-nginx-web -spec: - replicas: 1 - selector: - matchLabels: - app: alternate-nginx-web - template: - metadata: - labels: - app: alternate-nginx-web - spec: - # Container comes from an example thing i randomly found on docker hub - containers: - - name: alternate-nginx-web - image: dockerbogo/docker-nginx-hello-world ---- -apiVersion: v1 -kind: Service -metadata: - name: alternate-nginx-web - namespace: default -spec: - selector: - app: alternate-nginx-web - ports: - - name: http - targetPort: 80 - port: 80 diff --git a/infra/vultr-kubernetes/k8s/yaml/alternate.temprah-lab.xyz/tls.yaml b/infra/vultr-kubernetes/k8s/yaml/alternate.temprah-lab.xyz/tls.yaml deleted file mode 100644 index de71470..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/alternate.temprah-lab.xyz/tls.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: hello.temprah-lab.xyz - namespace: default -spec: - secretName: hello.temprah-lab.xyz-tls - issuerRef: - name: letsencrypt-prod - kind: ClusterIssuer - commonName: hello.temprah-lab.xyz - dnsNames: - - hello.temprah-lab.xyz ---- -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: letsencrypt-prod-hello - namespace: default -spec: - acme: - server: https://acme-v02.api.letsencrypt.org/directory - email: dev@shockrah.xyz - privateKeySecretRef: - name: letsencrypt-prod-hello - solvers: - - http01: - ingress: - class: traefik - diff --git a/infra/vultr-kubernetes/k8s/yaml/letsencrypt-certificate.yaml b/infra/vultr-kubernetes/k8s/yaml/letsencrypt-certificate.yaml deleted file mode 100644 index c3f6874..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/letsencrypt-certificate.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: sample.temprah-lab.xyz - namespace: default -spec: - secretName: sample.temprah-lab.xyz-tls - issuerRef: - name: letsencrypt-prod - kind: ClusterIssuer - commonName: sample.temprah-lab.xyz - dnsNames: - - sample.temprah-lab.xyz diff --git a/infra/vultr-kubernetes/k8s/yaml/letsencrypt-issuer.yaml b/infra/vultr-kubernetes/k8s/yaml/letsencrypt-issuer.yaml deleted file mode 100644 index b8de0ee..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/letsencrypt-issuer.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: letsencrypt-prod - namespace: default -spec: - acme: - server: https://acme-v02.api.letsencrypt.org/directory - email: dev@shockrah.xyz - privateKeySecretRef: - name: letsencrypt-prod - solvers: - - http01: - ingress: - class: traefik diff --git a/infra/vultr-kubernetes/k8s/yaml/temprah-lab.xyz/nginx-dep.yaml b/infra/vultr-kubernetes/k8s/yaml/temprah-lab.xyz/nginx-dep.yaml deleted file mode 100644 index 40f1bf1..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/temprah-lab.xyz/nginx-dep.yaml +++ /dev/null @@ -1,20 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: nginx-web - namespace: default - labels: - app: nginx-web -spec: - replicas: 1 - selector: - matchLabels: - app: nginx-web - template: - metadata: - labels: - app: nginx-web - spec: - containers: - - name: nginx - image: nginx diff --git a/infra/vultr-kubernetes/k8s/yaml/temprah-lab.xyz/nginx-service.yaml b/infra/vultr-kubernetes/k8s/yaml/temprah-lab.xyz/nginx-service.yaml deleted file mode 100644 index 169cb53..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/temprah-lab.xyz/nginx-service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: nginx-web - namespace: default -spec: - selector: - app: nginx-web - ports: - - name: http - targetPort: 80 - port: 80 diff --git a/infra/vultr-kubernetes/k8s/yaml/tls.yaml b/infra/vultr-kubernetes/k8s/yaml/tls.yaml deleted file mode 100644 index 03afaf5..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/tls.yaml +++ /dev/null @@ -1,44 +0,0 @@ -# This is the first thing we need to create, an issue to put certs into -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: letsencrypt-prod - namespace: default -spec: - acme: - server: https://acme-v02.api.letsencrypt.org/directory - email: dev@shockrah.xyz - privateKeySecretRef: - name: letsencrypt-temprah-lab - solvers: - - http01: - ingress: - class: traefik ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: hello.temprah-lab.xyz - namespace: default -spec: - secretName: hello.temprah-lab.xyz-tls - issuerRef: - name: letsencrypt-temprah-lab - kind: ClusterIssuer - commonName: hello.temprah-lab.xyz - dnsNames: - - hello.temprah-lab.xyz ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: sample.temprah-lab.xyz - namespace: default -spec: - secretName: sample.temprah-lab.xyz-tls - issuerRef: - name: letsencrypt-temprah-lab - kind: ClusterIssuer - commonName: sample.temprah-lab.xyz - dnsNames: - - sample.temprah-lab.xyz diff --git a/infra/vultr-kubernetes/k8s/yaml/traefik-ingress.yaml b/infra/vultr-kubernetes/k8s/yaml/traefik-ingress.yaml deleted file mode 100644 index dae6072..0000000 --- a/infra/vultr-kubernetes/k8s/yaml/traefik-ingress.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: traefik-ingress - namespace: default - labels: - name: project-athens-lb - annotations: - kubernetes.io/ingress.class: traefik -spec: - rules: - - host: sample.temprah-lab.xyz - http: - paths: - - backend: - service: - name: nginx-web - port: - number: 80 - path: / - pathType: Prefix - - host: hello.temprah-lab.xyz - http: - paths: - - backend: - service: - name: alternate-nginx-web - port: - number: 80 - path: / - pathType: Prefix