ci: jsonnet-drone@0.1.0
continuous-integration/drone/push Build is passing 詳情

This commit is contained in:
Giles Bradshaw 2020-08-28 22:10:05 +01:00
父節點 1be8e8024a
當前提交 f63c2060ae
共有 14 個檔案被更改,包括 94 行新增110 行删除

查看文件

@ -1 +1,2 @@
docker build docker-dind -t ${LOCAL_DOCKER_REGISTRY}docker-dind
echo $CA_CRT > docker-dind/CA_crt.crt
docker build docker-dind -t ${REGISTRY_DOMAIN}:${REGISTRY_PORT}/docker-dind

查看文件

@ -3,15 +3,29 @@ local secretSecrets = import 'lib/secret-secrets.libsonnet';
local publicSecrets = import 'lib/public-secrets.libsonnet';
local deploy = import 'node_modules/@sigyl/jsonnet-drone/deploy.libsonnet';
local register = import 'node_modules/@sigyl/jsonnet-drone/register.libsonnet';
[
register,
deploy(
'squid',
'/stack/',
[],
publicSecrets,
secretSecrets,
[
'LOCAL_DOCKER_REGISTRY',
'DOMAIN',
'REGISTRY_DOMAIN',
'REGISTRY_PORT',
'REGISTRY_PASSWORD',
],
publicSecrets,
secretSecrets
),
) {
trigger +: {
event +: [
'promote',
],
target +: [
'production',
],
},
},
]

查看文件

@ -1,3 +1,20 @@
---
kind: pipeline
type: docker
name: register
platform:
os: linux
arch: amd64
clone:
disable: true
trigger:
event:
exclude:
- promote
---
kind: pipeline
type: docker
@ -9,7 +26,7 @@ platform:
steps:
- name: print env
image: appleboy/drone-ssh:1.6.2
image: appleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea
settings:
envs:
- drone_tag
@ -17,94 +34,59 @@ steps:
- drone_build_number
- drone_repo_name
- drone_repo_namespace
- local_docker_registry
- registry_password
- ssh_host
- ssh_user
- ssh_port
- local_docker_registry
- ca_crt
- ssh_key
- registry_password
- local_domain
- ca_key
host:
from_secret: ssh-host
key:
from_secret: ssh-key
port:
from_secret: ssh-port
host: ${SSH_HOST}
key: ${SSH_KEY}
passphrase: ${SSH_PASSPHRASE}
port: ${SSH_PORT}
script:
- rm -f env-squid
- "echo \"export LOCAL_DOCKER_REGISTRY='$${LOCAL_DOCKER_REGISTRY}'\" >> env-squid # \"local-docker-registry\""
- "echo \"export REGISTRY_PASSWORD='$${REGISTRY_PASSWORD}'\" >> env-squid # \"registry-password\""
- "echo \"export SSH_HOST='$${SSH_HOST}'\" >> env-squid # \"ssh-host\""
- "echo \"export SSH_USER='$${SSH_USER}'\" >> env-squid # \"ssh-user\""
- "echo \"export SSH_PORT='$${SSH_PORT}'\" >> env-squid # \"ssh-port\""
- "echo \"export LOCAL_DOCKER_REGISTRY='$${LOCAL_DOCKER_REGISTRY}'\" >> env-squid # \"local-docker-registry\""
- "echo \"export CA_CRT='$${CA_CRT}'\" >> env-squid # \"ca-crt\""
- "echo \"export SSH_KEY='$${SSH_KEY}'\" >> env-squid # \"ssh-key\""
- "echo \"export REGISTRY_PASSWORD='$${REGISTRY_PASSWORD}'\" >> env-squid # \"registry-password\""
- "echo \"export LOCAL_DOMAIN='$${LOCAL_DOMAIN}'\" >> env-squid # \"local-domain\""
- "echo \"export CA_KEY='$${CA_KEY}'\" >> env-squid # \"ca-key\""
username:
from_secret: ssh-user
username: ${SSH_USER}
environment:
CA_CRT:
from_secret: ca-crt
CA_KEY:
from_secret: ca-key
LOCAL_DOCKER_REGISTRY:
from_secret: local-docker-registry
REGISTRY_PASSWORD:
from_secret: registry-password
SSH_HOST:
from_secret: ssh-host
SSH_KEY:
from_secret: ssh-key
SSH_PORT:
from_secret: ssh-port
SSH_USER:
from_secret: ssh-user
LOCAL_DOMAIN:
from_secret: local-domain
- name: scp
image: appleboy/drone-scp:1.6.2
image: appleboy/drone-scp:1.6.2@sha256:bd37a55f4b97e7742b0de7333669b96220b3cc422d366e1fa8c34059b736ab47
settings:
command_timeout: 2m
host:
from_secret: ssh-host
key:
from_secret: ssh-key
port:
from_secret: ssh-port
host: ${SSH_HOST}
key: ${SSH_KEY}
passphrase: ${SSH_PASSPHRASE}
port: ${SSH_PORT}
source:
- .
target: /stack/squid
username:
from_secret: ssh-user
username: ${SSH_USER}
- name: wait
image: alpine
image: alpine:3.12.0@sha256:90baa0922fe90624b05cb5766fa5da4e337921656c2f8e2b13bd3c052a0baac1
commands:
- sleep 15
- name: "dockerbuild:"
image: docker:dind
image: docker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f
commands:
- set -e
- sh .drone/login.sh
- sh .drone/build.sh
- sh .drone/push.sh
- sh .drone/logout.sh
environment:
LOCAL_DOCKER_REGISTRY:
from_secret: local-docker-registry
REGISTRY_PASSWORD:
from_secret: registry-password
volumes:
- name: dockersock
path: /var/run
- name: deploy
image: appleboy/drone-ssh:1.6.2
image: appleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea
settings:
envs:
- drone_tag
@ -112,57 +94,42 @@ steps:
- drone_build_number
- drone_repo_name
- drone_repo_namespace
- ssh_host
- ssh_user
- ssh_port
- local_docker_registry
- ca_crt
- ssh_key
- domain
- registry_domain
- registry_port
- registry_password
- ca_crt
- local_domain
- ca_key
host:
from_secret: ssh-host
key:
from_secret: ssh-key
port:
from_secret: ssh-port
host: ${SSH_HOST}
key: ${SSH_KEY}
passphrase: ${SSH_PASSPHRASE}
port: ${SSH_PORT}
script:
- export SSH_KEY=$${SSH_KEY}
- export REGISTRY_PASSWORD=$${REGISTRY_PASSWORD}
- export CA_KEY=$${CA_KEY}
- export SSH_HOST=$${SSH_HOST}
- export SSH_USER=$${SSH_USER}
- export SSH_PORT=$${SSH_PORT}
- export LOCAL_DOCKER_REGISTRY=$${LOCAL_DOCKER_REGISTRY}
- export CA_CRT=$${CA_CRT}
- export LOCAL_DOMAIN=$${LOCAL_DOMAIN}
- export DOMAIN=$${DOMAIN}
- export REGISTRY_DOMAIN=$${REGISTRY_DOMAIN}
- export REGISTRY_PORT=$${REGISTRY_PORT}
- export REGISTRY_PASSWORD=$${REGISTRY_PASSWORD}
- set -e
- cd /stack/squid
- sh .drone/login.sh
- sh .drone/pull.sh
- sh .drone/deploy.sh
username:
from_secret: ssh-user
username: ${SSH_USER}
environment:
CA_CRT:
from_secret: ca-crt
CA_KEY:
from_secret: ca-key
LOCAL_DOCKER_REGISTRY:
from_secret: local-docker-registry
REGISTRY_PASSWORD:
from_secret: registry-password
SSH_HOST:
from_secret: ssh-host
SSH_KEY:
from_secret: ssh-key
SSH_PORT:
from_secret: ssh-port
SSH_USER:
from_secret: ssh-user
LOCAL_DOMAIN:
from_secret: local-domain
services:
- name: docker
image: docker:dind
image: docker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f
privileged: true
volumes:
- name: dockersock
@ -177,4 +144,10 @@ volumes:
host:
path: /etc/docker/certs.d
trigger:
event:
- promote
target:
- production
...

查看文件

@ -1,7 +1,4 @@
[
'ssh-host',
'ssh-user',
'ssh-port',
'local-docker-registry',
'ca-crt',
'local-domain'
]

查看文件

@ -1,5 +1,3 @@
[
'ssh-key',
'registry-password',
'ca-key',
]

查看文件

@ -1 +1 @@
docker login ${LOCAL_DOCKER_REGISTRY} --username client --password "${REGISTRY_PASSWORD}"
docker login ${REGISTRY_DOMAIN}:${REGISTRY_PORT} --username client --password "${REGISTRY_PASSWORD}"

查看文件

@ -1 +1 @@
docker logout ${LOCAL_DOCKER_REGISTRY}
docker logout ${REGISTRY_DOMAIN}:${REGISTRY_PORT}

查看文件

@ -4,6 +4,6 @@
"build": "drone jsonnet --source drone-home.jsonnet --target drone-home.yml --stream"
},
"dependencies": {
"@sigyl/jsonnet-drone": "^0.0.5"
"@sigyl/jsonnet-drone": "^0.1.0"
}
}

查看文件

@ -1 +1 @@
docker pull ${LOCAL_DOCKER_REGISTRY}docker-dind
docker pull ${REGISTRY_DOMAIN}:${REGISTRY_PORT}/docker-dind

查看文件

@ -1 +1 @@
docker push ${LOCAL_DOCKER_REGISTRY}docker-dind
docker push ${REGISTRY_DOMAIN}:${REGISTRY_PORT}/docker-dind

查看文件

@ -12,10 +12,10 @@
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==
"@sigyl/jsonnet-drone@^0.1.0":
version "0.1.0"
resolved "https://registry.yarnpkg.com/@sigyl/jsonnet-drone/-/jsonnet-drone-0.1.0.tgz#feda1797e8e9ef799cad72e65f7163ca26a9e3a5"
integrity sha512-QY/ngucxFOtLfL8Mt0f2bxN4fQDUOGOFtaRpSH2cNyg84xADkzehT0ORZtbLitr+AwhyF5KN/zAGvzkyNAoqPw==
dependencies:
"@sigyl/jsonnet-compose" "^0.0.2"
"@sigyl/jsonnet-drone-environment" "0.0.5"

1
.gitignore vendored
查看文件

@ -1,2 +1,3 @@
node_modules
*.log
.secrets

查看文件

@ -11,11 +11,11 @@ openssl genrsa -out CA_key.pem 2048
openssl req -x509 -days 600 -new -nodes -key CA_key.pem -out CA_crt.pem -extensions v3_ca -config openssl.cnf -subj "/C=UK/ST=Devon/L=Rose Ash/O=Google/OU=SiGyl/CN=Proxy-ca"
```
then set secrets ca-crt and ca-key to the created files
then set drone secrets ca-crt and ca-key to the created files
## making dockerconfigjson
the secret dockerconfigjson allows images to be pulled from the local docker repository
the drone secret dockerconfigjson allows images to be pulled from the local docker repository
if you login to this repository with:

查看文件

@ -13,7 +13,7 @@ services:
- HTTP_PORT=3128
- MITM_CERT=/run/secrets/ca.crt
- MITM_KEY=/run/secrets/ca.key
- VISIBLE_HOSTNAME=git.local-domain
- VISIBLE_HOSTNAME=$LOCAL_DOMAIN
- >
EXTRA_CONFIG1=tls_outgoing_options
capath=/etc/ssl/certs