Skip to content

project-octal/terraform-kubernetes-octal-extras

Repository files navigation


terraform-kubernetes-octal-extras

Project Octal Extras is a collection of helm charts that can be selectively and easily deployed to any Kubernetes cluster with ArgoCD.


IMPORTANT: Upgrading from v0.0.1 to v1.0.0

If you're currently on version v0.0.1 or older the following steps need to be followed to prevent potential disruption. The following steps assume the root Octal-Extras module was created with the name my_octal_extras

# Import the Octal-Extras ArgoCD Project
terraform import -var-file=secrets.tfvars 'module.my_octal_extras.module.octal_extras_argocd_project[0].kubernetes_manifest.argo_project' "apiVersion=argoproj.io/v1alpha1,kind=AppProject,namespace=kube-argocd,name=project-octal-extras"

# Import the KubeDB ArgoCD Application
terraform import -var-file=secrets.tfvars 'module.my_octal_extras.module.octal_extras_kubedb[0].module.kubedb_argocd_application.kubernetes_manifest.argo_application' "apiVersion=argoproj.io/v1alpha1,kind=Application,namespace=kube-argocd,name=kubedb"

# Import the Rookio ArgoCD Application
terraform import -var-file=secrets.tfvars 'module.my_octal_extras.module.octal_extras_rookio[0].module.rookio_argocd_application.kubernetes_manifest.argo_application' "apiVersion=argoproj.io/v1alpha1,kind=Application,namespace=kube-argocd,name=rook-ceph"

# Delete the old Octal-Extras ArgoCD Project state object
terraform state rm 'module.my_octal_extras.module.octal_extras_argocd_project[0].k8s_manifest.argo_project'

# Delete the old Kubedb ArgoCD state object
terraform state rm 'module.my_octal_extras.module.octal_extras_kubedb[0].module.kubedb_argocd_application.k8s_manifest.argo_application' 

# Delete the old RookIO ArgoCD state object
terraform state rm 'module.my_octal_extras.module.octal_extras_rookio[0].module.rookio_argocd_application.k8s_manifest.argo_application' 

# Lastly, run a Terraform apply to make sure the states are synced up.
terraform apply -var-file secrets.tfvars

Available Extras

Name Version Link License
Kubedb v2021.03.17 https://kubedb.com/ AppsCode-Community-1.0.0
Rook v1.5.9 https://rook.io/ Apache License 2.0

Requirements

Name Version
terraform >= 0.14.8, < 2.0.0
kubernetes ~> 2.6.1

Providers

Name Version
kubernetes 2.6.1

Modules

Name Source Version
octal_extras_argocd_project project-octal/argocd-project/kubernetes 2.0.0
octal_extras_kubedb ./terraform-octal-kubedb n/a
octal_extras_rookio ./terraform-octal-rookio n/a

Resources

Name Type
kubernetes_namespace.kubedb_namespace resource
kubernetes_namespace.rookio_namespace resource

Inputs

Name Description Type Default Required
argocd_namespace n/a string n/a yes
deployment_cluster n/a string "https://kubernetes.default.svc" no
enabled_extras n/a
object({
rookio = optional(object({
enabled = bool
namespace = string
chart_version = string
}))
kubedb = optional(object({
enabled = bool
namespace = string
license = string
}))
code_server = optional(object({
enabled = bool
namespace = string
}))
})
{} no

Outputs

Name Description
kubedb_namespace n/a
rookio_namespace n/a