Merge branch 'coder:main' into feat/code-server-extension-auto
						commit
						19d7073896
					
				
											
												
													File diff suppressed because one or more lines are too long
												
											
										
									
								| 
		 After Width: | Height: | Size: 15 KiB  | 
											
												Binary file not shown.
											
										
									
								| 
		 After Width: | Height: | Size: 603 KiB  | 
@ -0,0 +1,69 @@
 | 
			
		||||
---
 | 
			
		||||
display_name: airflow
 | 
			
		||||
description: A module that adds Apache Airflow in your Coder template
 | 
			
		||||
icon: ../.icons/airflow.svg
 | 
			
		||||
maintainer_github: nataindata
 | 
			
		||||
verified: false
 | 
			
		||||
tags: [airflow, idea, web, helper]
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# airflow
 | 
			
		||||
 | 
			
		||||
A module that adds Apache Airflow in your Coder template.
 | 
			
		||||
 | 
			
		||||
```tf
 | 
			
		||||
module "airflow" {
 | 
			
		||||
  source  = "registry.coder.com/modules/airflow/coder"
 | 
			
		||||
  version = "1.0.2"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Examples
 | 
			
		||||
 | 
			
		||||
### Example 1
 | 
			
		||||
 | 
			
		||||
Install the Dracula theme from [OpenVSX](https://open-vsx.org/):
 | 
			
		||||
 | 
			
		||||
```tf
 | 
			
		||||
module "airflow" {
 | 
			
		||||
  source   = "registry.coder.com/modules/airflow/coder"
 | 
			
		||||
  version  = "1.0.2"
 | 
			
		||||
  agent_id = coder_agent.example.id
 | 
			
		||||
  extensions = [
 | 
			
		||||
    "dracula-theme.theme-dracula"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Enter the `<author>.<name>` into the extensions array and code-server will automatically install on start.
 | 
			
		||||
 | 
			
		||||
### Example 2
 | 
			
		||||
 | 
			
		||||
Configure VS Code's [settings.json](https://code.visualstudio.com/docs/getstarted/settings#_settingsjson) file:
 | 
			
		||||
 | 
			
		||||
```tf
 | 
			
		||||
module "airflow" {
 | 
			
		||||
  source     = "registry.coder.com/modules/airflow/coder"
 | 
			
		||||
  version    = "1.0.2"
 | 
			
		||||
  agent_id   = coder_agent.example.id
 | 
			
		||||
  extensions = ["dracula-theme.theme-dracula"]
 | 
			
		||||
  settings = {
 | 
			
		||||
    "workbench.colorTheme" = "Dracula"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Example 3
 | 
			
		||||
 | 
			
		||||
Run code-server in the background, don't fetch it from GitHub:
 | 
			
		||||
 | 
			
		||||
```tf
 | 
			
		||||
module "airflow" {
 | 
			
		||||
  source   = "registry.coder.com/modules/airflow/coder"
 | 
			
		||||
  version  = "1.0.2"
 | 
			
		||||
  agent_id = coder_agent.example.id
 | 
			
		||||
  offline  = true
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
@ -0,0 +1,65 @@
 | 
			
		||||
terraform {
 | 
			
		||||
  required_version = ">= 1.0"
 | 
			
		||||
 | 
			
		||||
  required_providers {
 | 
			
		||||
    coder = {
 | 
			
		||||
      source  = "coder/coder"
 | 
			
		||||
      version = ">= 0.17"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Add required variables for your modules and remove any unneeded variables
 | 
			
		||||
variable "agent_id" {
 | 
			
		||||
  type        = string
 | 
			
		||||
  description = "The ID of a Coder agent."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
variable "log_path" {
 | 
			
		||||
  type        = string
 | 
			
		||||
  description = "The path to log airflow to."
 | 
			
		||||
  default     = "/tmp/airflow.log"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
variable "port" {
 | 
			
		||||
  type        = number
 | 
			
		||||
  description = "The port to run airflow on."
 | 
			
		||||
  default     = 8080
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
variable "share" {
 | 
			
		||||
  type    = string
 | 
			
		||||
  default = "owner"
 | 
			
		||||
  validation {
 | 
			
		||||
    condition     = var.share == "owner" || var.share == "authenticated" || var.share == "public"
 | 
			
		||||
    error_message = "Incorrect value. Please set either 'owner', 'authenticated', or 'public'."
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
variable "order" {
 | 
			
		||||
  type        = number
 | 
			
		||||
  description = "The order determines the position of app in the UI presentation. The lowest order is shown first and apps with equal order are sorted by name (ascending order)."
 | 
			
		||||
  default     = null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
resource "coder_script" "airflow" {
 | 
			
		||||
  agent_id     = var.agent_id
 | 
			
		||||
  display_name = "airflow"
 | 
			
		||||
  icon         = "/icon/apache-guacamole.svg"
 | 
			
		||||
  script = templatefile("${path.module}/run.sh", {
 | 
			
		||||
    LOG_PATH : var.log_path,
 | 
			
		||||
    PORT : var.port
 | 
			
		||||
  })
 | 
			
		||||
  run_on_start = true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
resource "coder_app" "airflow" {
 | 
			
		||||
  agent_id     = var.agent_id
 | 
			
		||||
  slug         = "airflow"
 | 
			
		||||
  display_name = "airflow"
 | 
			
		||||
  url          = "http://localhost:${var.port}"
 | 
			
		||||
  icon         = "/icon/apache-guacamole.svg"
 | 
			
		||||
  subdomain    = true
 | 
			
		||||
  share        = var.share
 | 
			
		||||
  order        = var.order
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,19 @@
 | 
			
		||||
#!/usr/bin/env sh
 | 
			
		||||
 | 
			
		||||
BOLD='\033[0;1m'
 | 
			
		||||
 | 
			
		||||
PATH=$PATH:~/.local/bin
 | 
			
		||||
pip install --upgrade apache-airflow
 | 
			
		||||
 | 
			
		||||
filename=~/airflow/airflow.db
 | 
			
		||||
if ! [ -f $filename ] || ! [ -s $filename ]; then
 | 
			
		||||
  airflow db init
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
export AIRFLOW__CORE__LOAD_EXAMPLES=false
 | 
			
		||||
 | 
			
		||||
airflow webserver > ${LOG_PATH} 2>&1 &
 | 
			
		||||
 | 
			
		||||
airflow scheduler >> /tmp/airflow_scheduler.log 2>&1 &
 | 
			
		||||
 | 
			
		||||
airflow users create -u admin -p admin -r Admin -e admin@admin.com -f Coder -l User
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue