Permalink
Please sign in to comment.
Showing
with
147 additions
and 3 deletions.
- +2 −0 .gitignore
- +26 −3 Makefile
- +8 −0 images/gitlabci/Dockerfile
- +65 −0 images/gitlabci/README.md
- +46 −0 images/gitlabci/entrypoint.sh
2
.gitignore
29
Makefile
8
images/gitlabci/Dockerfile
@@ -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"] |
65
images/gitlabci/README.md
@@ -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 |
46
images/gitlabci/entrypoint.sh
@@ -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 |
0 comments on commit
ed9568b