From 341cc54389cba8c0b6e63e303047e3acf4e7704c Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Thu, 24 Sep 2020 23:10:32 -0500 Subject: [PATCH 01/15] Release v4.6.0 Initial --- README.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.rst b/README.rst index 7ddbfee9..1ea7cf03 100644 --- a/README.rst +++ b/README.rst @@ -39,3 +39,5 @@ sledgehammer-builder/ contains the Sledgehammer Builder content The extraneous directories and files (images, tools, .gitignore, etc.) are not part of the content packs. + +.. Release v4.6.0 Start From 7231d241db12e41f15ea3d6b512fc832830aa20b Mon Sep 17 00:00:00 2001 From: Rob Hirschfeld Date: Fri, 25 Sep 2020 11:01:59 -0500 Subject: [PATCH 02/15] refactor(task-library): update docker-contexts to use v4.5 cli --- .../docker-context/ansible-dockerfile | 5 +---- integrations/docker-context/runner-dockerfile | 7 ++----- .../docker-context/terraform-dockerfile | 7 ++----- integrations/docker-context/test-build.sh | 21 +++++++++++++++++++ 4 files changed, 26 insertions(+), 14 deletions(-) create mode 100755 integrations/docker-context/test-build.sh diff --git a/integrations/docker-context/ansible-dockerfile b/integrations/docker-context/ansible-dockerfile index 1ea418d1..6d7efc8d 100644 --- a/integrations/docker-context/ansible-dockerfile +++ b/integrations/docker-context/ansible-dockerfile @@ -28,11 +28,8 @@ RUN pip3 install --no-cache-dir --upgrade yq RUN pip3 install --no-cache-dir --upgrade mitogen boto3 # Linode RUN pip3 install --no-cache-dir --upgrade linode-api4 -RUN curl -o drpcli440 https://s3-us-west-2.amazonaws.com/rebar-catalog/drpcli/v4.4.0/amd64/linux/drpcli && \ - chmod 755 drpcli440 && \ - ./drpcli440 catalog item download drpcli to /usr/bin/drpcli && \ +RUN curl -o /usr/bin/drpcli https://s3-us-west-2.amazonaws.com/rebar-catalog/drpcli/v4.5.0/amd64/linux/drpcli && \ chmod 755 /usr/bin/drpcli && \ - rm drpcli440 && \ ln -s /usr/bin/drpcli /usr/bin/jq && \ ln -s /usr/bin/drpcli /usr/bin/drpjq && \ echo "Installed DRPCLI $(drpcli version)" diff --git a/integrations/docker-context/runner-dockerfile b/integrations/docker-context/runner-dockerfile index 2814bd3c..71355b3d 100644 --- a/integrations/docker-context/runner-dockerfile +++ b/integrations/docker-context/runner-dockerfile @@ -1,10 +1,7 @@ FROM alpine:latest RUN apk --no-cache add bash curl openssh-keygen -RUN curl -o drpcli440 https://s3-us-west-2.amazonaws.com/rebar-catalog/drpcli/v4.4.0/amd64/linux/drpcli && \ - chmod 755 drpcli440 && \ - ./drpcli440 catalog item download drpcli to /usr/bin/drpcli && \ - chmod 755 /usr/bin/drpcli && \ - rm drpcli440 && \ +RUN curl -o /usr/bin/drpcli https://s3-us-west-2.amazonaws.com/rebar-catalog/drpcli/v4.5.0/amd64/linux/drpcli && \ + chmod 755 /usr/bin/drpcli && \ ln -s /usr/bin/drpcli /usr/bin/jq && \ ln -s /usr/bin/drpcli /usr/bin/drpjq && \ echo "Installed DRPCLI $(drpcli version)" diff --git a/integrations/docker-context/terraform-dockerfile b/integrations/docker-context/terraform-dockerfile index eff15c84..566d64ac 100644 --- a/integrations/docker-context/terraform-dockerfile +++ b/integrations/docker-context/terraform-dockerfile @@ -1,10 +1,7 @@ FROM hashicorp/terraform:light RUN apk --no-cache add bash curl -RUN curl -o drpcli440 https://s3-us-west-2.amazonaws.com/rebar-catalog/drpcli/v4.4.0/amd64/linux/drpcli && \ - chmod 755 drpcli440 && \ - ./drpcli440 catalog item download drpcli to /usr/bin/drpcli && \ - chmod 755 /usr/bin/drpcli && \ - rm drpcli440 && \ +RUN curl -o /usr/bin/drpcli https://s3-us-west-2.amazonaws.com/rebar-catalog/drpcli/v4.5.0/amd64/linux/drpcli && \ + chmod 755 /usr/bin/drpcli && \ ln -s /usr/bin/drpcli /usr/bin/jq && \ ln -s /usr/bin/drpcli /usr/bin/drpjq && \ echo "Installed DRPCLI $(drpcli version)" diff --git a/integrations/docker-context/test-build.sh b/integrations/docker-context/test-build.sh new file mode 100755 index 00000000..ba9ff1dc --- /dev/null +++ b/integrations/docker-context/test-build.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# RackN Copyright 2019 +# Build Manager Demo + +set -e + +echo "Testing Container Build Process" + +files="$(ls *-dockerfile)" + +for f in $files; do + echo "Removing $f from docker images" + docker rmi digitalrebar-$f || true + echo "Building $f" + docker build -f $f -t digitalrebar-$f . +done + +echo "Checking Docker Images" +docker images digitalrebar-* + +echo "done" \ No newline at end of file From 372f61ea348d757732e8ea5c91d27d3485eb0116 Mon Sep 17 00:00:00 2001 From: Rob Hirschfeld Date: Sat, 26 Sep 2020 16:14:23 -0500 Subject: [PATCH 03/15] refactor(task-library): add debugging helper to ansible runner --- task-library/tasks/ansible-join-up.yaml | 11 ++++++++++- .../ansible-playbooks-test-playbook.yaml.tmpl | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/task-library/tasks/ansible-join-up.yaml b/task-library/tasks/ansible-join-up.yaml index a74bd96d..f303b2e8 100644 --- a/task-library/tasks/ansible-join-up.yaml +++ b/task-library/tasks/ansible-join-up.yaml @@ -44,6 +44,7 @@ Templates: remote_user: "{{ .Param "rsa/key-user" }}" connection: "ssh" gather_facts: false + debugger: {{ if .Param "rs-debug-enable" }}on_failed{{ else }}never{{ end }} become: true tasks: @@ -109,8 +110,16 @@ Templates: when: "'drpcli.service' not in services" EOF + {{ if .Param "rs-debug-enable" }} + echo "========= DEBUG output playbook =========" + cat join-up.yaml + echo "========= DEBUG output playbook =========" + {{ end }} + echo "Prevent the task list from restarting!" - drpcli machines set $RS_UUID param start-over to false + drpcli machines set $RS_UUID param start-over to false > /dev/null + + echo "REMINDER: SSH user, {{ .Param "rsa/key-user" }}, must be available on target o/s!" echo "Run Join-Up Playbook using $(ansible-playbook --version)" ansible-playbook \ diff --git a/task-library/templates/ansible-playbooks-test-playbook.yaml.tmpl b/task-library/templates/ansible-playbooks-test-playbook.yaml.tmpl index 50a6ce3d..2788ee3b 100644 --- a/task-library/templates/ansible-playbooks-test-playbook.yaml.tmpl +++ b/task-library/templates/ansible-playbooks-test-playbook.yaml.tmpl @@ -3,6 +3,7 @@ - hosts: all connection: local gather_facts: false + debugger: {{ if .Param "rs-debug-enable" }}on_failed{{ else }}never{{ end }} user: "{{ .Param "rsa/key-user" }}" vars: From 8bf17bdafda11cca707620bf31c0a69de0bc0778 Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Tue, 29 Sep 2020 14:55:12 -0500 Subject: [PATCH 04/15] doc: fix formatting issues for proxmox --- proxmox/content/._Documentation.meta | 4 ++-- proxmox/content/params/proxmox-flexiflow-buster-install.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/proxmox/content/._Documentation.meta b/proxmox/content/._Documentation.meta index c2d5fc91..33501d69 100644 --- a/proxmox/content/._Documentation.meta +++ b/proxmox/content/._Documentation.meta @@ -10,10 +10,10 @@ and rebuild it to make it network installable. Installation of Proxmox -======================= +----------------------- Installation is performed with the ``proxmox-buster-install`` Workflow. This workflow -requires the ``drp-community-content` to install Debian 10 (Buster) on the target +requires the ``drp-community-content`` to install Debian 10 (Buster) on the target systems. Configuration of Proxmox is performed via RackN Workflow stages. Please start by reviewing the provided workflow before attempting to rework the workflows for your use case. diff --git a/proxmox/content/params/proxmox-flexiflow-buster-install.yaml b/proxmox/content/params/proxmox-flexiflow-buster-install.yaml index e78530b2..7fa0d0ea 100644 --- a/proxmox/content/params/proxmox-flexiflow-buster-install.yaml +++ b/proxmox/content/params/proxmox-flexiflow-buster-install.yaml @@ -32,7 +32,7 @@ Documentation: | or similar constructs must be used to provide outbound network connectivity to the DRP Endpoints. - .. warning:: The ``network-add-nat-bridge` current NAT Masquerading mechanisms do not + .. warning:: The ``network-add-nat-bridge`` current NAT Masquerading mechanisms do not appear to correctly work reliably. This method requires additional testing and development. From 73a95a7f5b6fdd6ce393ef252e96cf31c7e7d05d Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Tue, 29 Sep 2020 15:11:29 -0500 Subject: [PATCH 05/15] doc: fix vmware-lib headers --- vmware-lib/content/._Documentation.meta | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/vmware-lib/content/._Documentation.meta b/vmware-lib/content/._Documentation.meta index 61187aa1..4da51b3d 100644 --- a/vmware-lib/content/._Documentation.meta +++ b/vmware-lib/content/._Documentation.meta @@ -5,7 +5,7 @@ environments. GoVC General Information -======================== +------------------------ GoVC is a Golang binary that implements the VMOMI library of capabilities. The primary benefit is it's a single statically compiled binary (stand alone) that has @@ -28,7 +28,7 @@ context container, please see: GoVC Context -++++++++++++ +============ The GoVC context implements a RackN Context Container with the Agent (runner, drpcli binary) and the ``govc`` compiled binary inside of it. By use of setting Param values, @@ -36,7 +36,7 @@ binary) and the ``govc`` compiled binary inside of it. By use of setting Param GoVC and VCSA Deployment -++++++++++++++++++++++++ +======================== VCSA (vCenter Server Appliance) can be deployed via the GoVC tool. The operator must perform the following preparotry tasks to enable the Context environment to operate @@ -102,7 +102,7 @@ Scripts referenced in this document should be available from: * https://github.com/digitalrebar/provision-content/tree/v4/vmware-lib vCenter Complete Note -+++++++++++++++++++++ +===================== If install vCenter 7.x - the ``govc`` connect URL method seems to have changed. AS of 2020/07/01 - the Stage ``govc-wait-for-vcenter`` will not complete successfully. @@ -114,7 +114,7 @@ Workflow from the Context Machine, or ignore the status stage error. Prepare the VCSA JSON Deployment Template -+++++++++++++++++++++++++++++++++++++++++ +========================================= The Param ``govc/template-json`` defines the name of a Template that you must provide with the configuration details for the deployed VCSA instance. This template can be a standard @@ -131,7 +131,7 @@ to execute the deployment to. Set these Params as defined in the below section. Define the Deployment Target -++++++++++++++++++++++++++++ +============================ You must define the vSphere deployment target (eg ESXi node) to deploy the VCSA OVA to. This is done by specifying the URL directly as a single Param, or the individual Param @@ -177,7 +177,7 @@ then add the Profile to the Context Machine that will deploy the vCenter VCSA OV Example GOVC Usage -================== +------------------ A (begining of) a collection of useful resources for understanding how to use ``govc`` to manage vSphere resources. From 2ec91da40a001d1f19bb5667bc6faf9d274f42b5 Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Sat, 26 Sep 2020 12:34:32 -0500 Subject: [PATCH 06/15] feat(classify): Extend classify to allow per stage style indirect parameters This now works like validation and uses parameter lookup if enabled by setting classify version to 2. This allows for multiple stages with different classification parameters for functions, data, and disable. --- .../params/classification-data-parameter.yaml | 14 +++++++ .../classification-disable-parameter.yaml | 15 ++++++++ .../classification-function-parameter.yaml | 16 ++++++++ classify/params/classification-version.yaml | 15 ++++++++ classify/stages/classify.yaml | 3 -- .../templates/classify-custom-functions.tmpl | 13 ++++++- classify/templates/classify.sh.tmpl | 38 +++++++++++++++++-- 7 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 classify/params/classification-data-parameter.yaml create mode 100644 classify/params/classification-disable-parameter.yaml create mode 100644 classify/params/classification-function-parameter.yaml create mode 100644 classify/params/classification-version.yaml diff --git a/classify/params/classification-data-parameter.yaml b/classify/params/classification-data-parameter.yaml new file mode 100644 index 00000000..13782cc1 --- /dev/null +++ b/classify/params/classification-data-parameter.yaml @@ -0,0 +1,14 @@ +--- +Name: "classify/data-parameter" +Description: "The name of the parameter to use for classification data" +Meta: + color: "blue" + icon: "search" + title: "RackN" +Documentation: | + This defines the name of a parameter that contains the classification data. + + The parameter should have the same type as classify/classification-data. + +Schema: + type: "string" diff --git a/classify/params/classification-disable-parameter.yaml b/classify/params/classification-disable-parameter.yaml new file mode 100644 index 00000000..156d4409 --- /dev/null +++ b/classify/params/classification-disable-parameter.yaml @@ -0,0 +1,15 @@ +--- +Name: "classify/disable-parameter" +Description: "The name of the parameter to use for disabling this classifier" +Meta: + color: "blue" + icon: "search" + title: "RackN" +Documentation: | + This defines the name of a parameter that defines if this classifer should + be skipped. + + The parameter should have the same type as classify/disable-classifier, boolean. + +Schema: + type: "string" diff --git a/classify/params/classification-function-parameter.yaml b/classify/params/classification-function-parameter.yaml new file mode 100644 index 00000000..76f41ef5 --- /dev/null +++ b/classify/params/classification-function-parameter.yaml @@ -0,0 +1,16 @@ +--- +Name: "classify/function-parameter" +Description: "The name of the parameter to use for classification functions" +Meta: + color: "blue" + icon: "search" + title: "RackN" +Documentation: | + This defines the name of a parameter that contains the list of classification + functions to add. + + The parameter should have the same type as classify/custom-functions, + a list of template names. + +Schema: + type: "string" diff --git a/classify/params/classification-version.yaml b/classify/params/classification-version.yaml new file mode 100644 index 00000000..63e17b44 --- /dev/null +++ b/classify/params/classification-version.yaml @@ -0,0 +1,15 @@ +--- +Name: "classify/version" +Description: "Indications what version of the classifier we use." +Documentation: | + This parameter defines the version of classifier to use. + Version 1 uses the normal parameters. Version 2 uses the parameter + name parameters to determine what to do. +Schema: + type: "number" + default: 1 +Meta: + type: "config" + color: "blue" + icon: "fire" + title: "RackN Content" \ No newline at end of file diff --git a/classify/stages/classify.yaml b/classify/stages/classify.yaml index 0cce3bf9..c1236925 100644 --- a/classify/stages/classify.yaml +++ b/classify/stages/classify.yaml @@ -17,8 +17,5 @@ Meta: color: "yellow" icon: "search" title: "RackN" -Reboot: false -RequiredParams: - - "classify/classification-data" Tasks: - "classify" diff --git a/classify/templates/classify-custom-functions.tmpl b/classify/templates/classify-custom-functions.tmpl index 40628c69..74443974 100644 --- a/classify/templates/classify-custom-functions.tmpl +++ b/classify/templates/classify-custom-functions.tmpl @@ -8,8 +8,18 @@ # classifer to provide custom function blocks to extend the tests you can # apply to the classifier +{{ $functParameter := "classify/custom-functions" }} +{{ if ne 1 (.Param "classify/version" | int) }} + {{ if .ParamExists "classify/function-parameter" }} + {{ $functParameter = .Param "classify/function-parameter" }} + {{ else }} + {{ $functParameter = "unknown-function-parameter" }} + {{ end }} +{{ end }} + +{{ if .ParamExists $functParameter }} {{ $dot := . -}} -{{range $index, $template := .Param "classify/custom-functions" -}} +{{range $index, $template := .Param $functParameter -}} ############################################################################# # injecting custom template: {{ squote $template }} @@ -17,5 +27,6 @@ # end injection of template: {{ squote $template }} {{ end -}} +{{ end }} ### end custom template injection ############################################################################# diff --git a/classify/templates/classify.sh.tmpl b/classify/templates/classify.sh.tmpl index ff22d073..cd9f20b6 100644 --- a/classify/templates/classify.sh.tmpl +++ b/classify/templates/classify.sh.tmpl @@ -9,9 +9,39 @@ set -e {{template "setup.tmpl" .}} [[ $RS_UUID ]] && export RS_UUID="{{.Machine.UUID}}" -DISABLE_CLASSIFIER="{{.Param "classify/disable-classifier"}}" +{{ $dataParameter := "classify/classification-data" }} +{{ $functionParameter := "classify/custom-functions" }} +{{ $disableParameter := "classify/disable-classifier" }} +DISABLE_CLASSIFIER="{{.Param $disableParameter}}" +{{ if ne 1 (.Param "classify/version" | int) }} + {{ if .ParamExists "classify/data-parameter" }} + {{ $dataParameter = .Param "classify/data-parameter" }} + {{ else }} + {{ $dataParameter = "unknown-data-parameter" }} + {{ end }} + + {{ if .ParamExists "classify/function-parameter" }} + {{ $functionParameter = .Param "classify/function-parameter" }} + {{ else }} + {{ $functionParameter = "unknown-function-parameter" }} + {{ end }} + + {{ if .ParamExists "classify/disable-parameter" }} + {{ $disableParameter = .Param "classify/disable-parameter" }} + {{ if .ParamExists $disableParameter }} + DISABLE_CLASSIFIER="{{ .Param $disableParameter }}" + {{ else }} + DISABLE_CLASSIFIER="false" + {{ end }} + {{ end }} +{{ end }} + +echo "Using data parameter: {{$dataParameter}}" +echo "Using function parameter: {{$functionParameter}}" +echo "Using disable parameter: {{$disableParameter}}" + if [[ "$DISABLE_CLASSIFIER" == "true" ]]; then - echo "Classification system disabled ('classify/disable-classifier' set to 'true')." + echo "Classification system disabled ('{{$disableParameter}}' set to 'true')." exit 0 fi @@ -128,7 +158,8 @@ function get_my_mac() { # if any custom classify functions are specified, inject them here {{ template "classify-custom-functions.tmpl" .}} -{{range $index, $group := .Param "classify/classification-data"}} +{{ if .ParamExists $dataParameter }} +{{range $index, $group := .Param $dataParameter }} [[ $RS_DEBUG_ENABLE ]] && echo ">>> INDEX: {{$index}}" [[ $RS_DEBUG_ENABLE ]] && echo ">>> GROUP: {{$group}}" @@ -151,6 +182,7 @@ if [[ $RESULT == "pass" ]] ; then exit 0 {{ end -}} fi +{{end}} {{else}} echo "No data to classify. Continuing without classification ..." From 6e9089897e4cc713a518fa7c5ee6a9a38c103043 Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Sat, 26 Sep 2020 14:10:16 -0500 Subject: [PATCH 07/15] feat(classify): Add classify stage lists This task allows for stages of classification to be added in sequence to allow for separate classification units. --- .../params/classify-stage-list-parameter.yaml | 15 +++++ classify/params/classify-stage-list.yaml | 17 ++++++ classify/stages/classify-stage-list.yaml | 18 ++++++ classify/tasks/classify-stage-list-start.yaml | 61 +++++++++++++++++++ classify/tasks/classify-stage-list-stop.yaml | 22 +++++++ 5 files changed, 133 insertions(+) create mode 100644 classify/params/classify-stage-list-parameter.yaml create mode 100644 classify/params/classify-stage-list.yaml create mode 100644 classify/stages/classify-stage-list.yaml create mode 100644 classify/tasks/classify-stage-list-start.yaml create mode 100644 classify/tasks/classify-stage-list-stop.yaml diff --git a/classify/params/classify-stage-list-parameter.yaml b/classify/params/classify-stage-list-parameter.yaml new file mode 100644 index 00000000..7ceefc2a --- /dev/null +++ b/classify/params/classify-stage-list-parameter.yaml @@ -0,0 +1,15 @@ +--- +Name: "classify/stage-list-parameter" +Description: "The name of the parameter to use to define a list of stages to inject" +Meta: + color: "blue" + icon: "search" + title: "RackN" +Documentation: | + This defines the name of a parameter that defines the list of classifaction stages + to add to the machine. + + The parameter should have the same type as classify/stage-list, array of strings. + +Schema: + type: "string" diff --git a/classify/params/classify-stage-list.yaml b/classify/params/classify-stage-list.yaml new file mode 100644 index 00000000..2a539df0 --- /dev/null +++ b/classify/params/classify-stage-list.yaml @@ -0,0 +1,17 @@ +--- +Name: "classify/stage-list" +Description: "A list of classify stages to added the machine" +Documentation: | + Use this Param to specify additional classify stages. + In general, this is an example and is used as a different parameter + through indirection. + +Meta: + color: "blue" + icon: "hashtag" + title: "RackN Content" +Schema: + type: "array" + default: [] + items: + type: "string" diff --git a/classify/stages/classify-stage-list.yaml b/classify/stages/classify-stage-list.yaml new file mode 100644 index 00000000..09979765 --- /dev/null +++ b/classify/stages/classify-stage-list.yaml @@ -0,0 +1,18 @@ +--- +Name: "classify-stage-list" +Description: "Adds stages to the machines task list to run multiple classifiers" +Documentation: | + This stages uses the ``classify/stage-list`` parameter to add classification stages + to the machine. + + To build custom sets of lists, you can extend this by changing the ``classify/stage-list-parameter``. + +Meta: + color: "yellow" + icon: "search" + title: "RackN" +Params: + classify/stage-list-parameter: "classify/stage-list" +Tasks: + - "classify-stage-list-start" + - "classify-stage-list-stop" diff --git a/classify/tasks/classify-stage-list-start.yaml b/classify/tasks/classify-stage-list-start.yaml new file mode 100644 index 00000000..2cd1b9cb --- /dev/null +++ b/classify/tasks/classify-stage-list-start.yaml @@ -0,0 +1,61 @@ +--- +Name: "classify-stage-list-start" +Description: "Start a set of classification stages on a machine" +Documentation: | + Using the parameter specified by the ``classify/stage-list-parameter``, the + stages specified in that list will be added to the system. This assumes that + they are classify stages and have a single task of classify. + No other tasks should preceed it on the stage, and the only other task that + should follow is the ``classify-stage-list-stop`` task. + + Tasks will be dynamically injected in to the workflow after this task, if they + have been specified by the appropriate control Params. + +Meta: + color: "blue" + icon: "bug" + title: "RackN Content" + feature-flags: "sane-exit-codes" +Templates: +- Name: "classify-stage-list-start.sh" + Contents: | + #!/bin/bash + # Copyright RackN, 2020 + + set -e + + {{ template "setup.tmpl" . }} + + {{ if eq (.ParamExists "classify/stage-list-parameter") false }} + echo "classify/stage-list-parameter is not specified" + exit 1 + {{ end }} + + {{ $lp := .Param "classify/stage-list-parameter" -}} + {{ if eq (.ParamExists $lp) false -}} + echo "classify/stage-list-parameter is {{$lp}} and it does not exist." + exit 1 + {{ end -}} + + # Build new task list - This is dangerous and not to be done without planning. + {{ $cid := add .Machine.CurrentTask 1 -}} + {{ $first := slice .Machine.Tasks 0 $cid -}} + {{ $seestop := 0 -}} + {{ range $index, $taskname := (slice .Machine.Tasks $cid) -}} + {{ if eq $taskname "classify-stage-list-stop" -}} + {{ $seestop = $index -}} + {{ end -}} + {{ end -}} + {{ $last := slice .Machine.Tasks (add $cid $seestop) -}} + {{ range $index, $stagename := .ComposeParam $lp -}} + {{ $first = append $first (printf "stage:%s" $stagename) -}} + {{ $first = append $first "classify" -}} + {{ end -}} + {{ $full := concat $first $last -}} + + # Reset the task list + drpcli machines update --force $RS_UUID - >/dev/null < Date: Fri, 2 Oct 2020 09:51:13 -0500 Subject: [PATCH 08/15] fix(validation): escape quotes in validation construction --- validation/tasks/validate-record-parameters.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/tasks/validate-record-parameters.yaml b/validation/tasks/validate-record-parameters.yaml index 7f0cad56..5c65b3b3 100644 --- a/validation/tasks/validate-record-parameters.yaml +++ b/validation/tasks/validate-record-parameters.yaml @@ -27,7 +27,7 @@ Templates: {{if eq $parm "inventory/CPUSpeed" }} JSONSTR="${JSONSTR}${COMMA} \"{{$parm}}\": { \"Op\": \"equal\", \"Values\": [ \"{{$.Param $parm}}\" ] }" {{ else }} - JSONSTR="${JSONSTR}${COMMA} \"{{$parm}}\": { \"Op\": \"equal\", \"Values\": [ {{$.ParamAsJSON $parm}} ] }" + JSONSTR="${JSONSTR}${COMMA} \"{{$parm}}\": { \"Op\": \"equal\", \"Values\": [ {{$.ParamAsJSON $parm | replace "\"" "\\\"" }} ] }" {{ end }} COMMA="," {{end}} From c0a56b8412cd8c22f238534136f867bcb0a0d587 Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Mon, 5 Oct 2020 12:25:07 -0500 Subject: [PATCH 09/15] feat(task-library): simple elasticsearch and kibana setup tasks and profiles --- .../profiles/elasticsearch-bootstrap.yaml | 11 ++++++ task-library/profiles/kibana-bootstrap.yaml | 11 ++++++ task-library/tasks/elasticsearch-setup.yaml | 35 +++++++++++++++++ task-library/tasks/kibana-setup.yaml | 39 +++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 task-library/profiles/elasticsearch-bootstrap.yaml create mode 100644 task-library/profiles/kibana-bootstrap.yaml create mode 100644 task-library/tasks/elasticsearch-setup.yaml create mode 100644 task-library/tasks/kibana-setup.yaml diff --git a/task-library/profiles/elasticsearch-bootstrap.yaml b/task-library/profiles/elasticsearch-bootstrap.yaml new file mode 100644 index 00000000..f04643c8 --- /dev/null +++ b/task-library/profiles/elasticsearch-bootstrap.yaml @@ -0,0 +1,11 @@ +Description: Profile to bootstrap elasticsearch +Documentation: Profile to bootstrap elasticsearch +Meta: + color: blue + icon: world + title: Digital Rebar Provision +Name: elasticsearch-bootstrap +Params: + universal/bootstrap-post-flexiflow: + - elasticsearch-setup + diff --git a/task-library/profiles/kibana-bootstrap.yaml b/task-library/profiles/kibana-bootstrap.yaml new file mode 100644 index 00000000..5bd54ef1 --- /dev/null +++ b/task-library/profiles/kibana-bootstrap.yaml @@ -0,0 +1,11 @@ +Description: Profile to bootstrap kibana +Documentation: Profile to bootstrap kibana +Meta: + color: blue + icon: world + title: Digital Rebar Provision +Name: kibana-bootstrap +Params: + universal/bootstrap-post-flexiflow: + - kibana-setup + diff --git a/task-library/tasks/elasticsearch-setup.yaml b/task-library/tasks/elasticsearch-setup.yaml new file mode 100644 index 00000000..4e6c254c --- /dev/null +++ b/task-library/tasks/elasticsearch-setup.yaml @@ -0,0 +1,35 @@ +--- +Name: "elasticsearch-setup" +Description: "A task to install and setup elasticsearch" +Documentation: | + A task to install and setup elasticsearch. This is a very simple single instance. +Templates: + - Name: "install-elasticsearch.sh" + Contents: | + #!/bin/bash + + {{ template "setup.tmpl" . }} + + if [[ "$OS_FAMILY" == "rhel" ]] ; then + curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-x86_64.rpm + rpm --install elasticsearch-7.9.2-x86_64.rpm + rm -f elasticsearch-7.9.2-x86_64.rpm + elif [[ "$OS_FAMILY" == "debian" ]] ; then + curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-amd64.deb + dpkg -i elasticsearch-7.9.2-amd64.deb + rm -f elasticsearch-7.9.2-amd64.deb + else + echo "Unknown install method for $OS_FAMILY" + exit 1 + fi + exit 0 + - Name: "start-elasticsearch.sh" + Contents: | + service enable elasticsearch + service restart elasticsearch + +Meta: + icon: "bug" + color: "green" + title: "RackN Content" + feature-flags: "sane-exit-codes" \ No newline at end of file diff --git a/task-library/tasks/kibana-setup.yaml b/task-library/tasks/kibana-setup.yaml new file mode 100644 index 00000000..dceb0f7a --- /dev/null +++ b/task-library/tasks/kibana-setup.yaml @@ -0,0 +1,39 @@ +--- +Name: "kibana-setup" +Description: "A task to install and setup kibana" +Documentation: | + A task to install and setup kibana. This is a very simple single instance. +Templates: + - Name: "install-kibana.sh" + Contents: | + #!/bin/bash + + {{ template "setup.tmpl" . }} + + if [[ "$OS_FAMILY" == "rhel" ]] ; then + curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-x86_64.rpm + rpm --install kibana-7.9.2-x86_64.rpm + rm -f kibana-7.9.2-x86_64.rpm + elif [[ "$OS_FAMILY" == "debian" ]] ; then + curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-amd64.deb + dpkg -i kibana-7.9.2-amd64.deb + rm -f kibana-7.9.2-amd64.deb + else + echo "Unknown install method for $OS_FAMILY" + exit 1 + fi + exit 0 + - Name: "The kabana config file" + Path: "/etc/kibana/kibana.yml" + Contents: | + server.host: "0.0.0.0" + - Name: "start-kibana.sh" + Contents: | + service enable kibana + service restart kibana + +Meta: + icon: "bug" + color: "green" + title: "RackN Content" + feature-flags: "sane-exit-codes" \ No newline at end of file From a20c964cb48106a77d5c371e2d51d10bdd5c92bd Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Mon, 5 Oct 2020 12:35:17 -0500 Subject: [PATCH 10/15] fix(task-library): remove and re-add the packages --- task-library/tasks/elasticsearch-setup.yaml | 2 ++ task-library/tasks/kibana-setup.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/task-library/tasks/elasticsearch-setup.yaml b/task-library/tasks/elasticsearch-setup.yaml index 4e6c254c..60a55a2e 100644 --- a/task-library/tasks/elasticsearch-setup.yaml +++ b/task-library/tasks/elasticsearch-setup.yaml @@ -12,10 +12,12 @@ Templates: if [[ "$OS_FAMILY" == "rhel" ]] ; then curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-x86_64.rpm + rpm -e elasticsearch || : rpm --install elasticsearch-7.9.2-x86_64.rpm rm -f elasticsearch-7.9.2-x86_64.rpm elif [[ "$OS_FAMILY" == "debian" ]] ; then curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-amd64.deb + dpkg -r elasticsearch || : dpkg -i elasticsearch-7.9.2-amd64.deb rm -f elasticsearch-7.9.2-amd64.deb else diff --git a/task-library/tasks/kibana-setup.yaml b/task-library/tasks/kibana-setup.yaml index dceb0f7a..e1b50d77 100644 --- a/task-library/tasks/kibana-setup.yaml +++ b/task-library/tasks/kibana-setup.yaml @@ -12,10 +12,12 @@ Templates: if [[ "$OS_FAMILY" == "rhel" ]] ; then curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-x86_64.rpm + rpm -e kibana || : rpm --install kibana-7.9.2-x86_64.rpm rm -f kibana-7.9.2-x86_64.rpm elif [[ "$OS_FAMILY" == "debian" ]] ; then curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-amd64.deb + dpkg -r kibana || : dpkg -i kibana-7.9.2-amd64.deb rm -f kibana-7.9.2-amd64.deb else From 0913619d793cf8be0386cc34edfe97617276c6fc Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Mon, 5 Oct 2020 16:54:28 -0500 Subject: [PATCH 11/15] fix(task-library): fix startup issues with kibana and elasticsearch --- task-library/tasks/elasticsearch-setup.yaml | 5 +++-- task-library/tasks/kibana-setup.yaml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/task-library/tasks/elasticsearch-setup.yaml b/task-library/tasks/elasticsearch-setup.yaml index 60a55a2e..297a4b7b 100644 --- a/task-library/tasks/elasticsearch-setup.yaml +++ b/task-library/tasks/elasticsearch-setup.yaml @@ -27,8 +27,9 @@ Templates: exit 0 - Name: "start-elasticsearch.sh" Contents: | - service enable elasticsearch - service restart elasticsearch + #!/bin/bash + service elasticsearch enable + service elasticsearch restart Meta: icon: "bug" diff --git a/task-library/tasks/kibana-setup.yaml b/task-library/tasks/kibana-setup.yaml index e1b50d77..3bb24c77 100644 --- a/task-library/tasks/kibana-setup.yaml +++ b/task-library/tasks/kibana-setup.yaml @@ -31,8 +31,9 @@ Templates: server.host: "0.0.0.0" - Name: "start-kibana.sh" Contents: | - service enable kibana - service restart kibana + #!/bin/bash + service kibana enable + service kibana restart Meta: icon: "bug" From 14f896d5b85afd7d6d8601d2e922652bef2cce73 Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Tue, 6 Oct 2020 12:19:25 -0500 Subject: [PATCH 12/15] fix(task-library): Rename profiles and deprecate things --- task-library/profiles/bootstrap-contexts.yaml | 19 +++++++++++++++++++ ...trap.yaml => bootstrap-elasticsearch.yaml} | 2 +- ...a-bootstrap.yaml => bootstrap-kibana.yaml} | 2 +- task-library/stages/bootstrap-advanced.yaml | 1 + .../workflows/bootstrap-advanced.yaml | 2 ++ 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 task-library/profiles/bootstrap-contexts.yaml rename task-library/profiles/{elasticsearch-bootstrap.yaml => bootstrap-elasticsearch.yaml} (88%) rename task-library/profiles/{kibana-bootstrap.yaml => bootstrap-kibana.yaml} (90%) diff --git a/task-library/profiles/bootstrap-contexts.yaml b/task-library/profiles/bootstrap-contexts.yaml new file mode 100644 index 00000000..39aaa33e --- /dev/null +++ b/task-library/profiles/bootstrap-contexts.yaml @@ -0,0 +1,19 @@ +Description: Profile to bootstrap contexts +Documentation: | + Bootstrap Digital Rebar server for advanced operation + + * Context Operations + * Installs Docker and downloads context containers + * Locks the endpoint to prevent accidential operations + + This is designed to be extended or replaced with a site specific bootstrap + that uses the base tasks but performs additional bootstrapping. +Meta: + color: blue + icon: world + title: Digital Rebar Provision +Name: bootstrap-contexts +Params: + universal/bootstrap-post-flexiflow: + - bootstrap-contexts + - lock-machine diff --git a/task-library/profiles/elasticsearch-bootstrap.yaml b/task-library/profiles/bootstrap-elasticsearch.yaml similarity index 88% rename from task-library/profiles/elasticsearch-bootstrap.yaml rename to task-library/profiles/bootstrap-elasticsearch.yaml index f04643c8..5dd48750 100644 --- a/task-library/profiles/elasticsearch-bootstrap.yaml +++ b/task-library/profiles/bootstrap-elasticsearch.yaml @@ -4,7 +4,7 @@ Meta: color: blue icon: world title: Digital Rebar Provision -Name: elasticsearch-bootstrap +Name: bootstrap-elasticsearch Params: universal/bootstrap-post-flexiflow: - elasticsearch-setup diff --git a/task-library/profiles/kibana-bootstrap.yaml b/task-library/profiles/bootstrap-kibana.yaml similarity index 90% rename from task-library/profiles/kibana-bootstrap.yaml rename to task-library/profiles/bootstrap-kibana.yaml index 5bd54ef1..6c18bfc4 100644 --- a/task-library/profiles/kibana-bootstrap.yaml +++ b/task-library/profiles/bootstrap-kibana.yaml @@ -4,7 +4,7 @@ Meta: color: blue icon: world title: Digital Rebar Provision -Name: kibana-bootstrap +Name: bootstrap-kibana Params: universal/bootstrap-post-flexiflow: - kibana-setup diff --git a/task-library/stages/bootstrap-advanced.yaml b/task-library/stages/bootstrap-advanced.yaml index cafaec75..108a1056 100644 --- a/task-library/stages/bootstrap-advanced.yaml +++ b/task-library/stages/bootstrap-advanced.yaml @@ -2,6 +2,7 @@ Name: "bootstrap-advanced" Description: "Bootstrap Advanced Install" Documentation: | + DEPRECATED: Use unversal-bootstrap with the bootstrap-contexts profile Bootstrap stage to build out an advanced setup This augments the bootstrap-base. It does NOT replace it. diff --git a/task-library/workflows/bootstrap-advanced.yaml b/task-library/workflows/bootstrap-advanced.yaml index cc848bd2..2d4abf19 100644 --- a/task-library/workflows/bootstrap-advanced.yaml +++ b/task-library/workflows/bootstrap-advanced.yaml @@ -1,6 +1,8 @@ Name: "bootstrap-advanced" Description: "Bootstrap Advanced Install" Documentation: | + DEPRECATED: Use universal-bootstrap with bootstrap-contexts profile + Bootstrap Digital Rebar server for advanced operation Includes the bootstrap-base! From 4abc3ecc95878014966bee4c27b7a9eb6bd0875f Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Fri, 9 Oct 2020 11:58:25 -0500 Subject: [PATCH 13/15] fix(task-library): elk should use repo install --- task-library/tasks/elasticsearch-setup.yaml | 41 ++++++++++++++++----- task-library/tasks/kibana-setup.yaml | 40 +++++++++++++++----- 2 files changed, 63 insertions(+), 18 deletions(-) diff --git a/task-library/tasks/elasticsearch-setup.yaml b/task-library/tasks/elasticsearch-setup.yaml index 297a4b7b..f4f93d52 100644 --- a/task-library/tasks/elasticsearch-setup.yaml +++ b/task-library/tasks/elasticsearch-setup.yaml @@ -11,15 +11,36 @@ Templates: {{ template "setup.tmpl" . }} if [[ "$OS_FAMILY" == "rhel" ]] ; then - curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-x86_64.rpm - rpm -e elasticsearch || : - rpm --install elasticsearch-7.9.2-x86_64.rpm - rm -f elasticsearch-7.9.2-x86_64.rpm + rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch + + REPODIR=/etc/yum.repos.d/ + if [[ -e /etc/zypp/repos.d ]] ; then + REPODIR=/etc/zypp/repos.d + fi + + cat > $REPODIR/elastic.repo </dev/null ; then + zypper install -y elasticsearch + elif which dnf 2>/dev/null ; then + dnf install -y elasticsearch + else + yum install -y elasticsearch + fi elif [[ "$OS_FAMILY" == "debian" ]] ; then - curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-amd64.deb - dpkg -r elasticsearch || : - dpkg -i elasticsearch-7.9.2-amd64.deb - rm -f elasticsearch-7.9.2-amd64.deb + wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - + apt-get install -y apt-transport-https + echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list + apt-get update && apt-get install -y elasticsearch else echo "Unknown install method for $OS_FAMILY" exit 1 @@ -28,6 +49,8 @@ Templates: - Name: "start-elasticsearch.sh" Contents: | #!/bin/bash + + /bin/systemctl daemon-reload service elasticsearch enable service elasticsearch restart @@ -35,4 +58,4 @@ Meta: icon: "bug" color: "green" title: "RackN Content" - feature-flags: "sane-exit-codes" \ No newline at end of file + feature-flags: "sane-exit-codes" diff --git a/task-library/tasks/kibana-setup.yaml b/task-library/tasks/kibana-setup.yaml index 3bb24c77..f4a19130 100644 --- a/task-library/tasks/kibana-setup.yaml +++ b/task-library/tasks/kibana-setup.yaml @@ -11,15 +11,36 @@ Templates: {{ template "setup.tmpl" . }} if [[ "$OS_FAMILY" == "rhel" ]] ; then - curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-x86_64.rpm - rpm -e kibana || : - rpm --install kibana-7.9.2-x86_64.rpm - rm -f kibana-7.9.2-x86_64.rpm + rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch + + REPODIR=/etc/yum.repos.d/ + if [[ -e /etc/zypp/repos.d ]] ; then + REPODIR=/etc/zypp/repos.d + fi + + cat > $REPODIR/elastic.repo </dev/null ; then + zypper install -y kibana + elif which dnf 2>/dev/null ; then + dnf install -y kibana + else + yum install -y kibana + fi elif [[ "$OS_FAMILY" == "debian" ]] ; then - curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-amd64.deb - dpkg -r kibana || : - dpkg -i kibana-7.9.2-amd64.deb - rm -f kibana-7.9.2-amd64.deb + wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - + apt-get install -y apt-transport-https + echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list + apt-get update && apt-get install -y kibana else echo "Unknown install method for $OS_FAMILY" exit 1 @@ -32,6 +53,7 @@ Templates: - Name: "start-kibana.sh" Contents: | #!/bin/bash + /bin/systemctl daemon-reload service kibana enable service kibana restart @@ -39,4 +61,4 @@ Meta: icon: "bug" color: "green" title: "RackN Content" - feature-flags: "sane-exit-codes" \ No newline at end of file + feature-flags: "sane-exit-codes" From 21209ee9f18d4688dbeb481b108f9a48956f93c8 Mon Sep 17 00:00:00 2001 From: Manuel Torrinha Date: Tue, 13 Oct 2020 15:51:04 +0100 Subject: [PATCH 14/15] Fixes go template syntax The checker since go v1.14 clashes with the way the condition was previously declared. Signed-off-by: Manuel Torrinha --- .../content/templates/chef-bootstrap-configure.sh.tmpl | 2 +- .../templates/chef-bootstrap.etc.encrypted.data.bag.secret.tmpl | 2 +- .../content/templates/chef-bootstrap.etc.first-boot.json.tmpl | 2 +- .../content/templates/chef-bootstrap.etc.user.pem.tmpl | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/chef-bootstrap/content/templates/chef-bootstrap-configure.sh.tmpl b/chef-bootstrap/content/templates/chef-bootstrap-configure.sh.tmpl index 82fe3ba9..a539f748 100644 --- a/chef-bootstrap/content/templates/chef-bootstrap-configure.sh.tmpl +++ b/chef-bootstrap/content/templates/chef-bootstrap-configure.sh.tmpl @@ -7,7 +7,7 @@ /bin/mkdir -p /var/log/chef # Make sure we have a node name -{{if not (.ParamExists "chef-bootstrap/node_name")}} +{{ if not (.ParamExists "chef-bootstrap/node_name") }} drpcli machines set {{.Machine.UUID}} param "chef-bootstrap/node_name" to "$(hostname -f )" {{end}} diff --git a/chef-bootstrap/content/templates/chef-bootstrap.etc.encrypted.data.bag.secret.tmpl b/chef-bootstrap/content/templates/chef-bootstrap.etc.encrypted.data.bag.secret.tmpl index 4dcfc2cf..63b55f4f 100644 --- a/chef-bootstrap/content/templates/chef-bootstrap.etc.encrypted.data.bag.secret.tmpl +++ b/chef-bootstrap/content/templates/chef-bootstrap.etc.encrypted.data.bag.secret.tmpl @@ -1 +1 @@ -{{if .ParamExists "chef-bootstrap/encrypted_data_bag_secret"}}{{.Param "chef-bootstrap/encrypted_data_bag_secret"}}{{end}} \ No newline at end of file +{{ if .ParamExists "chef-bootstrap/encrypted_data_bag_secret" }}{{.Param "chef-bootstrap/encrypted_data_bag_secret"}}{{ end }} \ No newline at end of file diff --git a/chef-bootstrap/content/templates/chef-bootstrap.etc.first-boot.json.tmpl b/chef-bootstrap/content/templates/chef-bootstrap.etc.first-boot.json.tmpl index ff502fd7..a9019ece 100644 --- a/chef-bootstrap/content/templates/chef-bootstrap.etc.first-boot.json.tmpl +++ b/chef-bootstrap/content/templates/chef-bootstrap.etc.first-boot.json.tmpl @@ -1,6 +1,6 @@ {{ if .ParamExists "chef-bootstrap/first_boot" }} {{.Param "chef-bootstrap/first_boot"}} -{{ else if and .ParamExists "chef-bootstrap/policy_name" .ParamExists "chef-bootstrap/policy_group" }} +{{ else if and (.ParamExists "chef-bootstrap/policy_name") (.ParamExists "chef-bootstrap/policy_group") }} { "policy_group": "{{.Param "chef-bootstrap/policy_group"}}", "policy_name": "{{.Param "chef-bootstrap/policy_name"}}" diff --git a/chef-bootstrap/content/templates/chef-bootstrap.etc.user.pem.tmpl b/chef-bootstrap/content/templates/chef-bootstrap.etc.user.pem.tmpl index 0e7c6248..e9fae14b 100644 --- a/chef-bootstrap/content/templates/chef-bootstrap.etc.user.pem.tmpl +++ b/chef-bootstrap/content/templates/chef-bootstrap.etc.user.pem.tmpl @@ -1 +1 @@ -{{.Param "chef-bootstrap/user_key"}} \ No newline at end of file +{{ .Param "chef-bootstrap/user_key" }} \ No newline at end of file From cca6260d4f81fb5a111b2ca97a3ede8ec10f0509 Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Wed, 14 Oct 2020 10:19:26 -0500 Subject: [PATCH 15/15] build: update to v4.5.1 --- go.mod | 2 +- go.sum | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 7bc77c12..2778a9c2 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/BurntSushi/toml v0.3.1 // indirect - github.com/digitalrebar/provision/v4 v4.5.0 // indirect + github.com/digitalrebar/provision/v4 v4.5.1 // indirect github.com/stevenroose/remarshal v0.0.0-20160825110430-37e7cbf22025 // indirect gopkg.in/yaml.v2 v2.3.0 // indirect ) diff --git a/go.sum b/go.sum index 09c72e02..836de4a4 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,3 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= @@ -22,8 +21,8 @@ github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e h1:vUmf0yez github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e/go.mod h1:YTIHhz/QFSYnu/EhlF2SpU2Uk+32abacUYA5ZPljz1A= github.com/digitalrebar/logger v0.3.0 h1:7/XP3BQiWfl1Lqmm7tvkvdwjPilDUUPC/iWbeWO9G6g= github.com/digitalrebar/logger v0.3.0/go.mod h1:zH2t4FBhzVxZJTg+eaPzNCRL50nlcRLxWurfTsl5jWE= -github.com/digitalrebar/provision/v4 v4.5.0 h1:o9lx4DR0OEkAbz2TfLu+EqPYrqlTu8erHkNDgEHCTPg= -github.com/digitalrebar/provision/v4 v4.5.0/go.mod h1:6RVCvHA0zLLX+H0ykzoo4maLhSQ1LYHkR/wZcfO46Us= +github.com/digitalrebar/provision/v4 v4.5.1 h1:hgrURSBYfFLaucwbBq4B+HpzaYr8JJjz6CSa2rCZuc4= +github.com/digitalrebar/provision/v4 v4.5.1/go.mod h1:7Unaxd18JfzaxibzzUgBDFOVex6U8HZ1AmDPvGQszuY= github.com/digitalrebar/tftp v2.1.0+incompatible h1:CzBcnsUaMtdLSOf3dSycinnfpajAAro7l8oo/ILyzOI= github.com/digitalrebar/tftp v2.1.0+incompatible/go.mod h1:k1tcsyQwHE72oTU5sfXPJdOCHFiZUt3M2BdYdHsfw6c= github.com/digitalrebar/tftp/v3 v3.0.0 h1:Ft2i3s2gCZ795rISs9vlcy3YSqfd6mtodxGoUcPSrhs= @@ -108,7 +107,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/rackn/gohai v0.0.0-20190619164647-92918a701117/go.mod h1:1NhfVxJ6qD4S5ondz2CobWFiYlODF8ex4pNgQrKYCxc= github.com/rackn/gohai v0.5.0 h1:W56MFkYUpHkzl6RhffVjcuH9wJHLcBHMIKA4U+xnOm4= github.com/rackn/gohai v0.5.0/go.mod h1:L14W5Y4U9zycW/zJlbg75nVbrO6qWj80FWHjiCgxnag= -github.com/rackn/netwrangler v0.7.0/go.mod h1:1ZvFAprvzdbIZ/kMYh90tLMGsK4U31YqrAsKNIUEqls= +github.com/rackn/netwrangler v0.7.1/go.mod h1:hGj63TX3L7BRiZVZ3jIIsKTwy78VIpDHCoe1tkk//xI= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM= github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= @@ -119,7 +118,6 @@ github.com/spf13/cobra v0.0.4-0.20180722215644-7c4570c3ebeb h1:l8xMeTl9t6JKC/dA1 github.com/spf13/cobra v0.0.4-0.20180722215644-7c4570c3ebeb/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/stevenroose/remarshal v0.0.0-20160825110430-37e7cbf22025 h1:7wJkExq7a8hs4thauj7otgYQD+zzmxWickV8uxpkJYY= github.com/stevenroose/remarshal v0.0.0-20160825110430-37e7cbf22025/go.mod h1:hy8+qmjgBi7BCVwCLsE3nwNHNjEjAMVfdTKvykMrbcA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=