Open dlespiau opened 4 years ago
This PR works on top of https://github.com/jkcfg/jk/pull/288 and provides a way for jk to render helm charts and import the result as js objects.
jk
TODO:
Chart
Example:
import * as std from '@jkcfg/std'; import * as helm from '@jkcfg/kubernetes/helm'; const memcached = new helm.Chart('helm/memcached'); memcached.render({ name: 'myrelease', namespace: 'myns', }, { memcached: { maxItemMemory: 1024, }, }).then(chart => std.write(chart.objects(), '', { format: std.Format.YAMLStream }));
$ helm pull stable/memcached --untar --untardir helm $ jk run helm.js
apiVersion: v1 kind: Service metadata: annotations: {} labels: app: myrelease-memcached chart: memcached-3.2.0 heritage: Helm release: myrelease name: myrelease-memcached namespace: myns spec: clusterIP: None ports: - name: memcache port: 11211 targetPort: memcache selector: app: myrelease-memcached --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: myrelease-memcached chart: memcached-3.2.0 heritage: Helm release: myrelease name: myrelease-memcached namespace: myns spec: replicas: 3 selector: matchLabels: app: myrelease-memcached release: myrelease serviceName: myrelease-memcached template: metadata: labels: app: myrelease-memcached chart: memcached-3.2.0 heritage: Helm release: myrelease spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app: myrelease-memcached release: myrelease topologyKey: kubernetes.io/hostname containers: - command: - memcached - -m 1024 - -o - modern - -v image: memcached:1.5.19-alpine imagePullPolicy: "" livenessProbe: initialDelaySeconds: 30 tcpSocket: port: memcache timeoutSeconds: 5 name: myrelease-memcached ports: - containerPort: 11211 name: memcache readinessProbe: initialDelaySeconds: 5 tcpSocket: port: memcache timeoutSeconds: 1 resources: requests: cpu: 50m memory: 64Mi securityContext: runAsUser: 1001 securityContext: fsGroup: 1001 updateStrategy: type: RollingUpdate
This PR works on top of https://github.com/jkcfg/jk/pull/288 and provides a way for
jk
to render helm charts and import the result as js objects.TODO:
Chart
API a bit moreExample: