Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save egeneralov/6b5d9aa907356c4d5adbc3c85c39e70f to your computer and use it in GitHub Desktop.

Select an option

Save egeneralov/6b5d9aa907356c4d5adbc3c85c39e70f to your computer and use it in GitHub Desktop.
# helm repo add stable https://kubernetes-charts.storage.googleapis.com
# helm repo add elastic https://helm.elastic.co
# helm repo update
# terraform apply -auto-approve -no-color -var "access_key=" -var "secret_key=" -var "organization_id="
variable "access_key" {
type = string
}
variable "secret_key" {
type = string
}
variable "organization_id" {
type = string
}
variable "cluster_name" {
type = string
default = "kapsule"
}
provider "scaleway" {
access_key = var.access_key
secret_key = var.secret_key
organization_id = var.organization_id
zone = "fr-par-1"
region = "fr-par"
}
resource "scaleway_k8s_cluster_beta" "kapsule" {
name = var.cluster_name
version = "1.18.3"
cni = "flannel"
ingress = "nginx"
}
resource "scaleway_k8s_pool_beta" "kapsule" {
cluster_id = scaleway_k8s_cluster_beta.kapsule.id
name = var.cluster_name
node_type = "GP1-XS"
size = 1
}
provider "kubernetes" {
load_config_file = "false"
host = scaleway_k8s_cluster_beta.kapsule.kubeconfig[0].host
token = scaleway_k8s_cluster_beta.kapsule.kubeconfig[0].token
cluster_ca_certificate = base64decode(
scaleway_k8s_cluster_beta.kapsule.kubeconfig[0].cluster_ca_certificate
)
}
resource "kubernetes_namespace" "logging" {
metadata {
name = "logging"
}
}
resource "kubernetes_namespace" "monitoring" {
metadata {
name = "monitoring"
}
}
provider "helm" {
kubernetes {
host = scaleway_k8s_cluster_beta.kapsule.kubeconfig[0].host
token = scaleway_k8s_cluster_beta.kapsule.kubeconfig[0].token
cluster_ca_certificate = base64decode(
scaleway_k8s_cluster_beta.kapsule.kubeconfig[0].cluster_ca_certificate
)
}
}
resource "helm_release" "filebeat" {
name = "filebeat"
namespace = "logging"
chart = "elastic/filebeat"
}
resource "helm_release" "elasticsearch" {
name = "elasticsearch"
namespace = "logging"
chart = "elastic/elasticsearch"
set {
name = "persistence.enabled"
value = "false"
}
set {
name = "replicas"
value = "1"
}
}
resource "helm_release" "prometheus" {
name = "prometheus"
namespace = "monitoring"
chart = "stable/prometheus"
set {
name = "alertmanager.enabled"
value = "false"
}
set {
name = "pushgateway.enabled"
value = "false"
}
set {
name = "server.persistentVolume.enabled"
value = "false"
}
set {
name = "server.persistentVolume.enabled"
value = "false"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment