-
Notifications
You must be signed in to change notification settings - Fork 83
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #109 from ethernetdan/gitlab-ci
Gitlab CI plugin
- Loading branch information
Showing
5 changed files
with
147 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,3 +23,5 @@ _testmain.go | |
*.exe | ||
*.test | ||
*.prof | ||
|
||
build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
FROM docker:git | ||
|
||
ADD spread-linux-static /usr/local/bin/spread | ||
ADD entrypoint.sh /opt/spread-gitlab/entrypoint.sh | ||
|
||
ENV KUBECFG_INSECURE_SKIP_TLS_VERIFY="false" | ||
|
||
ENTRYPOINT ["/opt/spread-gitlab/entrypoint.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Gitlab Spread Plugin | ||
|
||
This plugin allows you to add `spread` Kubernetes deployment to your Gitlab CI build pipeline. | ||
|
||
## Environment Variables | ||
|
||
These environment variables can be used to configure the deployment. | ||
|
||
### spread | ||
|
||
`DEPLOY_DIR` | ||
|
||
The directory spread should be deployed from | ||
|
||
|
||
### Cluster | ||
`KUBECFG_SERVER` | ||
|
||
Address of the Kubernetes API Server (https://hostname:port) | ||
|
||
`KUBECFG_API_VERSION` | ||
|
||
Preferred api version for communicating with the kubernetes cluster (v1, v2, etc) | ||
|
||
`KUBECFG_INSECURE_SKIP_TLS_VERIFY` | ||
|
||
Disable requirement that connections must pass TLS verification | ||
|
||
`KUBECFG_CERTIFICATE_AUTHORITY` | ||
|
||
Path to a cert file for the certificate authority. | ||
|
||
`KUBECFG_CERTIFICATE_AUTHORITY_DATA` | ||
|
||
Certificate data | ||
|
||
### User | ||
|
||
`KUBECFG_CLIENT_CERTIFICATE` | ||
|
||
Path to a client cert file for TLS | ||
|
||
`KUBECFG_CLIENT_CERTIFICATE_DATA` | ||
|
||
TLS client cert data | ||
|
||
`KUBECFG_CLIENT_KEY` | ||
|
||
Path to a client key file for TLS. | ||
|
||
`KUBECFG_CLIENT_KEY_DATA` | ||
|
||
Key data | ||
|
||
`KUBECFG_TOKEN` | ||
|
||
Bearer token for cluster auth | ||
|
||
`KUBECFG_USERNAME` | ||
|
||
Username for basic auth | ||
|
||
`KUBECFG_PASSWORD` | ||
|
||
Password for basic auth |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#!/bin/sh | ||
|
||
# if config file does not exist produce one with env vars | ||
if [ ! -f ~/.kube/config ]; then | ||
echo "setting up kubectl config" | ||
mkdir -p ~/.kube | ||
|
||
>~/.kube/config cat <<EOF | ||
kind: Config | ||
apiVersion: v1 | ||
current-context: gitlab | ||
contexts: | ||
- name: gitlab | ||
context: | ||
cluster: default | ||
user: default | ||
clusters: | ||
- name: default | ||
cluster: | ||
server: $KUBECFG_SERVER | ||
api-version: $KUBECFG_API_VERSION | ||
insecure-skip-tls-verify: $KUBECFG_INSECURE_SKIP_TLS_VERIFY | ||
certificate-authority: $KUBECFG_CERTIFICATE_AUTHORITY | ||
certificate-authority-data: $KUBECFG_CERTIFICATE_AUTHORITY_DATA | ||
users: | ||
- name: default | ||
user: | ||
client-certificate: $KUBECFG_CLIENT_CERTIFICATE | ||
client-certificate-data: $KUBECFG_CLIENT_CERTIFICATE_DATA | ||
client-key: $KUBECFG_CLIENT_KEY | ||
client-key-data: $KUBECFG_CLIENT_KEY_DATA | ||
token: $KUBECFG_TOKEN | ||
username: $KUBECFG_USERNAME | ||
password: $KUBECFG_PASSWORD | ||
EOF | ||
fi | ||
|
||
if [ ! -z "$DEPLOY_DIR" ]; then | ||
echo "using DEPLOY_DIR..." | ||
spread deploy $DEPLOY_DIR | ||
exit | ||
fi | ||
|
||
echo "Using project dir..." | ||
spread deploy $CI_PROJECT_DIR |