diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e954590 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +*.tgz + +*.pivotal +.DS_Store diff --git a/bake.sh b/bake.sh new file mode 100755 index 0000000..40c28d4 --- /dev/null +++ b/bake.sh @@ -0,0 +1,21 @@ +ver="$(cat version)" +ver=$((ver+1)) +VERSTR="0.0.1-build.${ver}" +export PRODUCT_NAME="concourse-worker-${VERSTR}.pivotal" +echo "Baking Version ${VERSTR}" +echo "${ver}" > version + +kiln bake \ + --version $VERSTR \ + --metadata base.yml \ + --forms-directory forms \ + --properties-directory properties \ + --releases-directory releases \ + --instance-groups-directory instance_groups \ + --jobs-directory jobs \ + --stemcells-directory stemcell \ + --icon icon.png \ + --output-file "${PRODUCT_NAME}" + +#om -k upload-product -p "${PRODUCT_NAME}" +#om -k stage-product -p control-plane -v "${VERSTR}" \ No newline at end of file diff --git a/base.yml b/base.yml new file mode 100644 index 0000000..ed4be88 --- /dev/null +++ b/base.yml @@ -0,0 +1,37 @@ +--- +name: concourse-workers +label: Concourse External Workers +description: Concourse External Workers + +metadata_version: "2.2" +minimum_version_for_upgrade: 0.0 +product_version: $( version ) + +icon_image: $( icon ) + +rank: 90 +serial: false + +stemcell_criteria: $( stemcell ) + +releases: +- $( release "concourse" ) +- $( release "garden-runc" ) + +form_types: +- $( form "tsa" ) +- $( form "worker" ) + +job_types: +- $( instance_group "worker" ) + +property_blueprints: +- $( property "tsa_host_key" ) +- $( property "worker_key" ) +- $( property "tsa_endpoint" ) +- $( property "tsa_port" ) +- $( property "worker_tag" ) + + + + diff --git a/forms/tsa.yml b/forms/tsa.yml new file mode 100644 index 0000000..4fe04a6 --- /dev/null +++ b/forms/tsa.yml @@ -0,0 +1,20 @@ +--- +- name: tsa + label: 'TSA' + description: 'Control Plane TSA' + property_inputs: + - reference: .properties.tsa_host_key + label: 'TSA Host Public Key' + description: 'Configure TSA Host Public Key' + - reference: .properties.worker_key + label: 'Worker Key' + description: '... worker key' + - reference: .properties.tsa_endpoint + label: 'TSA Endpoint' + description: 'IP address or endpoint' + placeholder: tsa.example.com + - reference: .properties.tsa_port + label: 'TSA Port' + description: 'TSA Port' + placeholder: 2222 + \ No newline at end of file diff --git a/forms/worker.yml b/forms/worker.yml new file mode 100644 index 0000000..c5799a3 --- /dev/null +++ b/forms/worker.yml @@ -0,0 +1,13 @@ +--- +name: worker +label: Worker +description: | + Sets the worker configuration +markdown: | + ### What is this? + +property_inputs: +- reference: .properties.worker_tag + label: 'Worker Tag' + description: 'Concourse tag to assign to the workers' + placeholder: sandbox diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c8fbac1 Binary files /dev/null and b/icon.png differ diff --git a/instance_groups/worker.yml b/instance_groups/worker.yml new file mode 100644 index 0000000..0da255c --- /dev/null +++ b/instance_groups/worker.yml @@ -0,0 +1,51 @@ +name: worker +label: Concourse Worker VM +resource_label: Concourse Worker VM +description: Runs your concourse jobs +templates: +- $( job "worker" ) +- $( job "garden" ) +- $( job "baggageclaim" ) + +resource_definitions: +- name: cpu + type: integer + label: CPU + configurable: true + default: 2 + constraints: + min: 2 + +- name: ram + type: integer + label: RAM + configurable: true + default: 8192 + constraints: + min: 8192 + +- name: ephemeral_disk + type: integer + label: Ephemeral Disk + configurable: true + default: 10240 + constraints: + min: 10240 + +- name: persistent_disk + type: integer + label: Persistent Disk + configurable: false + default: 0 + +max_in_flight: 1 +single_az_only: false + +instance_definition: + name: instances + type: integer + label: Instances + configurable: true + default: 1 + constraints: + min: 0 diff --git a/jobs/baggageclaim.yml b/jobs/baggageclaim.yml new file mode 100644 index 0000000..2bd74b7 --- /dev/null +++ b/jobs/baggageclaim.yml @@ -0,0 +1,6 @@ +--- +name: baggageclaim +release: concourse +provides: | + baggageclaim: + as: worker-baggageclaim \ No newline at end of file diff --git a/jobs/garden.yml b/jobs/garden.yml new file mode 100644 index 0000000..b2e5717 --- /dev/null +++ b/jobs/garden.yml @@ -0,0 +1,8 @@ +--- +name: garden +release: garden-runc +manifest: | + garden: + forward_address: 127.0.0.1:7777 + listen_network: tcp + listen_address: 127.0.0.1:7777 \ No newline at end of file diff --git a/jobs/worker.yml b/jobs/worker.yml new file mode 100644 index 0000000..67774da --- /dev/null +++ b/jobs/worker.yml @@ -0,0 +1,21 @@ +--- +name: worker +release: concourse +consumes: | + baggagclaim: + from: worker-baggageclaim +manifest: | + drain_timeout: 10m + tags: [(( .properties.worker_tag.value ))] + tsa: + worker_key: + private_key: (( .properties.worker_key.value )) + host: (( .properties.tsa_endpoint.value )) + port: (( .properties.tsa_port.value )) + host_public_key: (( .properties.tsa_host_key.value )) + registration_mode: forward + garden: + address: 127.0.0.1:7777 + forward_address: 127.0.0.1:7777 + baggageclaim: + forward_address: 127.0.0.1:7788 \ No newline at end of file diff --git a/properties/tsa.yml b/properties/tsa.yml new file mode 100644 index 0000000..346cce0 --- /dev/null +++ b/properties/tsa.yml @@ -0,0 +1,22 @@ +--- +- name: tsa_host_key + type: string + configurable: true + optional: false + +- name: worker_key + type: text + configurable: true + optional: false + +- name: tsa_endpoint + type: domain + configurable: true + optional: false + +- name: tsa_port + type: port + configurable: true + optional: false + + diff --git a/properties/worker.yml b/properties/worker.yml new file mode 100644 index 0000000..24da31e --- /dev/null +++ b/properties/worker.yml @@ -0,0 +1,6 @@ +--- +- name: worker_tag + type: string + configurable: true + optional: false + default: sandbox_worker \ No newline at end of file diff --git a/version b/version new file mode 100644 index 0000000..aabe6ec --- /dev/null +++ b/version @@ -0,0 +1 @@ +21