Skip to content

Commit

Permalink
chore: updated score schema and types, added compatibility transformer (
Browse files Browse the repository at this point in the history
#26)

Signed-off-by: Ben Meier <[email protected]>
  • Loading branch information
astromechza authored Feb 26, 2024
1 parent e9d5091 commit 2b44195
Show file tree
Hide file tree
Showing 8 changed files with 626 additions and 309 deletions.
12 changes: 6 additions & 6 deletions loader/loader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ containers:
- source: ${resources.data}
path: sub/path
target: /mnt/data
read_only: true
readOnly: true
resources:
limits:
memory: "128Mi"
Expand Down Expand Up @@ -155,7 +155,7 @@ resources:
{
Target: "/etc/hello-world/config.yaml",
Mode: stringRef("666"),
Content: "---\n${resources.env.APP_CONFIG}\n",
Content: stringRef("---\n${resources.env.APP_CONFIG}\n"),
NoExpand: boolRef(true),
},
},
Expand All @@ -178,17 +178,17 @@ resources:
},
},
LivenessProbe: &types.ContainerProbe{
HttpGet: &types.HttpProbe{
HttpGet: types.HttpProbe{
Path: "/alive",
Port: intRef(8080),
Port: 8080,
},
},
ReadinessProbe: &types.ContainerProbe{
HttpGet: &types.HttpProbe{
HttpGet: types.HttpProbe{
Host: stringRef("1.1.1.1"),
Scheme: schemeRef(types.HttpProbeSchemeHTTPS),
Path: "/ready",
Port: intRef(8080),
Port: 8080,
HttpHeaders: []types.HttpProbeHttpHeadersElem{
{Name: stringRef("Custom-Header"), Value: stringRef("Awesome")},
},
Expand Down
45 changes: 45 additions & 0 deletions schema/files/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Disable all the default make stuff
MAKEFLAGS += --no-builtin-rules
.SUFFIXES:

SCORE_EXAMPLES_DIR ?= ./samples/

## Display help menu
.PHONY: help
help:
@echo Documented Make targets:
@perl -e 'undef $$/; while (<>) { while ($$_ =~ /## (.*?)(?:\n# .*)*\n.PHONY:\s+(\S+).*/mg) { printf "\033[36m%-30s\033[0m %s\n", $$2, $$1 } }' $(MAKEFILE_LIST) | sort

# ------------------------------------------------------------------------------
# NON-PHONY TARGETS
# ------------------------------------------------------------------------------

${GOPATH}/bin/jv:
ifeq ($(GOPATH),)
$(error GOPATH must be set)
endif
go install github.com/santhosh-tekuri/jsonschema/cmd/jv@latest

# ------------------------------------------------------------------------------
# PHONY TARGETS
# ------------------------------------------------------------------------------

.PHONY: .ALWAYS
.ALWAYS:

## Test that the score schema matches the json-schema reference
.PHONY: test-schema
test-schema: ${GOPATH}/bin/jv
${GOPATH}/bin/jv -assertformat -assertcontent https://json-schema.org/draft/2020-12/schema ./score-v1b1.json

## Test that the given score examples in $SCORE_EXAMPLES_DIR match the schema
.PHONY: test-examples
test-examples: ${GOPATH}/bin/jv
ifeq ($(SCORE_EXAMPLES_DIR),)
$(error SCORE_EXAMPLES_DIR must be set)
endif
find ${SCORE_EXAMPLES_DIR} -name 'score*.yaml' -print -exec ${GOPATH}/bin/jv -assertformat -assertcontent ./score-v1b1.json {} \;

## Run all tests
.PHONY: test
test: test-schema test-examples
70 changes: 70 additions & 0 deletions schema/files/samples/score-full.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
apiVersion: score.dev/v1b1
metadata:
name: example-workload-name123
extra-key: extra-value
service:
ports:
port-one:
port: 1000
protocol: TCP
targetPort: 10000
port-two2:
port: 8000
containers:
container-one1:
image: localhost:4000/repo/my-image:tag
command: ["/bin/sh", "-c"]
args: ["hello", "world"]
resources:
requests:
cpu: 1000m
memory: 10Gi
limits:
cpu: "0.24"
memory: 128M
variables:
SOME_VAR: some content here
files:
- target: /my/file
mode: "0600"
source: file.txt
- target: /my/other/file
content: |
some multiline
content
volumes:
- source: volume-name
target: /mnt/something
path: /sub/path
readOnly: false
- source: volume-two
target: /mnt/something-else
livenessProbe:
httpGet:
port: 8080
path: /livez
readinessProbe:
httpGet:
host: 127.0.0.1
port: 80
scheme: HTTP
path: /readyz
httpHeaders:
- name: SOME_HEADER
value: some-value-here
container-two2:
image: .
resources:
resource-one1:
metadata:
annotations:
Default-Annotation: this is my annotation
prefix.com/Another-Key_Annotation.2: something else
extra-key: extra-value
type: Resource-One
class: default
params:
extra:
data: here
resource-two2:
type: Resource-Two
Loading

0 comments on commit 2b44195

Please sign in to comment.