cdk8s-flux 0.1.3

Creator: bradpython12

Last updated:

Add to Cart

Description:

cdk8sflux 0.1.3

cdk8s-flux
Manage your kubernetes cluster in a GitOps fashion with Flux, construct library for cdk8s projectšŸš€
Overview
cdk8s-flux is a cdk8s library which allows you to deploy define a installation of a Flux daemon in your kubernetes cluster with just a few lines of code.
This could be used as an alternative to the Flux Helm Chart or the fluxctl install command.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
Flux(self, "flux",
ns="flux",
name="flux",
image="fluxcd/flux",
tag="1.19.0",
replicas=1,
arguments=["--memcached-service=", "--ssh-keygen-dir=/etc/fluxd/keygen", "--git-url=git@github.com:rafaribe/cdk8s-k3s-gitops.git", "--git-branch=master", "--git-path=cluster", "--git-label=flux", "--git-user=flux", "--git-email=flux@rafaribe.com", "--git-poll-interval=5m", "--sync-garbage-collection"
]
)


flux.k8s.yaml
apiVersion: v1
kind: Namespace
metadata:
labels:
name: flux
name: flux
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
name: flux
name: flux
namespace: flux
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
name: flux
name: flux
rules:
- apiGroups:
- "*"
resources:
- "*"
verbs:
- "*"
- nonResourceURLs:
- "*"
verbs:
- "*"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
name: flux
name: flux
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: flux
subjects:
- kind: ServiceAccount
name: flux
namespace: flux
---
apiVersion: v1
kind: Secret
metadata:
name: flux-git-deploy
namespace: flux
type: Opaque
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: flux
namespace: flux
spec:
replicas: 1
selector:
matchLabels:
name: flux
strategy:
type: Recreate
template:
metadata:
labels:
name: flux
spec:
containers:
- args:
- --memcached-service=
- --ssh-keygen-dir=/etc/fluxd/keygen
- --git-url=git@github.com:rafaribe/cdk8s-k3s-gitops.git
- --git-branch=master
- --git-path=cluster
- --git-label=flux
- --git-user=flux
- --git-email=flux@rafaribe.com
- --git-poll-interval=5m
- --sync-garbage-collection
image: raspbernetes/flux:1.19.0
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
path: api/flux/v6/identity.pub
port: 3030
initialDelaySeconds: 5
timeoutSeconds: 5
name: flux
ports:
- containerPort: 3030
readinessProbe:
httpGet:
path: api/flux/v6/identity.pub
port: 3030
initialDelaySeconds: 5
timeoutSeconds: 5
resources:
limits:
cpu: 150m
memory: 256Mi
volumeMounts:
- mountPath: /etc/fluxd/ssh
name: git-key
readOnly: true
- mountPath: /etc/fluxd/keygen
name: git-keygen
serviceAccountName: flux
volumes:
- name: git-key
secret:
defaultMode: 256
secretName: flux-git-deploy
- emptyDir:
medium: Memory
name: git-keygen
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: memcached
namespace: flux
spec:
replicas: 1
selector:
matchLabels:
name: memcached
template:
metadata:
labels:
name: memcached
spec:
containers:
- args:
- -m 512
- -I 5m
- -p 11211
image: memcached:1.5.20
name: memcached
ports:
- containerPort: 11211
name: clients
securityContext:
allowPrivilegeEscalation: false
runAsGroup: 11211
runAsUser: 11211
---
apiVersion: v1
kind: Service
metadata:
name: memcached
namespace: flux
spec:
ports:
- name: memcached
port: 11211
selector:
name: memcached


Installation
cdk8s supports TypeScript and Python at this point, so as cdk8s-flux.
We'd recommend to walk through the cdk8s Getting Started guide before using this library, if you're very new to cdk8s world.
TypeScript
Use npm or yarn to install.
$ npm install -s cdk8s-flux

or
$ yarn add cdk8s-flux

Python
$ pip install cdk8s-flux

Contribution


Fork (https://github.com/rafaribe/cdk8s-flux/fork)


Bootstrap the repo:
yarn install # installs dependencies



Development scripts:





Command
Description




yarn compile
Compiles jsii


yarn watch
Watch & compile


yarn test
Runs the jest unit tests


yarn test -u
Updates jest snapshots


yarn run package
Outputs the jsii generated packages in TS and Python


yarn build
Compile + Test + Package


yarn bump
Bumps version


yarn release
Bump + push to master


yarn rmist
Deletes node_modules and runs installs dependencies


yarn lint
Lint with eslinter


yarn prettier
Runs prettier and updates the files in place


yarn run import
cdk8s imports k8s and crds into the imports directory




Create a feature branch
Commit your changes
Rebase your local changes against the master branch
Create a new Pull Request (use conventional commits for the title please)

License
Apache License, Version 2.0
Author
Rafael Ribeiro
Thank you:
Thank you to the devs of the following projects, from where I got some inspiration to create this library:

cdk8s-redis
cdk8s-debore
jsii-library-template
cdk8s

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.