Skip to content

Instantly share code, notes, and snippets.

@joejulian
Created October 14, 2019 23:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joejulian/5814d3baa3a9b6e8adc75c35de442f18 to your computer and use it in GitHub Desktop.
Save joejulian/5814d3baa3a9b6e8adc75c35de442f18 to your computer and use it in GitHub Desktop.
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
name: addons.kubeaddons.mesosphere.io
spec:
additionalPrinterColumns:
- JSONPath: .status.ready
name: ready
type: string
- JSONPath: .status.stage
name: stage
type: string
group: kubeaddons.mesosphere.io
names:
kind: Addon
listKind: AddonList
plural: addons
singular: addon
scope: ""
subresources:
status: {}
validation:
openAPIV3Schema:
description: Addon is the Schema for the addons API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: AddonSpec defines the desired state of Addon
properties:
chartReference:
description: ChartReference defines the Helm Chart configuration of
this addon (if applicable)
properties:
chart:
description: Chart is the name of the desired chart to use
type: string
release:
description: Release is the helm release by which to reference this
addon
type: string
repo:
description: Repo is the chart repository to use (if not the default)
type: string
values:
description: Values is the value configurations defined to configure
the chart
type: string
version:
description: Version is the version of the chart to use
type: string
required:
- chart
- version
type: object
cloudProvider:
description: 'CloudProvider defines the cloud providers for which this
addon should be included in the default configuration. If CloudProvider
is omitted, all cloud providers will be included and the default for
each will be set to "enabled". If CloudProvider is an empty list,
this addon will not be part of a generated list of available addons
for implementers of this library to consume. They may still add this
addon to their list and enable it. If CloudProvider has any entries,
only those cloud providers will receive this addons as an available
addon in the generated list. Any cloud providers absent from the list
will not receive this addon as "available". TODO: come back and replace
"generated list" with the function name that generates this list.'
items:
description: ProviderSpec is configuration specific to a cloud provider
properties:
enabled:
description: Enabled is a field that can be used by the library
implementer to populate a list of available addons. This field
will allow them to set a default enable or disable setting.
type: boolean
name:
description: Name is the cloud provider name, ie "aws" or "none"
type: string
values:
description: Values provides provider specific values which should
be merged into the general values before deployment
type: string
required:
- enabled
- name
type: object
type: array
kubernetes:
description: Kubernetes defines configuration options relevant to the
Kubernetes cluster where the addon will be deployed
properties:
maxSupportedVersion:
description: MaxSupportedVersion is the maximum version of Kubernetes
that this addon can be used with
type: string
minSupportedVersion:
description: MinSupportedVersion is the minimum version of Kubernetes
that this addon can be used with
type: string
type: object
namespace:
description: Namespace defines the namespace for which to deploy addon
components to (defaults to the same namespace where the addon is installed)
type: string
requires:
description: 'Requires (dependencies) based on LabelSelectors. This
allows for depending on a specific addon, or a label that defines
the capability, ie: test that metadata.labels.cni exists.'
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, the values array must be non-empty. If the
operator is Exists or DoesNotExist, the values array must
be empty. This array is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels map is equivalent to an element
of matchExpressions, whose key field is "key", the operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
type: object
status:
description: AddonStatus defines the observed state of Addon
properties:
ready:
type: boolean
stage:
description: Status represents the operational status of an addon
type: string
required:
- ready
type: object
required:
- metadata
- spec
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: v1
kind: Namespace
metadata:
name: kubeaddons
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubeaddons-controller-manager
namespace: kubeaddons
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubeaddons-controller-manager-cluster-admin-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- apiGroup: ""
kind: ServiceAccount
name: kubeaddons-controller-manager
namespace: kubeaddons
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: kubeaddons-controller-manager
namespace: kubeaddons
labels:
control-plane: kubeaddons-controller-manager
spec:
selector:
matchLabels:
control-plane: kubeaddons-controller-manager
replicas: 1
template:
metadata:
labels:
control-plane: kubeaddons-controller-manager
spec:
serviceAccountName: kubeaddons-controller-manager
containers:
- command:
- /manager
image: mesosphere/kubeaddons:v0.4.1
env:
- name: NO_PROXY
value: ""
- name: HTTP_PROXY
value: ""
- name: HTTPS_PROXY
value: ""
imagePullPolicy: Always
name: manager
resources:
requests:
cpu: 100m
memory: 20Mi
terminationGracePeriodSeconds: 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment