Skip to content

Commit

Permalink
Update manifests and developer documentation
Browse files Browse the repository at this point in the history
* Update manifests to use a DaemonSet with appropriate Tolerations
* Add a shell script to generate the manifest
* Update developer documentation on the use Dep
  • Loading branch information
asauber committed Nov 20, 2018
1 parent 6235323 commit 26179d0
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 23 deletions.
1 change: 1 addition & 0 deletions Dockerfile
Expand Up @@ -10,5 +10,6 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o linode-cloud-controller

FROM ubuntu:latest
WORKDIR /root/
RUN apt-get update -qq && apt-get install -qy ca-certificates
COPY --from=builder /go/src/github.com/linode/linode-cloud-controller-manager/linode-cloud-controller-manager .
ENTRYPOINT ["./linode-cloud-controller-manager"]
1 change: 0 additions & 1 deletion Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 8 additions & 9 deletions docs/developer-guide/README.md
Expand Up @@ -37,27 +37,26 @@ $ cd $(go env GOPATH)/src/github.com/linode/linode-cloud-controller-manager
#### Install Dev tools
To install various dev tools for Pharm Controller Manager, run the following command:

```console
```bash
$ ./hack/builddeps.sh
```

#### Build Binary
Use the following Make targets to build and run a local binary

```
```bash
$ make build
$ make run
# You can also run the binary that was built to pass additional args
# You can also run the binary directly to pass additional args
$ dist/linode-cloud-controller-manager run
```

#### Dependency management
Linode Cloud Controller Manager uses
[Glide](https://github.com/Masterminds/glide) to manage dependencies.
Dependencies are already checked in the `vendor` folder. If you want to
update/add dependencies, run:
```console
$ glide slow
Linode Cloud Controller Manager uses [Dep](https://github.com/golang/dep) to
manage dependencies. Dependencies are already checked in the `vendor` folder.
If you want to update/add dependencies, run:
```bash
$ dep ensure
```

#### Building Docker images
Expand Down
2 changes: 0 additions & 2 deletions hack/builddeps.sh
@@ -1,8 +1,6 @@
#!/bin/bash

go get -u golang.org/x/tools/cmd/goimports
go get github.com/Masterminds/glide
go get github.com/sgotti/glide-vc
go get github.com/onsi/ginkgo/ginkgo
go install github.com/onsi/ginkgo/ginkgo
go get -u github.com/jteeuwen/go-bindata/...
10 changes: 4 additions & 6 deletions hack/deploy/ccm-linode-template.yaml
Expand Up @@ -30,14 +30,13 @@ subjects:
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
kind: DaemonSet
metadata:
name: ccm-linode
labels:
app: ccm-linode
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
app: ccm-linode
Expand All @@ -63,12 +62,11 @@ spec:
effect: NoSchedule
- key: node.kubernetes.io/not-ready
operator: Exists
effect: NoExecute
tolerationSeconds: 300
effect: NoSchedule
- key: node.kubernetes.io/unreachable
operator: Exists
effect: NoExecute
tolerationSeconds: 300
effect: NoSchedule
hostNetwork: true
containers:
- image: linode/linode-cloud-controller-manager:latest
imagePullPolicy: Always
Expand Down
21 changes: 21 additions & 0 deletions hack/deploy/generate-manifest.sh
@@ -0,0 +1,21 @@
#!/bin/bash

set -o pipefail -o noclobber -o nounset

die() { echo "$*" 1>&2; exit 1; }

[ "$#" -eq 2 ] || die "First argument must be a Linode APIv4 Personal Access Token with all permissions.
(https://cloud.linode.com/profile/tokens)
Second argument must be a Linode region.
(https://api.linode.com/v4/regions)
Example:
$ ./generate-manifest.sh \$LINODE_API_TOKEN us-east"

ENCODED_TOKEN=$(echo -n $1 | base64)
ENCODED_REGION=$(echo -n $2 | base64)

cat ccm-linode-template.yaml |
sed -e "s|{{ .Values.apiTokenB64 }}|$ENCODED_TOKEN|" |
sed -e "s|{{ .Values.linodeRegionB64 }}|$ENCODED_REGION|" > ccm-linode.yaml
10 changes: 5 additions & 5 deletions hack/deploy/uninstall.sh
@@ -1,8 +1,8 @@
#!/bin/bash

set -x

kubectl delete deployment -l app=ccm-linode -n kube-system
kubectl delete service -l app=ccm-linode -n kube-system
kubectl delete serviceaccount -l app=ccm-linode -n kube-system
kubectl delete clusterrolebindings -l app=ccm-linode -n kube-system
kubectl delete clusterrole -l app=ccm-linode -n kube-system
kubectl delete secret ccm-linode -n kube-system
kubectl delete serviceaccount ccm-linode -n kube-system
kubectl delete clusterrolebinding system:ccm-linode -n kube-system
kubectl delete daemonset ccm-linode -n kube-system

0 comments on commit 26179d0

Please sign in to comment.