Initial Commit
This commit is contained in:
		
							
								
								
									
										7
									
								
								go-import-redirector/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								go-import-redirector/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
# Go Import Redirector
 | 
			
		||||
 | 
			
		||||
This is the nomad job file I use for rsc's [go-import-redirector](https://github.com/rsc/go-import-redirector), which redirects the Go programming language tool to the proper github repo. For example, if someone tries to install one of my projects, rather than having to type out `go install gitea.arsenm.dev/Arsen6331/itd@latest`, they can just use `go install go.arsenm.dev/itd@latest` and this service will redirect them.
 | 
			
		||||
 | 
			
		||||
This job file downloads an archive containing `go-import-redirector` executables for `x86_64` and `aarch64`, as well as a script that runs the correct one, from my minio instance.
 | 
			
		||||
 | 
			
		||||
I am running two instances of this, automatically load-balanced by Traefik. Since the configuration is done entirely in command-line arguments, this workload is completely stateless, and can therefore be moved around freely by Nomad.
 | 
			
		||||
							
								
								
									
										46
									
								
								go-import-redirector/go-import-redirector.nomad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								go-import-redirector/go-import-redirector.nomad
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
job "go-import-redirector" {
 | 
			
		||||
  region      = "global"
 | 
			
		||||
  datacenters = ["dc1"]
 | 
			
		||||
  type        = "service"
 | 
			
		||||
 | 
			
		||||
  group "go-import-redirector" {
 | 
			
		||||
    count = 2
 | 
			
		||||
 | 
			
		||||
    network {
 | 
			
		||||
      port "http" {}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    task "go-import-redirector" {
 | 
			
		||||
      driver = "exec"
 | 
			
		||||
 | 
			
		||||
      config {
 | 
			
		||||
        command = "local/exec.sh"
 | 
			
		||||
        args = [
 | 
			
		||||
          "-addr", ":${NOMAD_PORT_http}",
 | 
			
		||||
          "go.arsenm.dev/*",
 | 
			
		||||
          "https://gitea.arsenm.dev/Arsen6331/*"
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      artifact {
 | 
			
		||||
        source = "https://api.minio.arsenm.dev/adl/go-import-redirector.tar.gz"
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      resources {
 | 
			
		||||
        cpu    = 100
 | 
			
		||||
        memory = 20
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      service {
 | 
			
		||||
        name = "go-import-redirector"
 | 
			
		||||
        port = "http"
 | 
			
		||||
 | 
			
		||||
        tags = [
 | 
			
		||||
          "traefik.enable=true",
 | 
			
		||||
          "traefik.http.routers.go-import-redirector.rule=Host(`go.arsenm.dev`)",
 | 
			
		||||
          "traefik.http.routers.go-import-redirector.tls.certResolver=letsencrypt"
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user