File tree 8 files changed +118
-1
lines changed
8 files changed +118
-1
lines changed Original file line number Diff line number Diff line change
1
+ dockercfg
2
+ codeship.aes
3
+ kubeconfigdata
4
+ env
5
+ test-env
6
+ k8s-env
Original file line number Diff line number Diff line change
1
+ FROM ruby:2.3
2
+
3
+ RUN apt-get update && apt-get install -y curl
4
+ RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
5
+ RUN chmod +x ./kubectl
6
+ RUN mv ./kubectl /usr/local/bin/kubectl
7
+
8
+ ENV HOME /root
9
+ WORKDIR $HOME
10
+
11
+ COPY env_var_helper_client.sh env_var_helper_client.rb ./
12
+ RUN chmod +x env_var_helper_client.sh
13
+
14
+ ENTRYPOINT ["./env_var_helper_client.sh" ]
Original file line number Diff line number Diff line change 1
- # kubectl
1
+ # codeship/kubectl container
2
+
3
+ ` kubectl ` binary container, with guidance for configuring credentials (including secrets) to issue commands to your cluster from a Codeship Pro step.
4
+
5
+ ## Distill your k8s configurations to single file
6
+
7
+ ``` shell
8
+ kubectl config view --flatten > kubeconfigdata # add --minify flag to reduce info to current context
9
+ ```
10
+
11
+ ## Copy contents to env var file using our codeship/env-var-helper container
12
+
13
+ ``` shell
14
+ docker run --rm -it -v $( pwd) :/files codeship/env-var-helper cp kubeconfigdata:/root/.kube/config k8s-env
15
+ ```
16
+
17
+ Check out the [ codeship/env-var-helper README] ( https://github.com/codeship-library/docker-utilities/tree/master/env-var-helper ) for more information.
18
+
19
+ ## Encrypt the file, remove files and/or add to ` .gitignore `
20
+
21
+ jet encrypt k8s-env k8s-env.encrypted
22
+ rm kubeconfigdata k8s-env
23
+
24
+ ## Configure the service and steps into the build with the following as guidance
25
+
26
+ ``` shell
27
+ # codeship-services.yml
28
+
29
+ kubectl:
30
+ build:
31
+ image: codeship/kubectl
32
+ dockerfile: Dockerfile
33
+ encrypted_env_file: k8s-env.encrypted
34
+ ```
35
+
36
+ ``` shell
37
+ # codeship-steps.yml
38
+
39
+ - name: check response to kubectl config
40
+ service: kubectl
41
+ command: kubectl config view
42
+ ```
Original file line number Diff line number Diff line change
1
+ kubectl :
2
+ build :
3
+ image : codeship/kubectl
4
+ dockerfile : Dockerfile
5
+ encrypted_env_file : k8s-env.encrypted
Original file line number Diff line number Diff line change
1
+ - name : check response to kubectl config
2
+ command : kubectl config view
3
+ service : kubectl
4
+
5
+ - name : push codeship/kubectl
6
+ tag : master
7
+ type : push
8
+ service : kubectl
9
+ image_name : codeship/kubectl
10
+ encrypted_dockercfg_path : dockercfg.encrypted
Original file line number Diff line number Diff line change
1
+ require 'json'
2
+
3
+ env_var_helper_data = JSON . parse ( ENV [ 'ENV_VAR_HELPER' ] )
4
+
5
+ action = ARGV [ 0 ]
6
+ case action
7
+ when 'count_entries'
8
+ puts env_var_helper_data . count
9
+ when 'container_destination'
10
+ i = ARGV [ 1 ] . to_i
11
+ puts env_var_helper_data [ i ] [ 'container_destination' ]
12
+ when 'contents'
13
+ i = ARGV [ 1 ] . to_i
14
+ puts env_var_helper_data [ i ] [ 'content' ]
15
+ end
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ set -e
4
+
5
+ OLD_IFS=" $IFS "
6
+ IFS=
7
+
8
+ TOTAL_ENTRIES=$( ruby env_var_helper_client.rb count_entries)
9
+ i=" 0"
10
+
11
+ while [ " $i " -lt $TOTAL_ENTRIES ]
12
+ do
13
+ FULL_PATH=$( ruby env_var_helper_client.rb container_destination $i )
14
+ DIR_PATH=$( dirname " ${FULL_PATH} " )
15
+ mkdir -p $DIR_PATH
16
+
17
+ FILE_CONTENTS=$( ruby env_var_helper_client.rb contents $i )
18
+ echo -e $FILE_CONTENTS > $FULL_PATH
19
+ i=$[$i +1]
20
+ done
21
+
22
+ IFS=" $OLD_IFS "
23
+
24
+ " $@ "
Original file line number Diff line number Diff line change
1
+ codeship:v2
2
+ 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
You can’t perform that action at this time.
0 commit comments