@razee/mustachetemplate
Version:
Razee: component to use the Mustache template processor on kubernetes resource configurations.
326 lines (325 loc) • 13.6 kB
YAML
apiVersion: v1
kind: List
metadata:
name: mustachetemplate-controller-list
annotations:
version: "{{{TRAVIS_COMMIT}}}"
razee.io/git-repo: "{{{GIT_REMOTE}}}"
razee.io/commit-sha: "{{{TRAVIS_COMMIT}}}"
type: array
items:
- apiVersion: apps/v1
kind: Deployment
metadata:
name: mustachetemplate-controller
annotations:
razee.io/git-repo: "{{{GIT_REMOTE}}}"
razee.io/commit-sha: "{{{TRAVIS_COMMIT}}}"
labels:
razee/watch-resource: "lite"
spec:
replicas: 1
selector:
matchLabels:
app: mustachetemplate-controller
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: mustachetemplate-controller
razee/watch-resource: "lite"
name: mustachetemplate-controller
spec:
serviceAccountName: razeedeploy-sa
securityContext:
runAsUser: {{{NODE_USER_ID}}}
runAsGroup: {{{NODE_GROUP_ID}}}
fsGroup: {{{NODE_GROUP_ID}}}
containers:
- image: "quay.io/razee/mustachetemplate:{{{TRAVIS_TAG}}}"
resources:
limits:
memory: 200Mi
cpu: 100m
requests:
memory: 75Mi
cpu: 40m
env:
- name: USER_AGENT_NAME
value: razee-io/mustachetemplate
- name: USER_AGENT_VERSION
value: "{{{TRAVIS_TAG}}}"
- name: FETCHENVS_CACHE_SIZE
valueFrom:
configMapKeyRef:
name: razeedeploy-overrides
key: FETCHENVS_CACHE_SIZE
optional: true
- name: MTP_RECONCILE_BY_DEFAULT
valueFrom:
configMapKeyRef:
name: razeedeploy-overrides
key: MTP_RECONCILE_BY_DEFAULT
optional: true
- name: CRD_WATCH_TIMEOUT_SECONDS
valueFrom:
configMapKeyRef:
name: razeedeploy-overrides
key: CRD_WATCH_TIMEOUT_SECONDS
optional: true
- name: WATCH_RESOURCE_REFERENCES
valueFrom:
configMapKeyRef:
name: razeedeploy-overrides
key: WATCH_RESOURCE_REFERENCES
optional: true
imagePullPolicy: IfNotPresent
name: mustachetemplate-controller
livenessProbe:
exec:
command:
- sh/liveness.sh
initialDelaySeconds: 30
periodSeconds: 150
timeoutSeconds: 30
failureThreshold: 1
volumeMounts:
- mountPath: /home/node/config
name: razeedeploy-config
volumes:
- name: razeedeploy-config
configMap:
name: razeedeploy-config
defaultMode: 400
optional: true
- apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
# name must match the spec fields below, and be in the form: <plural>.<group>
name: mustachetemplates.deploy.razee.io
annotations:
razee.io/git-repo: "{{{GIT_REMOTE}}}"
razee.io/commit-sha: "{{{TRAVIS_COMMIT}}}"
labels:
deploy.razee.io/Reconcile: "false"
spec:
# group name to use for REST API: /apis/<group>/<version>
group: deploy.razee.io
# either Namespaced or Cluster
scope: Namespaced
names:
# plural name to be used in the URL: /apis/<group>/<version>/<plural>
plural: mustachetemplates
# singular name to be used as an alias on the CLI and for display
singular: mustachetemplate
# kind is normally the CamelCased singular type. Your resource manifests use this.
kind: MustacheTemplate
# shortNames allow shorter string to match your resource on the CLI
shortNames:
- mtp
# list of versions supported by this CustomResourceDefinition
versions:
- name: v1alpha2
# Each version can be enabled/disabled by Served flag.
served: true
# One and only one version must be marked as the storage version.
storage: true
subresources:
# status enables the status subresource.
status: {}
schema:
# openAPIV3Schema is the schema for validating custom objects.
openAPIV3Schema:
type: object
required: [spec]
properties:
spec:
type: object
allOf:
- anyOf:
- required: [templates]
- required: [strTemplates]
- anyOf:
- required: [envFrom]
- required: [env]
properties:
clusterAuth:
type: object
properties:
impersonateUser:
type: string
templateEngine:
type: string
pattern: "^mustache$|^handlebars$"
custom-tags:
type: array
maxItems: 2
minItems: 2
items:
type: string
maxLength: 3
minLength: 2
envFrom:
type: array
items:
type: object
oneOf:
- required: [configMapRef]
- required: [secretMapRef]
- required: [genericMapRef]
properties:
optional:
type: boolean
configMapRef:
type: object
required: [name]
properties:
name:
type: string
namespace:
type: string
secretMapRef:
type: object
required: [name]
properties:
name:
type: string
namespace:
type: string
genericMapRef:
type: object
required: [apiVersion, kind, name]
properties:
apiVersion:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
env:
type: array
items:
type: object
allOf:
- required: [name]
- # all array items should be oneOf ['value', 'valueFrom']
oneOf:
- required: [value]
# if 'value', neither 'optional' nor 'default' may be used
not:
anyOf:
- required: [default]
- required: [optional]
- required: [valueFrom]
# if 'valueFrom', you must define oneOf:
oneOf:
- # neither 'optional' nor 'default' is used
not:
anyOf:
- required: [default]
- required: [optional]
- # 'optional' is used by itself
required: [optional]
not:
required: [default]
- # 'optional' and 'default' are used together IFF optional == true
required: [optional, default]
properties:
optional:
enum: [true]
properties:
optional:
type: boolean
default:
x-kubernetes-int-or-string: true
name:
type: string
overrideStrategy:
type: string
pattern: "^merge$|^replace$"
value:
x-kubernetes-int-or-string: true
valueFrom:
type: object
oneOf:
- required: [configMapKeyRef]
- required: [secretKeyRef]
- required: [genericKeyRef]
properties:
configMapKeyRef:
type: object
oneOf:
- required: [key, name]
- required: [key, matchLabels]
properties:
name:
type: string
key:
type: string
namespace:
type: string
type:
type: string
enum: [number, boolean, json, jsonString, base64]
matchLabels:
type: object
x-kubernetes-preserve-unknown-fields: true
additionalProperties: true
secretKeyRef:
type: object
oneOf:
- required: [key, name]
- required: [key, matchLabels]
properties:
name:
type: string
key:
type: string
namespace:
type: string
type:
type: string
enum: [number, boolean, json, jsonString, base64]
matchLabels:
type: object
x-kubernetes-preserve-unknown-fields: true
additionalProperties: true
genericKeyRef:
type: object
oneOf:
- required: [apiVersion, kind, name, key]
- required: [apiVersion, kind, matchLabels, key]
properties:
apiVersion:
type: string
kind:
type: string
name:
type: string
key:
type: string
namespace:
type: string
type:
type: string
enum: [number, boolean, json, jsonString, base64]
matchLabels:
type: object
x-kubernetes-preserve-unknown-fields: true
additionalProperties: true
templates:
type: array
items:
type: object
x-kubernetes-embedded-resource: true
x-kubernetes-preserve-unknown-fields: true
strTemplates:
type: array
items:
type: string
status:
type: object
x-kubernetes-preserve-unknown-fields: true