Skip to content

Commit aa1ee17

Browse files
committed
create website
1 parent 4fb4eba commit aa1ee17

File tree

5 files changed

+120
-0
lines changed

5 files changed

+120
-0
lines changed

platform/upload/BUILD.bazel

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ ocis = {
99
"dnsmasq-nanny": "//dnsmasq:dnsmasq-nanny",
1010
"flannel": "//flannel:oci",
1111
"flannel-monitor": "//flannel-monitor:oci",
12+
"homeworld-website": "//website:oci",
1213
"kube-dns-main": "//kube-dns:kube-dns-main",
1314
"kube-dns-sidecar": "//kube-dns:kube-dns-sidecar",
1415
"pause": "//cri-o/pause:oci",

platform/website/BUILD.bazel

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
load("//bazel:package.bzl", "homeworld_oci")
2+
load("//bazel:substitute.bzl", "substitute")
3+
load("//python:resources.bzl", "py_resources")
4+
5+
homeworld_oci(
6+
name = "oci",
7+
bin = {
8+
"//website/server": "/usr/bin/website-server",
9+
},
10+
exec = ["/usr/bin/website-server"],
11+
visibility = ["//visibility:public"],
12+
)
13+
14+
substitute(
15+
name = "kubernetes.yaml",
16+
kfs = {
17+
"digest": ":oci.ocidigest",
18+
},
19+
template = ":kubernetes.yaml.in",
20+
visibility = ["//visibility:public"],
21+
)
22+
23+
py_resources(
24+
name = "kubelib",
25+
data = [":kubernetes.yaml"],
26+
visibility = ["//visibility:public"],
27+
)

platform/website/kubernetes.yaml.in

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
labels:
5+
app: homeworld-website
6+
name: homeworld-website
7+
---
8+
apiVersion: v1
9+
kind: Deployment
10+
metadata:
11+
labels:
12+
app: homeworld-website
13+
name: homeworld-website
14+
namespace: homeworld-website
15+
spec:
16+
replicas: 1
17+
selector:
18+
matchLabels:
19+
app: homeworld-website
20+
template:
21+
metadata:
22+
labels:
23+
app: homeworld-website
24+
spec:
25+
containers:
26+
- image: homeworld.private/homeworld-website@{digest}
27+
name: server
28+
---
29+
apiVersion: v1
30+
kind: Service
31+
metadata:
32+
labels:
33+
app: homeworld-website
34+
name: homeworld-website
35+
namespace: homeworld-website
36+
spec:
37+
selector:
38+
app: homeworld-website
39+
type: LoadBalancer
40+
ports:
41+
- protocol: TCP
42+
port: 80
43+
targetPort: 8080

platform/website/server/BUILD.bazel

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
2+
3+
go_library(
4+
name = "go_default_library",
5+
srcs = ["server.go"],
6+
importpath = "github.com/sipb/homeworld/platform/website/server",
7+
visibility = ["//visibility:private"],
8+
deps = [
9+
"@com_github_prometheus_client_golang//prometheus:go_default_library",
10+
"@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
11+
"@com_github_prometheus_client_golang//prometheus/promhttp:go_default_library",
12+
],
13+
)
14+
15+
go_binary(
16+
name = "server",
17+
embed = [":go_default_library"],
18+
importpath = "github.com/sipb/homeworld/platform/website/server",
19+
pure = "on",
20+
visibility = ["//visibility:public"],
21+
)

platform/website/server/server.go

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"log"
6+
"net/http"
7+
8+
"github.com/prometheus/client_golang/prometheus"
9+
"github.com/prometheus/client_golang/prometheus/promauto"
10+
"github.com/prometheus/client_golang/prometheus/promhttp"
11+
)
12+
13+
var requestsServed = promauto.NewCounter(prometheus.CounterOpts{
14+
Namespace: "website",
15+
Name: "requests_served",
16+
Help: "Number of main page requests served by the website instance",
17+
})
18+
19+
func page(w http.ResponseWriter, r *http.Request) {
20+
fmt.Fprintf(w, "Welcome to the homeworld self-hosting website.")
21+
requestsServed.Inc()
22+
}
23+
24+
func main() {
25+
http.HandleFunc("/", page)
26+
http.Handle("/metrics", promhttp.Handler())
27+
log.Fatal(http.ListenAndServe(":8080", nil))
28+
}

0 commit comments

Comments
 (0)