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