Skip to content

Commit 458e66d

Browse files
committed
2.18.0 upgrade, coder-logstream-kube, & new templates
1 parent 4a5df73 commit 458e66d

File tree

7 files changed

+147
-5
lines changed

7 files changed

+147
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
name: coder-logstream-kube-role
5+
rules:
6+
- apiGroups: [""]
7+
resources: ["pods", "events"]
8+
verbs: ["get", "watch", "list"]
9+
- apiGroups: ["apps"]
10+
resources: ["replicasets", "events"]
11+
verbs: ["get", "watch", "list"]
12+
13+
---
14+
apiVersion: rbac.authorization.k8s.io/v1
15+
kind: RoleBinding
16+
metadata:
17+
name: coder-logstream-kube-rolebinding
18+
roleRef:
19+
apiGroup: rbac.authorization.k8s.io
20+
kind: Role
21+
name: coder-logstream-kube-role
22+
subjects:
23+
- kind: ServiceAccount
24+
name: coder-logstream-kube
25+
namespace: coder
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
name: coder-workspaces
5+
rules:
6+
- apiGroups: ["", "apps", "networking.k8s.io"]
7+
resources: ["persistentvolumeclaims", "pods", "deployments", "services", "secrets", "pods/exec","pods/log", "events", "networkpolicies", "serviceaccounts"]
8+
verbs: ["create", "get", "list", "watch", "update", "patch", "delete", "deletecollection"]
9+
- apiGroups: ["metrics.k8s.io", "storage.k8s.io"]
10+
resources: ["pods", "storageclasses"]
11+
verbs: ["get", "list", "watch"]
12+
---
13+
apiVersion: rbac.authorization.k8s.io/v1
14+
kind: RoleBinding
15+
metadata:
16+
name: coder-workspaces
17+
subjects:
18+
- kind: ServiceAccount
19+
name: coder
20+
namespace: coder
21+
roleRef:
22+
kind: Role
23+
name: coder-workspaces
24+
apiGroup: rbac.authorization.k8s.io

helm/coder-logstream-kube/role.yaml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
name: coder-logstream-kube-role
5+
rules:
6+
- apiGroups: [""]
7+
resources: ["pods", "events"]
8+
verbs: ["get", "watch", "list"]
9+
- apiGroups: ["apps"]
10+
resources: ["replicasets", "events"]
11+
verbs: ["get", "watch", "list"]
12+
13+
---
14+
apiVersion: rbac.authorization.k8s.io/v1
15+
kind: RoleBinding
16+
metadata:
17+
name: coder-logstream-kube-rolebinding
18+
roleRef:
19+
apiGroup: rbac.authorization.k8s.io
20+
kind: Role
21+
name: coder-logstream-kube-role
22+
subjects:
23+
- kind: ServiceAccount
24+
name: coder-logstream-kube
25+
namespace: coder-workspaces

helm/coder-logstream-kube/values.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
USER-SUPPLIED VALUES:
2+
url: https://eric-aks.demo.coder.com

helm/values.yaml

+11-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ coder:
88

99
image:
1010
# custom image with az & gcloud CLIs installed
11-
repo: "docker.io/ericpaulsen/coder-2.7.0"
11+
repo: "docker.io/ericpaulsen/coder-2.18.0"
1212
tag: "multi-cloud"
1313
pullPolicy: Always
1414

@@ -33,7 +33,17 @@ coder:
3333
- name: gcp-service-account-key
3434
secret:
3535
secretName: gcp-service-account-key
36+
- name: eric-ca
37+
secret:
38+
secretName: eric-ca
39+
items:
40+
- key: eric-ca.pem
41+
path: eric-ca.pem
3642
volumeMounts:
43+
- name: eric-ca
44+
mountPath: /etc/ssl/certs/eric-ca.pem
45+
subPath: eric-ca.pem
46+
readOnly: true
3747
- name: gke-kubeconfig
3848
mountPath: /var/secrets/gke
3949
readOnly: false

templates/code-server-pod/main.tf

+8-4
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,12 @@ variable "use_kubeconfig" {
2929
}
3030

3131
provider "kubernetes" {
32-
# Authenticate via ~/.kube/config or a Coder-specific ServiceAccount, depending on admin preferences
33-
config_path = var.use_kubeconfig == true ? "~/.kube/config" : null
32+
host = "https://8F9725368681A223B3D7220FB406F73E.sk1.us-west-1.eks.amazonaws.com"
33+
exec {
34+
api_version = "client.authentication.k8s.io/v1beta1"
35+
args = ["eks", "get-token", "--cluster-name", "mark-trial-cluster"]
36+
command = "aws"
37+
}
3438
}
3539

3640
data "coder_workspace" "me" {}
@@ -269,7 +273,7 @@ resource "kubernetes_pod" "main" {
269273
]
270274
metadata {
271275
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
272-
namespace = "coder"
276+
namespace = "oss"
273277
}
274278
spec {
275279
security_context {
@@ -315,7 +319,7 @@ resource "kubernetes_pod" "main" {
315319
resource "kubernetes_persistent_volume_claim" "home-directory" {
316320
metadata {
317321
name = "home-coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
318-
namespace = "coder"
322+
namespace = "oss"
319323
}
320324
wait_until_bound = false
321325
spec {

templates/no-resource/main.tf

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
terraform {
2+
required_providers {
3+
coder = {
4+
source = "coder/coder"
5+
version = "0.18.0"
6+
}
7+
}
8+
}
9+
10+
resource "null_resource" "example1" {
11+
provisioner "local-exec" {
12+
command = "/usr/bin/coder agent &>/dev/null &"
13+
interpreter = ["sh", "-c"]
14+
environment = {
15+
CODER_AGENT_TOKEN = coder_agent.main.token
16+
CODER_AGENT_URL = data.coder_workspace.me.access_url
17+
}
18+
}
19+
}
20+
21+
data "coder_workspace" "me" {}
22+
23+
resource "coder_agent" "main" {
24+
os = "linux"
25+
arch = "amd64"
26+
27+
startup_script = <<-EOT
28+
set -e
29+
30+
# install and start code-server
31+
curl -fsSL https://code-server.dev/install.sh | sh
32+
code-server --auth none --port 13337 >/dev/null 2>&1 &
33+
34+
EOT
35+
}
36+
37+
# code-server
38+
resource "coder_app" "code-server" {
39+
agent_id = coder_agent.main.id
40+
slug = "code-server"
41+
display_name = "code-server"
42+
icon = "/icon/code.svg"
43+
url = "http://localhost:13337?folder=~/"
44+
subdomain = false
45+
share = "owner"
46+
47+
healthcheck {
48+
url = "http://localhost:13337/healthz"
49+
interval = 3
50+
threshold = 10
51+
}
52+
}

0 commit comments

Comments
 (0)