From 384e727ebd55c1c5f32e863ec5aa71ea6f31e76b Mon Sep 17 00:00:00 2001 From: Giles Date: Wed, 19 Aug 2020 21:35:47 +0100 Subject: [PATCH] ci: building with library jsonnet --- .drone/drone-home.jsonnet | 9 +-- .drone/drone-home.yml | 14 ++++- .drone/lib/build.libsonnet | 21 ------- .drone/lib/deploy.libsonnet | 102 ---------------------------------- .drone/lib/images.libsonnet | 38 ------------- .drone/lib/settings.libsonnet | 11 ---- .drone/lib/util.libsonnet | 18 ------ .drone/package.json | 3 +- .drone/yarn-error.log | 40 +++++++++---- .drone/yarn.lock | 8 +++ .gitignore | 2 +- yarn.lock | 18 ++++++ 12 files changed, 73 insertions(+), 211 deletions(-) delete mode 100644 .drone/lib/build.libsonnet delete mode 100644 .drone/lib/deploy.libsonnet delete mode 100644 .drone/lib/images.libsonnet delete mode 100644 .drone/lib/settings.libsonnet delete mode 100644 .drone/lib/util.libsonnet diff --git a/.drone/drone-home.jsonnet b/.drone/drone-home.jsonnet index e3b001a..5a006d3 100644 --- a/.drone/drone-home.jsonnet +++ b/.drone/drone-home.jsonnet @@ -1,11 +1,8 @@ -local build = import 'lib/build.libsonnet'; -local images = import 'lib/images.libsonnet'; -local environment = import 'node_modules/@sigyl/jsonnet-drone-environment/environment.libsonnet'; -local compose = import 'node_modules/@sigyl/jsonnet-compose/compose.libsonnet'; + local secretSecrets = import 'lib/secret-secrets.libsonnet'; local publicSecrets = import 'lib/public-secrets.libsonnet'; -local util = import 'lib/util.libsonnet'; -local deploy = import 'lib/deploy.libsonnet'; + +local deploy = import 'node_modules/@sigyl/jsonnet-drone/deploy.libsonnet'; [ deploy( 'guacamole', diff --git a/.drone/drone-home.yml b/.drone/drone-home.yml index cee5694..f7bbf3b 100644 --- a/.drone/drone-home.yml +++ b/.drone/drone-home.yml @@ -18,8 +18,12 @@ steps: - drone_repo_name - drone_repo_namespace - local_docker_registry + - registry_password + - local_docker_registry - guacamole_postgres_db - guacamole_postgres_user + - guacamole_postgres_password + - registry_password host: from_secret: ssh-host key: @@ -29,17 +33,25 @@ steps: script: - rm -f env-guacamole - "echo \"export LOCAL_DOCKER_REGISTRY='$${LOCAL_DOCKER_REGISTRY}'\" >> env-guacamole # \"local-docker-registry\"" + - "echo \"export REGISTRY_PASSWORD='$${REGISTRY_PASSWORD}'\" >> env-guacamole # \"registry-password\"" + - "echo \"export LOCAL_DOCKER_REGISTRY='$${LOCAL_DOCKER_REGISTRY}'\" >> env-guacamole # \"local-docker-registry\"" - "echo \"export GUACAMOLE_POSTGRES_DB='$${GUACAMOLE_POSTGRES_DB}'\" >> env-guacamole # \"guacamole-postgres-db\"" - "echo \"export GUACAMOLE_POSTGRES_USER='$${GUACAMOLE_POSTGRES_USER}'\" >> env-guacamole # \"guacamole-postgres-user\"" + - "echo \"export GUACAMOLE_POSTGRES_PASSWORD='$${GUACAMOLE_POSTGRES_PASSWORD}'\" >> env-guacamole # \"guacamole-postgres-password\"" + - "echo \"export REGISTRY_PASSWORD='$${REGISTRY_PASSWORD}'\" >> env-guacamole # \"registry-password\"" username: from_secret: ssh-user environment: GUACAMOLE_POSTGRES_DB: from_secret: guacamole-postgres-db + GUACAMOLE_POSTGRES_PASSWORD: + from_secret: guacamole-postgres-password GUACAMOLE_POSTGRES_USER: from_secret: guacamole-postgres-user LOCAL_DOCKER_REGISTRY: from_secret: local-docker-registry + REGISTRY_PASSWORD: + from_secret: registry-password - name: scp image: appleboy/drone-scp:1.6.2 @@ -79,7 +91,7 @@ steps: - name: dockersock path: /var/run -- name: deploy stack +- name: deploy image: appleboy/drone-ssh:1.6.2 settings: envs: diff --git a/.drone/lib/build.libsonnet b/.drone/lib/build.libsonnet deleted file mode 100644 index 0020d62..0000000 --- a/.drone/lib/build.libsonnet +++ /dev/null @@ -1,21 +0,0 @@ -local images = import 'images.libsonnet'; -local environment = import '../node_modules/@sigyl/jsonnet-drone-environment/environment.libsonnet'; - -function(secrets) - images.docker { - name +: 'build:', - environment +: environment.environmentSecrets(secrets), - volumes: [ - { - name: 'dockersock', - path: '/var/run', - }, - ], - commands: [ - 'set -e', - 'sh .drone/login.sh', - 'sh .drone/build.sh', - 'sh .drone/push.sh', - 'sh .drone/logout.sh', - ], - } \ No newline at end of file diff --git a/.drone/lib/deploy.libsonnet b/.drone/lib/deploy.libsonnet deleted file mode 100644 index 8868300..0000000 --- a/.drone/lib/deploy.libsonnet +++ /dev/null @@ -1,102 +0,0 @@ -local build = import 'build.libsonnet'; -local images = import 'images.libsonnet'; -local environment = import '../node_modules/@sigyl/jsonnet-drone-environment/environment.libsonnet'; -local compose = import '../node_modules/@sigyl/jsonnet-compose/compose.libsonnet'; -local util = import 'util.libsonnet'; - -function( - name, - root, - buildSecrets, - publicSecrets, - secretSecrets -) - { - kind: 'pipeline', - type: 'docker', - name: 'deploy', - clone: { - disable: false, - depth: 0, - }, - services: [ - images.docker { - privileged: true, - volumes: [ - { - name: 'dockersock', - path: '/var/run', - }, - { - name: 'ca', - path: '/etc/docker/certs.d', - }, - ], - }, - ], - volumes: [ - { - name: 'dockersock', - temp: {}, - }, - { - name: 'ca', - host: { - path: '/etc/docker/certs.d', - }, - }, - ], - steps:[ - compose( - std.map( - function(secret) util.printEnv('env-%s' % name, secret), - publicSecrets, - ) - ) - ( - images.ssh { - settings +: { - script: [ - 'rm -f env-%s' % name, - ], - }, - }, - ) { - name: 'print env', - }, - images.scp( - '%(root)s%(name)s' % { root: root, name: name } - ), - images.wait(15), - build(buildSecrets), - compose( - std.map( - function(secret) environment.envSet(secret), - publicSecrets + secretSecrets, - ), - )( - images.ssh { - name: 'deploy stack', - settings +: { - script +: - std.map( - function(secret) - 'export %(env)s=$${%(env)s}' % { - env: environment.environment(secret) - }, - secretSecrets + publicSecrets, - ) + - [ - 'set -e', - 'cd %(root)s%(name)s' % { root: root, name: name }, - 'sh .drone/login.sh', - 'sh .drone/pull.sh', - 'sh .drone/deploy.sh', - ] - } - }, - ), - ], - } - - diff --git a/.drone/lib/images.libsonnet b/.drone/lib/images.libsonnet deleted file mode 100644 index b67fc35..0000000 --- a/.drone/lib/images.libsonnet +++ /dev/null @@ -1,38 +0,0 @@ -local settings = import 'settings.libsonnet'; -{ - docker: { - name: 'docker', - image: 'docker:dind', - }, - scp(target): settings.ssh { - name: 'scp', - image: 'appleboy/drone-scp:1.6.2', - settings +: { - command_timeout: '2m', - target: target, - source: [ - '.', - ], - }, - }, - ssh: settings.ssh { - image: 'appleboy/drone-ssh:1.6.2', - settings +: { - envs: [ - 'drone_tag', - 'drone_commit', - 'drone_build_number', - 'drone_repo_name', - 'drone_repo_namespace', - ], - script: [], - }, - }, - wait(delay): { - image: 'alpine', - name: 'wait', - commands: [ - 'sleep %s' % delay, - ], - } -} \ No newline at end of file diff --git a/.drone/lib/settings.libsonnet b/.drone/lib/settings.libsonnet deleted file mode 100644 index 3c40d44..0000000 --- a/.drone/lib/settings.libsonnet +++ /dev/null @@ -1,11 +0,0 @@ -local environment = import '../node_modules/@sigyl/jsonnet-drone-environment/environment.libsonnet'; -{ - ssh: { - settings +: { - host: environment.fromSecret('ssh-host'), - port: environment.fromSecret('ssh-port'), - username: environment.fromSecret('ssh-user'), - key: environment.fromSecret('ssh-key'), - }, - }, -} \ No newline at end of file diff --git a/.drone/lib/util.libsonnet b/.drone/lib/util.libsonnet deleted file mode 100644 index 2596ab8..0000000 --- a/.drone/lib/util.libsonnet +++ /dev/null @@ -1,18 +0,0 @@ -local compose = import '../node_modules/@sigyl/jsonnet-compose/compose.libsonnet'; -local environment = import '../node_modules/@sigyl/jsonnet-drone-environment/environment.libsonnet'; -{ - printEnv(file, env): function(step) compose([ - environment.envSet(env), - function(step) step { - settings +: { - script +: [ - 'echo "export %(environment)s=\'$${%(environment)s}\'" >> %(file)s # "%(secret)s"' % { - environment: environment.environment(env), - file: file, - secret: environment.secret(env), - }, - ], - }, - }, - ])(step), -} \ No newline at end of file diff --git a/.drone/package.json b/.drone/package.json index 3869304..434953f 100644 --- a/.drone/package.json +++ b/.drone/package.json @@ -4,7 +4,6 @@ "build": "drone jsonnet --source drone-home.jsonnet --target drone-home.yml --stream" }, "dependencies": { - "@sigyl/jsonnet-compose": "^0.0.2", - "@sigyl/jsonnet-drone-environment": "0.0.5" + "@sigyl/jsonnet-drone": "^0.0.5" } } diff --git a/.drone/yarn-error.log b/.drone/yarn-error.log index 55c6505..88bf6d0 100644 --- a/.drone/yarn-error.log +++ b/.drone/yarn-error.log @@ -1,23 +1,21 @@ Arguments: - /usr/bin/node /home/giles/.yarn/bin/yarn.js + /usr/local/Cellar/node/11.9.0/bin/node /usr/local/Cellar/yarn/1.13.0/libexec/bin/yarn.js PATH: - /home/giles/.yarn/bin:/home/giles/.config/yarn/global/node_modules/.bin:/home/giles/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin + /Users/giles/.cargo/bin:/Users/giles/.local/bin:/Users/giles/Library/Python/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/usr/local/share/dotnet/sdk:/usr/local/share/dotnet/sdk/2.2.101:/opt/X11/bin:~/.dotnet/tools:/usr/local/bin:/usr/local/Cellar/openssl/1.0.2j/bin/openssl Yarn version: - 1.22.4 + 1.13.0 Node version: - 11.14.0 + 12.13.1 Platform: - linux x64 + darwin x64 Trace: - Error: self signed certificate in certificate chain - at TLSSocket.onConnectSecure (_tls_wrap.js:1176:34) - at TLSSocket.emit (events.js:193:13) - at TLSSocket._finishInit (_tls_wrap.js:667:8) + Error: getaddrinfo ENOTFOUND registry.yarnpkg.com + at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:60:26) npm manifest: { @@ -26,7 +24,7 @@ npm manifest: "build": "drone jsonnet --source drone-home.jsonnet --target drone-home.yml --stream" }, "dependencies": { - "@sigyl/jsonnet-compose": "^0.0.2" + "@sigyl/jsonnet-drone": "^0.0.3" } } @@ -34,4 +32,24 @@ yarn manifest: No manifest Lockfile: - No lockfile + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + # yarn lockfile v1 + + + "@sigyl/jsonnet-compose@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-compose/-/jsonnet-compose-0.0.2.tgz#8900a21e8cd8109929b6042703f8645aacb9bcda" + integrity sha512-wWS3CgPeNi/o1pcS6n/4pafxlMD0KC9/RKMZr/ySmzeGNRW++sPuKuxajYse2TNd47uNDdeUSnk4aEeEIKL0zA== + + "@sigyl/jsonnet-drone-environment@0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-drone-environment/-/jsonnet-drone-environment-0.0.5.tgz#9ea85e08904777bd21a3e4b30b0b91461d0285ff" + integrity sha512-xVGmdMO1pOyozAWUbJm6mzKBgsLPJ+1hWnGCK3AxPkr7kkDh18hu30+TLzlcQtqq76s5jUfvJUztezsGj/mIcw== + + "@sigyl/jsonnet-drone@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-drone/-/jsonnet-drone-0.0.2.tgz#64572524155eaa2c2b8bda6102f238a0269cafbb" + integrity sha512-1/EZR5Vbo8oKAm+R31XIzsS6VZxcEIcRLyrLi53JQ0+z+CWLPvrUwiq0homBysYJhqk1XRzYF6+ctwbbmmzxrA== + dependencies: + "@sigyl/jsonnet-compose" "^0.0.2" + "@sigyl/jsonnet-drone-environment" "0.0.5" diff --git a/.drone/yarn.lock b/.drone/yarn.lock index e9d5082..2ad11f0 100644 --- a/.drone/yarn.lock +++ b/.drone/yarn.lock @@ -11,3 +11,11 @@ version "0.0.5" resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-drone-environment/-/jsonnet-drone-environment-0.0.5.tgz#9ea85e08904777bd21a3e4b30b0b91461d0285ff" integrity sha512-xVGmdMO1pOyozAWUbJm6mzKBgsLPJ+1hWnGCK3AxPkr7kkDh18hu30+TLzlcQtqq76s5jUfvJUztezsGj/mIcw== + +"@sigyl/jsonnet-drone@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-drone/-/jsonnet-drone-0.0.5.tgz#1017714cfcdb637d36faa4206b29fd4277bfb37f" + integrity sha512-6npYDgXWGblimBYDIRNeNZX20qZmuhQYhSj9hWucXm9i+IKIrxX/3B0gf9JDNXgbK4s4QY95WBrnimeAeMfddg== + dependencies: + "@sigyl/jsonnet-compose" "^0.0.2" + "@sigyl/jsonnet-drone-environment" "0.0.5" diff --git a/.gitignore b/.gitignore index a56a7ef..1db64ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ node_modules - +.log diff --git a/yarn.lock b/yarn.lock index 843e633..50372ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,6 +23,24 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@sigyl/jsonnet-compose@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-compose/-/jsonnet-compose-0.0.2.tgz#8900a21e8cd8109929b6042703f8645aacb9bcda" + integrity sha512-wWS3CgPeNi/o1pcS6n/4pafxlMD0KC9/RKMZr/ySmzeGNRW++sPuKuxajYse2TNd47uNDdeUSnk4aEeEIKL0zA== + +"@sigyl/jsonnet-drone-environment@0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-drone-environment/-/jsonnet-drone-environment-0.0.5.tgz#9ea85e08904777bd21a3e4b30b0b91461d0285ff" + integrity sha512-xVGmdMO1pOyozAWUbJm6mzKBgsLPJ+1hWnGCK3AxPkr7kkDh18hu30+TLzlcQtqq76s5jUfvJUztezsGj/mIcw== + +"@sigyl/jsonnet-drone@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-drone/-/jsonnet-drone-0.0.2.tgz#64572524155eaa2c2b8bda6102f238a0269cafbb" + integrity sha512-1/EZR5Vbo8oKAm+R31XIzsS6VZxcEIcRLyrLi53JQ0+z+CWLPvrUwiq0homBysYJhqk1XRzYF6+ctwbbmmzxrA== + dependencies: + "@sigyl/jsonnet-compose" "^0.0.2" + "@sigyl/jsonnet-drone-environment" "0.0.5" + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"