diff --git a/addons/awsebscsiprovisioner/0.5.x/awsebscsiprovisioner-1.yaml b/addons/awsebscsiprovisioner/0.5.x/awsebscsiprovisioner-1.yaml new file mode 100644 index 00000000..2bae3893 --- /dev/null +++ b/addons/awsebscsiprovisioner/0.5.x/awsebscsiprovisioner-1.yaml @@ -0,0 +1,65 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: ClusterAddon +metadata: + name: awsebscsiprovisioner + labels: + kubeaddons.mesosphere.io/name: awsebscsiprovisioner + kubeaddons.mesosphere.io/provides: storageclass + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "0.5.0-1" + appversion.kubeaddons.mesosphere.io/awsebscsiprovisioner: "0.5.0" + values.chart.helm.kubeaddons.mesosphere.io/awsebscsiprovisioner: "https://raw.githubusercontent.com/mesosphere/charts/b6e53ee/stable/awsebscsiprovisioner/values.yaml" +spec: + namespace: kube-system + requires: + - matchLabels: + kubeaddons.mesosphere.io/name: defaultstorageclass-protection + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: true + chartReference: + version: 0.3.5 + chart: awsebscsiprovisioner + repo: https://mesosphere.github.io/charts/stable + values: | + --- + resizer: + enabled: false + snapshotter: + enabled: true + provisioner: + enableVolumeScheduling: true + storageclass: + isDefault: true + reclaimPolicy: Delete + volumeBindingMode: WaitForFirstConsumer + type: gp2 + fstype: ext4 + iopsPerGB: null + encrypted: false + kmsKeyId: null + allowedTopologies: [] + # - matchLabelExpressions: + # - key: topology.ebs.csi.aws.com/zone + # values: + # - us-west-2a + # - us-west-2b + # - us-west-2c + allowVolumeExpansion: true + # replicas of the CSI-Controller + replicas: 1 + statefulSetCSIController: + # if you want to use kube2iam or kiam roles define it here as podAnnotation for the CSI-Controller (statefulSet) + podAnnotations: {} + statefulSetCSISnapshotController: + # if you want to use kube2iam or kiam roles define it here as podAnnotation for the CSI-Snapshot-Controller (statefulSet) + podAnnotations: {} + # Extra volume tags to attach to each dynamically provisioned volume. + # --- + # extraVolumeTags: + # key1: value1 + # key2: value2 + extraVolumeTags: {} diff --git a/addons/cert-manager/0.10.x/cert-manager-3.yaml b/addons/cert-manager/0.10.x/cert-manager-3.yaml new file mode 100644 index 00000000..426158f6 --- /dev/null +++ b/addons/cert-manager/0.10.x/cert-manager-3.yaml @@ -0,0 +1,56 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: ClusterAddon +metadata: + name: cert-manager + labels: + kubeaddons.mesosphere.io/name: cert-manager + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "0.10.1-3" + appversion.kubeaddons.mesosphere.io/cert-manager: "0.10.1" + docs.kubeaddons.mesosphere.io/cert-manager: "https://docs.cert-manager.io/en/release-0.10/" + values.chart.helm.kubeaddons.mesosphere.io/cert-manager: "https://raw.githubusercontent.com/mesosphere/charts/68ababd/staging/cert-manager-setup/values.yaml" +spec: + namespace: cert-manager + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: true + - name: none + enabled: true + chartReference: + chart: cert-manager-setup + repo: https://mesosphere.github.io/charts/staging + version: 0.1.9 + values: | + --- + issuers: + - name: kubernetes-root-issuer + secretName: kubernetes-root-ca + + certificates: + - name: kubernetes-intermediate-ca + secretName: kubernetes-intermediate-ca + issuerRef: + name: kubernetes-root-issuer + kind: Issuer + # These are the default usages for reference + usages: + - "digital signature" + - "key encipherment" + commonName: cert-manager + duration: 87600h + dnsNames: [] + + clusterissuers: + - name: kubernetes-ca + spec: + ca: + secretName: kubernetes-intermediate-ca diff --git a/addons/dex-k8s-authenticator/1.1.x/dex-k8s-authenticator-4.yaml b/addons/dex-k8s-authenticator/1.1.x/dex-k8s-authenticator-4.yaml new file mode 100644 index 00000000..fee8d65f --- /dev/null +++ b/addons/dex-k8s-authenticator/1.1.x/dex-k8s-authenticator-4.yaml @@ -0,0 +1,85 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: Addon +metadata: + name: dex-k8s-authenticator + namespace: kubeaddons + labels: + kubeaddons.mesosphere.io/name: dex-k8s-authenticator + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "1.1.1-4" + appversion.kubeaddons.mesosphere.io/dex-k8s-authenticator: "v1.1.1" + values.chart.helm.kubeaddons.mesosphere.io/dex-k8s-authenticator: "https://raw.githubusercontent.com/mesosphere/charts/f44c645c6bc843b254bb0f4f97d516f2cfee4707/staging/dex-k8s-authenticator/values.yaml" +spec: + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: true + - name: none + enabled: true + requires: + - matchLabels: + kubeaddons.mesosphere.io/name: dex + - matchLabels: + kubeaddons.mesosphere.io/provides: ingresscontroller + chartReference: + chart: dex-k8s-authenticator + repo: https://mesosphere.github.io/charts/staging + version: 1.1.15 + values: | + --- + image: + repository: mesosphere/dex-k8s-authenticator + tag: v1.1.0-43-gb097-d2iq + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + path: /token + hosts: + - "" + dexK8sAuthenticator: + #logoUrl: http:// + #tlsCert: /path/to/dex-client.crt + #tlsKey: /path/to/dex-client.key + clusters: + - name: kubernetes-cluster + short_description: "Kubernetes cluster" + description: "Kubernetes cluster authenticator" + # client_secret: value is generated automatically via initContainers + client_id: kube-apiserver + issuer: https://dex-kubeaddons.kubeaddons.svc.cluster.local:8080/dex + # This URI is just a placeholder and it will be replaced during initContainers + # with a URL pointing to the traefik ingress public load balancer. + redirect_uri: https://dex-k8s-authenticator-kubeaddons.kubeaddons.svc.cluster.local:5555/token/callback/kubernetes-cluster + resources: + requests: + cpu: 100m + memory: 128Mi + deploymentAnnotations: + # The certificate can change because it was rotated or different cluster + # DNS name has been set. + secret.reloader.stakater.com/reload: "traefik-kubeaddons-certificate" + configmap.reloader.stakater.com/reload: "dex-k8s-authenticator-kubeaddons" + initContainers: + - name: initialize-dka-config + image: mesosphere/kubeaddons-addon-initializer:v0.2.7 + args: ["dexK8sAuthenticator"] + env: + - name: "DKA_CONFIGMAP_NAME" + value: "dex-k8s-authenticator-kubeaddons" + - name: "DKA_NAMESPACE" + value: "kubeaddons" + - name: "DKA_INGRESS_NAMESPACE" + value: "kubeaddons" + - name: "DKA_INGRESS_SERVICE_NAME" + value: "traefik-kubeaddons" + - name: "DKA_WEB_PREFIX_PATH" + value: "/token" diff --git a/addons/elasticsearch-curator/5.7.x/elasticsearch-curator-2.yaml b/addons/elasticsearch-curator/5.7.x/elasticsearch-curator-2.yaml new file mode 100644 index 00000000..edd1f9b8 --- /dev/null +++ b/addons/elasticsearch-curator/5.7.x/elasticsearch-curator-2.yaml @@ -0,0 +1,84 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: Addon +metadata: + name: elasticsearch-curator + namespace: kubeaddons + labels: + kubeaddons.mesosphere.io/name: elasticsearch-curator + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "5.7.6-2" + appversion.kubeaddons.mesosphere.io/elasticsearch-curator: "5.7.6" + values.chart.helm.kubeaddons.mesosphere.io/elasticsearch-curator: "https://raw.githubusercontent.com/helm/charts/2967c0e1590fe86bed41d2219ace376e22930cb6/stable/elasticsearch-curator/values.yaml" +spec: + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: false + - name: none + enabled: true + requires: + - matchLabels: + kubeaddons.mesosphere.io/name: elasticsearch + chartReference: + chart: stable/elasticsearch-curator + version: 2.1.3 + values: | + --- + resources: {} + + cronjob: + # At 12:00 pm every day + schedule: "0 0 * * *" + annotations: {} + labels: {} + concurrencyPolicy: "" + failedJobsHistoryLimit: "" + successfulJobsHistoryLimit: "" + jobRestartPolicy: Never + + pod: + annotations: {} + labels: {} + + rbac: + enabled: true + + configMaps: + # Delete indices older than 10 days + action_file_yml: |- + --- + actions: + 1: + action: delete_indices + description: "Clean up ES by deleting indices older than 30 days" + options: + timeout_override: + continue_if_exception: False + disable_action: False + ignore_empty_list: True + filters: + - filtertype: pattern + kind: prefix + value: kubernetes_cluster- + - filtertype: age + source: name + direction: older + timestring: '%Y.%m.%d' + unit: days + unit_count: 10 + + # Having config_yaml WILL override the other config + config_yml: |- + --- + client: + hosts: + - http://elasticsearch-kubeaddons-client + port: 9200 diff --git a/addons/elasticsearch/6.8.x/elasticsearch-3.yaml b/addons/elasticsearch/6.8.x/elasticsearch-3.yaml new file mode 100644 index 00000000..2ada3263 --- /dev/null +++ b/addons/elasticsearch/6.8.x/elasticsearch-3.yaml @@ -0,0 +1,83 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: Addon +metadata: + name: elasticsearch + namespace: kubeaddons + labels: + kubeaddons.mesosphere.io/name: elasticsearch + # TODO: we're temporarily supporting dependency on an existing default storage class + # on the cluster, this hack will trigger re-queue on Addons until one exists. + kubeaddons.mesosphere.io/hack-requires-defaultstorageclass: "true" + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "6.8.2-3" + appversion.kubeaddons.mesosphere.io/elasticsearch: "6.8.2" + values.chart.helm.kubeaddons.mesosphere.io/elasticsearch: "https://raw.githubusercontent.com/helm/charts/6bfbc8018cd4440637b07c7559d5812e4d9db34d/stable/elasticsearch/values.yaml" +spec: + kubernetes: + minSupportedVersion: v1.15.0 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: false + - name: none + enabled: true + chartReference: + chart: stable/elasticsearch + version: 1.32.0 + values: | + --- + client: + heapSize: 1024m + resources: + limits: + cpu: 500m + memory: 2048Mi + requests: + cpu: 100m + memory: 1536Mi + master: + updateStrategy: + type: RollingUpdate + heapSize: 1024m + resources: + # need more cpu upon initialization, therefore burstable class + limits: + cpu: 1000m + memory: 2048Mi + requests: + cpu: 500m + memory: 1536Mi + data: + persistence: + size: "50Gi" + updateStrategy: + type: RollingUpdate + hooks: + drain: + enabled: false + # Because the drain is set to false, we can take advantage here and create resources we need + postStart: |- + #!/bin/bash + # Creating the index template: 'kubernetes_cluster' + # Reduces the number of fields produced due to the indexing of the audit logs + # if template doesnt return 200, try to create it + if ! curl -I -XGET '{{ template "elasticsearch.client.fullname" . }}:9200/_template/kubernetes_cluster' | grep "200" > /dev/null + then + echo "Creating the index template: 'kubernetes_cluster'" + curl -H 'Content-Type: application/json' -XPUT '{{ template "elasticsearch.client.fullname" . }}:9200/_template/kubernetes_cluster' -d '{"index_patterns":["kubernetes_cluster*"],"mappings":{"flb_type":{"properties":{"@ts":{"type":"date"},"requestObject":{"dynamic":false,"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"metadata":{"properties":{"creationTimestamp":{"type":"date"},"labels":{"properties":{"app":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/instance":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/managed-by":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/version":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"helm_sh/chart":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespace":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ownerReferences":{"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"status":{"properties":{"allowed":{"type":"boolean"},"conditions":{"properties":{"lastHeartbeatTime":{"type":"date"},"lastTransitionTime":{"type":"date"},"lastUpdateTime":{"type":"date"},"message":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"status":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"containerStatuses":{"properties":{"containerID":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"image":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"imageID":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"lastState":{"properties":{"terminated":{"properties":{"containerID":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"exitCode":{"type":"long"},"finishedAt":{"type":"date"},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"startedAt":{"type":"date"}}}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ready":{"type":"boolean"},"restartCount":{"type":"long"},"started":{"type":"boolean"},"state":{"properties":{"running":{"properties":{"startedAt":{"type":"date"}}},"waiting":{"properties":{"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}},"hostIP":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"loadBalancer":{"properties":{"ingress":{"properties":{"hostname":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"podIP":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"spec":{"properties":{"user":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"template":{"properties":{"spec":{"properties":{"containers":{"properties":{"args":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"command":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"env":{"properties":{"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"value":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"valueFrom":{"properties":{"fieldRef":{"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"fieldPath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}},"image":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"imagePullPolicy":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"livenessProbe":{"properties":{"failureThreshold":{"type":"long"},"httpGet":{"properties":{"path":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"port":{"type":"long"},"scheme":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"initialDelaySeconds":{"type":"long"},"periodSeconds":{"type":"long"},"successThreshold":{"type":"long"},"timeoutSeconds":{"type":"long"}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ports":{"properties":{"containerPort":{"type":"long"},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"protocol":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"readinessProbe":{"properties":{"failureThreshold":{"type":"long"},"httpGet":{"properties":{"path":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"port":{"type":"long"},"scheme":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"initialDelaySeconds":{"type":"long"},"periodSeconds":{"type":"long"},"successThreshold":{"type":"long"},"timeoutSeconds":{"type":"long"}}},"resources":{"properties":{"limits":{"properties":{"cpu":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"memory":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"requests":{"properties":{"cpu":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"memory":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"terminationMessagePath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"terminationMessagePolicy":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"volumeMounts":{"properties":{"mountPath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"readOnly":{"type":"boolean"}}}}},"serviceAccount":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"serviceAccountName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}},"webhooks":{"properties":{"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespaceSelector":{"properties":{"matchExpressions":{"properties":{"key":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"operator":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"values":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"objectSelector":{"properties":{"matchExpressions":{"properties":{"key":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"operator":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"values":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}}}},"responseObject":{"dynamic":false,"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"metadata":{"properties":{"creationTimestamp":{"type":"date"},"labels":{"properties":{"app":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/instance":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/managed-by":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/version":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"chart":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"helm_sh/chart":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespace":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ownerReferences":{"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"status":{"properties":{"allowed":{"type":"boolean"},"conditions":{"properties":{"lastTransitionTime":{"type":"date"},"lastUpdateTime":{"type":"date"},"message":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"status":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"spec":{"properties":{"template":{"properties":{"spec":{"properties":{"containers":{"properties":{"command":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"image":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"imagePullPolicy":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ports":{"properties":{"containerPort":{"type":"long"},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"protocol":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"volumeMounts":{"properties":{"mountPath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"readOnly":{"type":"boolean"}}}}},"serviceAccount":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"serviceAccountName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"user":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"webhooks":{"properties":{"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespaceSelector":{"properties":{"matchExpressions":{"properties":{"key":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"operator":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"values":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}}}},"responseStatus":{"dynamic":false,"properties":{"code":{"type":"long"},"message":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"metadata":{"type":"object"},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"status":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}}' + fi + heapSize: 3072m + resources: + # need more cpu upon initialization, therefore burstable class + limits: + cpu: 2000m + memory: 8192Mi + requests: + cpu: 1000m + memory: 4608Mi diff --git a/addons/elasticsearch/6.8.x/elasticsearch-4.yaml b/addons/elasticsearch/6.8.x/elasticsearch-4.yaml new file mode 100644 index 00000000..f014d1ac --- /dev/null +++ b/addons/elasticsearch/6.8.x/elasticsearch-4.yaml @@ -0,0 +1,81 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: Addon +metadata: + name: elasticsearch + namespace: kubeaddons + labels: + kubeaddons.mesosphere.io/name: elasticsearch + # TODO: we're temporarily supporting dependency on an existing default storage class + # on the cluster, this hack will trigger re-queue on Addons until one exists. + kubeaddons.mesosphere.io/hack-requires-defaultstorageclass: "true" + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "6.8.2-4" + appversion.kubeaddons.mesosphere.io/elasticsearch: "6.8.2" + values.chart.helm.kubeaddons.mesosphere.io/elasticsearch: "https://raw.githubusercontent.com/helm/charts/6bfbc8018cd4440637b07c7559d5812e4d9db34d/stable/elasticsearch/values.yaml" +spec: + kubernetes: + minSupportedVersion: v1.15.0 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: false + - name: none + enabled: true + chartReference: + chart: stable/elasticsearch + version: 1.32.0 + values: | + --- + client: + heapSize: 1024m + resources: + limits: + cpu: 500m + memory: 2048Mi + requests: + cpu: 100m + memory: 1536Mi + master: + updateStrategy: + type: RollingUpdate + heapSize: 1024m + resources: + # need more cpu upon initialization, therefore burstable class + limits: + cpu: 1000m + memory: 2048Mi + requests: + cpu: 500m + memory: 1536Mi + data: + updateStrategy: + type: RollingUpdate + hooks: + drain: + enabled: false + # Because the drain is set to false, we can take advantage here and create resources we need + postStart: |- + #!/bin/bash + # Creating the index template: 'kubernetes_cluster' + # Reduces the number of fields produced due to the indexing of the audit logs + # if template doesnt return 200, try to create it + if ! curl -I -XGET '{{ template "elasticsearch.client.fullname" . }}:9200/_template/kubernetes_cluster' | grep "200" > /dev/null + then + echo "Creating the index template: 'kubernetes_cluster'" + curl -H 'Content-Type: application/json' -XPUT '{{ template "elasticsearch.client.fullname" . }}:9200/_template/kubernetes_cluster' -d '{"index_patterns":["kubernetes_cluster*"],"mappings":{"flb_type":{"properties":{"@ts":{"type":"date"},"requestObject":{"dynamic":false,"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"metadata":{"properties":{"creationTimestamp":{"type":"date"},"labels":{"properties":{"app":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/instance":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/managed-by":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/version":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"helm_sh/chart":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespace":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ownerReferences":{"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"status":{"properties":{"allowed":{"type":"boolean"},"conditions":{"properties":{"lastHeartbeatTime":{"type":"date"},"lastTransitionTime":{"type":"date"},"lastUpdateTime":{"type":"date"},"message":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"status":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"containerStatuses":{"properties":{"containerID":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"image":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"imageID":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"lastState":{"properties":{"terminated":{"properties":{"containerID":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"exitCode":{"type":"long"},"finishedAt":{"type":"date"},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"startedAt":{"type":"date"}}}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ready":{"type":"boolean"},"restartCount":{"type":"long"},"started":{"type":"boolean"},"state":{"properties":{"running":{"properties":{"startedAt":{"type":"date"}}},"waiting":{"properties":{"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}},"hostIP":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"loadBalancer":{"properties":{"ingress":{"properties":{"hostname":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"podIP":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"spec":{"properties":{"user":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"template":{"properties":{"spec":{"properties":{"containers":{"properties":{"args":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"command":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"env":{"properties":{"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"value":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"valueFrom":{"properties":{"fieldRef":{"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"fieldPath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}},"image":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"imagePullPolicy":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"livenessProbe":{"properties":{"failureThreshold":{"type":"long"},"httpGet":{"properties":{"path":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"port":{"type":"long"},"scheme":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"initialDelaySeconds":{"type":"long"},"periodSeconds":{"type":"long"},"successThreshold":{"type":"long"},"timeoutSeconds":{"type":"long"}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ports":{"properties":{"containerPort":{"type":"long"},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"protocol":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"readinessProbe":{"properties":{"failureThreshold":{"type":"long"},"httpGet":{"properties":{"path":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"port":{"type":"long"},"scheme":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"initialDelaySeconds":{"type":"long"},"periodSeconds":{"type":"long"},"successThreshold":{"type":"long"},"timeoutSeconds":{"type":"long"}}},"resources":{"properties":{"limits":{"properties":{"cpu":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"memory":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"requests":{"properties":{"cpu":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"memory":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"terminationMessagePath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"terminationMessagePolicy":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"volumeMounts":{"properties":{"mountPath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"readOnly":{"type":"boolean"}}}}},"serviceAccount":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"serviceAccountName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}},"webhooks":{"properties":{"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespaceSelector":{"properties":{"matchExpressions":{"properties":{"key":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"operator":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"values":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"objectSelector":{"properties":{"matchExpressions":{"properties":{"key":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"operator":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"values":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}}}},"responseObject":{"dynamic":false,"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"metadata":{"properties":{"creationTimestamp":{"type":"date"},"labels":{"properties":{"app":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/instance":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/managed-by":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"app_kubernetes_io/version":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"chart":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"helm_sh/chart":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespace":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ownerReferences":{"properties":{"apiVersion":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"kind":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"uid":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"status":{"properties":{"allowed":{"type":"boolean"},"conditions":{"properties":{"lastTransitionTime":{"type":"date"},"lastUpdateTime":{"type":"date"},"message":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"status":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"spec":{"properties":{"template":{"properties":{"spec":{"properties":{"containers":{"properties":{"command":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"image":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"imagePullPolicy":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ports":{"properties":{"containerPort":{"type":"long"},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"protocol":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"volumeMounts":{"properties":{"mountPath":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"readOnly":{"type":"boolean"}}}}},"serviceAccount":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"serviceAccountName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"user":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"webhooks":{"properties":{"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"namespaceSelector":{"properties":{"matchExpressions":{"properties":{"key":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"operator":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"values":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}}}},"responseStatus":{"dynamic":false,"properties":{"code":{"type":"long"},"message":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"metadata":{"type":"object"},"reason":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"status":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}}' + fi + heapSize: 3072m + resources: + # need more cpu upon initialization, therefore burstable class + limits: + cpu: 2000m + memory: 8192Mi + requests: + cpu: 1000m + memory: 4608Mi diff --git a/addons/istio/1.4.x/istio-2.yaml b/addons/istio/1.4.x/istio-2.yaml new file mode 100644 index 00000000..e9464066 --- /dev/null +++ b/addons/istio/1.4.x/istio-2.yaml @@ -0,0 +1,94 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: ClusterAddon +metadata: + name: istio + labels: + kubeaddons.mesosphere.io/name: istio + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "1.4.3-2" + appversion.kubeaddons.mesosphere.io/istio: "1.4.3" + appversion.kubeaddons.mesosphere.io/kiali: "1.4.3" + appversion.kubeaddons.mesosphere.io/jaeger: "1.4.3" + stage.kubeaddons.mesosphere.io/kiali: Preview + stage.kubeaddons.mesosphere.io/jaeger: Preview + endpoint.kubeaddons.mesosphere.io/kiali: "/ops/portal/kiali" + endpoint.kubeaddons.mesosphere.io/jaeger: "/ops/portal/jaeger" + docs.kubeaddons.mesosphere.io/istio: "https://istio.io/docs/" + docs.kubeaddons.mesosphere.io/kiali: "https://istio.io/docs/tasks/telemetry/kiali/" + docs.kubeaddons.mesosphere.io/jaeger: "https://istio.io/docs/tasks/telemetry/distributed-tracing/jaeger/" + values.chart.helm.kubeaddons.mesosphere.io/istio: "https://raw.githubusercontent.com/mesosphere/charts/63bbc17eda76f2136f6ab4f6d6eef7e764e5f0a5/staging/istio/values.yaml" +spec: + namespace: istio-system + requires: + - matchLabels: + kubeaddons.mesosphere.io/name: cert-manager + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: false + - name: azure + enabled: false + - name: docker + enabled: false + - name: none + enabled: false + chartReference: + chart: istio + repo: https://mesosphere.github.io/charts/staging + version: 1.4.3 + values: | + kiali: + enabled: true + contextPath: /ops/portal/kiali + ingress: + enabled: true + kubernetes.io/ingress.class: traefik + hosts: + - "" + dashboard: + auth: + strategy: anonymous + prometheusAddr: http://prometheus-kubeaddons-prom-prometheus.kubeaddons:9090 + + tracing: + enabled: true + contextPath: /ops/portal/jaeger + ingress: + enabled: true + kubernetes.io/ingress.class: traefik + hosts: + - "" + + grafana: + enabled: true + + prometheus: + serviceName: prometheus-kubeaddons-prom-prometheus.kubeaddons + + istiocoredns: + enabled: true + + security: + selfSigned: false + caCert: /etc/cacerts/tls.crt + caKey: /etc/cacerts/tls.key + rootCert: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + certChain: /etc/cacerts/tls.crt + enableNamespacesByDefault: false + + global: + podDNSSearchNamespaces: + - global + - "{{ valueOrDefault .DeploymentMeta.Namespace \"default\" }}.global" + defaultPodDisruptionBudget: + enabled: false + + mtls: + enabled: true + + multiCluster: + enabled: true + + controlPlaneSecurityEnabled: true diff --git a/addons/kube-oidc-proxy/0.1.x/kube-oidc-proxy-3.yaml b/addons/kube-oidc-proxy/0.1.x/kube-oidc-proxy-3.yaml new file mode 100644 index 00000000..56539460 --- /dev/null +++ b/addons/kube-oidc-proxy/0.1.x/kube-oidc-proxy-3.yaml @@ -0,0 +1,74 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: Addon +metadata: + name: kube-oidc-proxy + namespace: kubeaddons + labels: + kubeaddons.mesosphere.io/name: kube-oidc-proxy + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "0.1.1-3" + appversion.kubeaddons.mesosphere.io/kube-oidc-proxy: "v0.1.1" + values.chart.helm.kubeaddons.mesosphere.io/kube-oidc-proxy: "https://raw.githubusercontent.com/mesosphere/charts/8f43d8c479a61863c34fdfdb5ae56b9e3f81bbce/staging/kube-oidc-proxy/values.yaml" +spec: + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: true + - name: none + enabled: true + requires: + - matchLabels: + kubeaddons.mesosphere.io/provides: ingresscontroller + - matchLabels: + kubeaddons.mesosphere.io/name: cert-manager + - matchLabels: + kubeaddons.mesosphere.io/name: dex + chartReference: + chart: kube-oidc-proxy + repo: https://mesosphere.github.io/charts/staging + version: 0.2.1 + values: | + --- + image: + repository: quay.io/jetstack/kube-oidc-proxy + tag: v0.2.0 + pullPolicy: IfNotPresent + + deploymentAnnotations: + # The certificate can change because it was rotated or different cluster + # DNS name has been set. + secret.reloader.stakater.com/reload: "traefik-kubeaddons-certificate" + + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + ingress.kubernetes.io/protocol: https + traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip + path: /konvoy/api-server + hosts: + - "" + + oidc: + clientId: kube-apiserver + # updated by initcontainer when working with a remote dex + issuerUrl: https://dex-kubeaddons.kubeaddons.svc.cluster.local:8080/dex + usernameClaim: email + groupsClaim: groups + groupsPrefix: "oidc:" + + tokenPassthrough: + enabled: true + + initContainers: + - name: initialize-kube-oidc-proxy + image: mesosphere/kubeaddons-addon-initializer:v0.1.9 + args: ["kube-oidc-proxy"] diff --git a/addons/prometheus/0.35.x/prometheus-1.yaml b/addons/prometheus/0.35.x/prometheus-1.yaml new file mode 100644 index 00000000..ca62b6f0 --- /dev/null +++ b/addons/prometheus/0.35.x/prometheus-1.yaml @@ -0,0 +1,340 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: Addon +metadata: + name: prometheus + namespace: kubeaddons + labels: + kubeaddons.mesosphere.io/name: prometheus + # TODO: we're temporarily supporting dependency on an existing default storage class + # on the cluster, this hack will trigger re-queue on Addons until one exists. + kubeaddons.mesosphere.io/hack-requires-defaultstorageclass: "true" + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "0.35.0-1" + appversion.kubeaddons.mesosphere.io/prometheus-operator: "0.35.0" + appversion.kubeaddons.mesosphere.io/prometheus: "2.15.2" + appversion.kubeaddons.mesosphere.io/alertmanager: "0.20.0" + appversion.kubeaddons.mesosphere.io/grafana: "6.4.2" + endpoint.kubeaddons.mesosphere.io/prometheus: "/ops/portal/prometheus" + endpoint.kubeaddons.mesosphere.io/alertmanager: "/ops/portal/alertmanager" + endpoint.kubeaddons.mesosphere.io/grafana: "/ops/portal/grafana" + docs.kubeaddons.mesosphere.io/prometheus: "https://prometheus.io/docs/introduction/overview/" + docs.kubeaddons.mesosphere.io/grafana: "https://grafana.com/docs/" + docs.kubeaddons.mesosphere.io/alertmanager: "https://prometheus.io/docs/alerting/alertmanager/" + values.chart.helm.kubeaddons.mesosphere.io/prometheus: "https://raw.githubusercontent.com/mesosphere/charts/a370c215c08ca7e50055902177141554de5444e6/staging/prometheus-operator/values.yaml" + # The prometheus-operator chart from prior Konvoy releases can't be upgraded to this chart version. + # See https://jira.d2iq.com/browse/DCOS-62924. + helmv2.kubeaddons.mesosphere.io/upgrade-strategy: '[{"upgradeFrom": "<=5.19.7", "strategy": "delete"}]' +spec: + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: false + - name: none + enabled: true + chartReference: + chart: prometheus-operator + repo: https://mesosphere.github.io/charts/staging + version: 8.8.2 + values: | + --- + defaultRules: + rules: + etcd: false + mesosphereResources: + create: true + rules: + etcd: true + # addon alert rules are defaulted to false to prevent potential misfires if addons + # are disabled. + velero: false + prometheus: + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + traefik.frontend.rule.type: PathPrefixStrip + traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group + traefik.ingress.kubernetes.io/auth-type: forward + traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/ + traefik.ingress.kubernetes.io/priority: "2" + paths: + - /ops/portal/prometheus + service: + additionalPorts: + # Service port for Thanos gRPC. + - name: grpc + port: 10901 + targetPort: grpc + additionalServiceMonitors: + - name: kubeaddons-service-monitor-metrics + selector: + matchLabels: + servicemonitor.kubeaddons.mesosphere.io/path: "metrics" + namespaceSelector: + matchNames: + - kubeaddons + - kommander + - velero + endpoints: + - port: metrics + interval: 30s + - port: monitoring + interval: 30s + # Service port for Thanos Querier, running in Kommander. + # If we ever add a Kommander-specific Prometheus, this + # endpoint should be removed and added to that Prometheus's + # configuration. + - targetPort: 10902 + interval: 30s + - name: kubeaddons-service-monitor-api-v1-metrics-prometheus + selector: + matchLabels: + servicemonitor.kubeaddons.mesosphere.io/path: "api__v1__metrics__prometheus" + namespaceSelector: + matchNames: + - kubeaddons + endpoints: + - path: /api/v1/metrics/prometheus + port: metrics + interval: 30s + - name: kubeaddons-service-monitor-prometheus-metrics + selector: + matchLabels: + servicemonitor.kubeaddons.mesosphere.io/path: "prometheus__metrics" + namespaceSelector: + matchNames: + - kubeaddons + endpoints: + - path: /_prometheus/metrics + targetPort: 5601 + interval: 30s + prometheusSpec: + thanos: + version: v0.8.1 + externalLabels: + cluster: $(CLUSTER_ID) + containers: + - name: prometheus-config-reloader + envFrom: + - configMapRef: + name: cluster-info-configmap + additionalScrapeConfigs: + - job_name: 'kubernetes-nodes-containerd' + metrics_path: /v1/metrics + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: node + relabel_configs: + - source_labels: [__address__] + regex: '(.*):10250' + replacement: '${1}:1338' + target_label: __address__ + - job_name: 'gpu_metrics' + metrics_path: /gpu/metrics + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: node + relabel_configs: + - source_labels: [__address__] + regex: '(.*):10250' + replacement: '${1}:9400' + target_label: __address__ + - source_labels: [__meta_kubernetes_node_label_konvoy_mesosphere_com_gpu_provider] + regex: NVIDIA + action: keep + - job_name: 'kubernetes-calico-node' + metrics_path: /metrics + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: pod + namespaces: + names: + - kube-system + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_k8s_app] + regex: calico-node + action: keep + - source_labels: [__meta_kubernetes_pod_container_port_name] + regex: .*metrics + action: keep + - source_labels: [__meta_kubernetes_pod_label_k8s_app] + target_label: name + action: replace + - source_labels: [__meta_kubernetes_pod_container_port_name] + target_label: endpoint + action: replace + - source_labels: [__meta_kubernetes_pod_node_name] + target_label: node + action: replace + - source_labels: [__meta_kubernetes_pod_name] + target_label: pod + action: replace + - source_labels: [__meta_kubernetes_namespace] + target_label: namespace + action: replace + - job_name: 'kubernetes-keepalived' + metrics_path: /snmp + params: + target: ["127.0.0.1:6161"] + module: ["keepalived"] + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: pod + namespaces: + names: + - kube-system + relabel_configs: + - source_labels: [__meta_kubernetes_pod_container_port_protocol] + regex: TCP + action: keep + - source_labels: [__meta_kubernetes_pod_container_port_number] + regex: "6161" + action: keep + - source_labels: [__meta_kubernetes_pod_container_port_name] + target_label: endpoint + action: replace + - source_labels: [__meta_kubernetes_pod_node_name] + target_label: node + action: replace + - source_labels: [__meta_kubernetes_pod_name] + target_label: pod + action: replace + - source_labels: [__meta_kubernetes_namespace] + target_label: namespace + action: replace + enableAdminAPI: true + secrets: + - etcd-certs + externalUrl: "/ops/portal/prometheus" + storageSpec: + volumeClaimTemplate: + metadata: + name: db + spec: + accessModes: ["ReadWriteOnce"] + # 50Gi is the default size for the chart + resources: + requests: + storage: 50Gi + resources: + limits: + cpu: 1000m + memory: 2500Mi + requests: + cpu: 300m + memory: 1500Mi + alertmanager: + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + traefik.frontend.rule.type: PathPrefixStrip + traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group + traefik.ingress.kubernetes.io/auth-type: forward + traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/ + traefik.ingress.kubernetes.io/priority: "2" + paths: + - /ops/portal/alertmanager + alertmanagerSpec: + resources: + limits: + cpu: 100m + memory: 50Mi + requests: + cpu: 10m + memory: 50Mi + grafana: + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + ingress.kubernetes.io/auth-response-headers: X-Forwarded-User + traefik.frontend.rule.type: PathPrefixStrip + traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group + traefik.ingress.kubernetes.io/auth-type: forward + traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/ + traefik.ingress.kubernetes.io/priority: "2" + hosts: [""] + path: /ops/portal/grafana + grafana.ini: + server: + protocol: http + enable_gzip: true + root_url: "%(protocol)s://%(domain)s:%(http_port)s/ops/portal/grafana" + auth.proxy: + enabled: true + header_name: X-Forwarded-User + auto-sign-up: true + auth.basic: + enabled: false + users: + auto_assign_org_role: Admin + service: + type: ClusterIP + port: 3000 + resources: + # keep request = limit to keep this container in guaranteed class + limits: + cpu: 300m + memory: 100Mi + requests: + cpu: 200m + memory: 100Mi + readinessProbe: + httpGet: + path: /api/health + port: 3000 + scheme: HTTP + livenessProbe: + httpGet: + path: /api/health + port: 3000 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 30 + failureThreshold: 10 + rbac: + pspUseAppArmor: false + # to avoid needing to download any plugins at runtime, use a container and a shared volume + # do not enable the plugins here, instead rebuild the mesosphere/grafana-plugins image with the new plugins + plugins: [] + # - grafana-piechart-panel + extraEmptyDirMounts: + - name: plugins + mountPath: /var/lib/grafana/plugins/ + extraInitContainers: + - name: grafana-plugins-install + image: mesosphere/grafana-plugins:v0.0.1 + command: ["/bin/sh", "-c", "cp -a /var/lib/grafana/plugins/. /var/lib/grafana/shared-plugins/"] + volumeMounts: + - name: plugins + mountPath: /var/lib/grafana/shared-plugins/ + kubeEtcd: + enabled: true + serviceMonitor: + scheme: "https" + caFile: "/etc/prometheus/secrets/etcd-certs/ca.crt" + certFile: "/etc/prometheus/secrets/etcd-certs/server.crt" + keyFile: "/etc/prometheus/secrets/etcd-certs/server.key" + kube-state-metrics: + image: + # override the default k8s.gcr.io/kube-state-metrics repositry + # containerd mirror functionality does not support pulling these images + # TODO remove once https://github.com/containerd/containerd/issues/3756 is resolved + repository: quay.io/coreos/kube-state-metrics diff --git a/addons/prometheus/0.35.x/prometheus-2.yaml b/addons/prometheus/0.35.x/prometheus-2.yaml new file mode 100644 index 00000000..091a9983 --- /dev/null +++ b/addons/prometheus/0.35.x/prometheus-2.yaml @@ -0,0 +1,340 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: Addon +metadata: + name: prometheus + namespace: kubeaddons + labels: + kubeaddons.mesosphere.io/name: prometheus + # TODO: we're temporarily supporting dependency on an existing default storage class + # on the cluster, this hack will trigger re-queue on Addons until one exists. + kubeaddons.mesosphere.io/hack-requires-defaultstorageclass: "true" + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "0.35.0-2" + appversion.kubeaddons.mesosphere.io/prometheus-operator: "0.35.0" + appversion.kubeaddons.mesosphere.io/prometheus: "2.15.2" + appversion.kubeaddons.mesosphere.io/alertmanager: "0.20.0" + appversion.kubeaddons.mesosphere.io/grafana: "6.4.2" + endpoint.kubeaddons.mesosphere.io/prometheus: "/ops/portal/prometheus" + endpoint.kubeaddons.mesosphere.io/alertmanager: "/ops/portal/alertmanager" + endpoint.kubeaddons.mesosphere.io/grafana: "/ops/portal/grafana" + docs.kubeaddons.mesosphere.io/prometheus: "https://prometheus.io/docs/introduction/overview/" + docs.kubeaddons.mesosphere.io/grafana: "https://grafana.com/docs/" + docs.kubeaddons.mesosphere.io/alertmanager: "https://prometheus.io/docs/alerting/alertmanager/" + values.chart.helm.kubeaddons.mesosphere.io/prometheus: "https://raw.githubusercontent.com/mesosphere/charts/a370c215c08ca7e50055902177141554de5444e6/staging/prometheus-operator/values.yaml" + # The prometheus-operator chart from prior Konvoy releases can't be upgraded to this chart version. + # See https://jira.d2iq.com/browse/DCOS-62924. + helmv2.kubeaddons.mesosphere.io/upgrade-strategy: '[{"upgradeFrom": "<=5.19.7", "strategy": "delete"}]' +spec: + kubernetes: + minSupportedVersion: v1.15.6 + cloudProvider: + - name: aws + enabled: true + - name: azure + enabled: true + - name: gcp + enabled: true + - name: docker + enabled: false + - name: none + enabled: true + chartReference: + chart: prometheus-operator + repo: https://mesosphere.github.io/charts/staging + version: 8.8.4 + values: | + --- + defaultRules: + rules: + etcd: false + mesosphereResources: + create: true + rules: + etcd: true + # addon alert rules are defaulted to false to prevent potential misfires if addons + # are disabled. + velero: false + prometheus: + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + traefik.frontend.rule.type: PathPrefixStrip + traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group + traefik.ingress.kubernetes.io/auth-type: forward + traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/ + traefik.ingress.kubernetes.io/priority: "2" + paths: + - /ops/portal/prometheus + service: + additionalPorts: + # Service port for Thanos gRPC. + - name: grpc + port: 10901 + targetPort: grpc + additionalServiceMonitors: + - name: kubeaddons-service-monitor-metrics + selector: + matchLabels: + servicemonitor.kubeaddons.mesosphere.io/path: "metrics" + namespaceSelector: + matchNames: + - kubeaddons + - kommander + - velero + endpoints: + - port: metrics + interval: 30s + - port: monitoring + interval: 30s + # Service port for Thanos Querier, running in Kommander. + # If we ever add a Kommander-specific Prometheus, this + # endpoint should be removed and added to that Prometheus's + # configuration. + - targetPort: 10902 + interval: 30s + - name: kubeaddons-service-monitor-api-v1-metrics-prometheus + selector: + matchLabels: + servicemonitor.kubeaddons.mesosphere.io/path: "api__v1__metrics__prometheus" + namespaceSelector: + matchNames: + - kubeaddons + endpoints: + - path: /api/v1/metrics/prometheus + port: metrics + interval: 30s + - name: kubeaddons-service-monitor-prometheus-metrics + selector: + matchLabels: + servicemonitor.kubeaddons.mesosphere.io/path: "prometheus__metrics" + namespaceSelector: + matchNames: + - kubeaddons + endpoints: + - path: /_prometheus/metrics + targetPort: 5601 + interval: 30s + prometheusSpec: + thanos: + version: v0.8.1 + externalLabels: + cluster: $(CLUSTER_ID) + containers: + - name: prometheus-config-reloader + envFrom: + - configMapRef: + name: cluster-info-configmap + additionalScrapeConfigs: + - job_name: 'kubernetes-nodes-containerd' + metrics_path: /v1/metrics + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: node + relabel_configs: + - source_labels: [__address__] + regex: '(.*):10250' + replacement: '${1}:1338' + target_label: __address__ + - job_name: 'gpu_metrics' + metrics_path: /gpu/metrics + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: node + relabel_configs: + - source_labels: [__address__] + regex: '(.*):10250' + replacement: '${1}:9400' + target_label: __address__ + - source_labels: [__meta_kubernetes_node_label_konvoy_mesosphere_com_gpu_provider] + regex: NVIDIA + action: keep + - job_name: 'kubernetes-calico-node' + metrics_path: /metrics + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: pod + namespaces: + names: + - kube-system + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_k8s_app] + regex: calico-node + action: keep + - source_labels: [__meta_kubernetes_pod_container_port_name] + regex: .*metrics + action: keep + - source_labels: [__meta_kubernetes_pod_label_k8s_app] + target_label: name + action: replace + - source_labels: [__meta_kubernetes_pod_container_port_name] + target_label: endpoint + action: replace + - source_labels: [__meta_kubernetes_pod_node_name] + target_label: node + action: replace + - source_labels: [__meta_kubernetes_pod_name] + target_label: pod + action: replace + - source_labels: [__meta_kubernetes_namespace] + target_label: namespace + action: replace + - job_name: 'kubernetes-keepalived' + metrics_path: /snmp + params: + target: ["127.0.0.1:6161"] + module: ["keepalived"] + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: pod + namespaces: + names: + - kube-system + relabel_configs: + - source_labels: [__meta_kubernetes_pod_container_port_protocol] + regex: TCP + action: keep + - source_labels: [__meta_kubernetes_pod_container_port_number] + regex: "6161" + action: keep + - source_labels: [__meta_kubernetes_pod_container_port_name] + target_label: endpoint + action: replace + - source_labels: [__meta_kubernetes_pod_node_name] + target_label: node + action: replace + - source_labels: [__meta_kubernetes_pod_name] + target_label: pod + action: replace + - source_labels: [__meta_kubernetes_namespace] + target_label: namespace + action: replace + enableAdminAPI: true + secrets: + - etcd-certs + externalUrl: "/ops/portal/prometheus" + storageSpec: + volumeClaimTemplate: + metadata: + name: db + spec: + accessModes: ["ReadWriteOnce"] + # 50Gi is the default size for the chart + resources: + requests: + storage: 50Gi + resources: + limits: + cpu: 1000m + memory: 2500Mi + requests: + cpu: 300m + memory: 1500Mi + alertmanager: + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + traefik.frontend.rule.type: PathPrefixStrip + traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group + traefik.ingress.kubernetes.io/auth-type: forward + traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/ + traefik.ingress.kubernetes.io/priority: "2" + paths: + - /ops/portal/alertmanager + alertmanagerSpec: + resources: + limits: + cpu: 100m + memory: 50Mi + requests: + cpu: 10m + memory: 50Mi + grafana: + ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: traefik + ingress.kubernetes.io/auth-response-headers: X-Forwarded-User + traefik.frontend.rule.type: PathPrefixStrip + traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group + traefik.ingress.kubernetes.io/auth-type: forward + traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/ + traefik.ingress.kubernetes.io/priority: "2" + hosts: [""] + path: /ops/portal/grafana + grafana.ini: + server: + protocol: http + enable_gzip: true + root_url: "%(protocol)s://%(domain)s:%(http_port)s/ops/portal/grafana" + auth.proxy: + enabled: true + header_name: X-Forwarded-User + auto-sign-up: true + auth.basic: + enabled: false + users: + auto_assign_org_role: Admin + service: + type: ClusterIP + port: 3000 + resources: + # keep request = limit to keep this container in guaranteed class + limits: + cpu: 300m + memory: 100Mi + requests: + cpu: 200m + memory: 100Mi + readinessProbe: + httpGet: + path: /api/health + port: 3000 + scheme: HTTP + livenessProbe: + httpGet: + path: /api/health + port: 3000 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 30 + failureThreshold: 10 + rbac: + pspUseAppArmor: false + # to avoid needing to download any plugins at runtime, use a container and a shared volume + # do not enable the plugins here, instead rebuild the mesosphere/grafana-plugins image with the new plugins + plugins: [] + # - grafana-piechart-panel + extraEmptyDirMounts: + - name: plugins + mountPath: /var/lib/grafana/plugins/ + extraInitContainers: + - name: grafana-plugins-install + image: mesosphere/grafana-plugins:v0.0.1 + command: ["/bin/sh", "-c", "cp -a /var/lib/grafana/plugins/. /var/lib/grafana/shared-plugins/"] + volumeMounts: + - name: plugins + mountPath: /var/lib/grafana/shared-plugins/ + kubeEtcd: + enabled: true + serviceMonitor: + scheme: "https" + caFile: "/etc/prometheus/secrets/etcd-certs/ca.crt" + certFile: "/etc/prometheus/secrets/etcd-certs/server.crt" + keyFile: "/etc/prometheus/secrets/etcd-certs/server.key" + kube-state-metrics: + image: + # override the default k8s.gcr.io/kube-state-metrics repositry + # containerd mirror functionality does not support pulling these images + # TODO remove once https://github.com/containerd/containerd/issues/3756 is resolved + repository: quay.io/coreos/kube-state-metrics diff --git a/addons/traefik/1.7.x/traefik-8.yaml b/addons/traefik/1.7.x/traefik-8.yaml new file mode 100644 index 00000000..a8882190 --- /dev/null +++ b/addons/traefik/1.7.x/traefik-8.yaml @@ -0,0 +1,109 @@ +--- +apiVersion: kubeaddons.mesosphere.io/v1beta1 +kind: ClusterAddon +metadata: + name: traefik + labels: + kubeaddons.mesosphere.io/name: traefik + kubeaddons.mesosphere.io/provides: ingresscontroller + annotations: + catalog.kubeaddons.mesosphere.io/addon-revision: "1.7.23-8" + appversion.kubeaddons.mesosphere.io/traefik: "1.7.23" + endpoint.kubeaddons.mesosphere.io/traefik: "/ops/portal/traefik" + docs.kubeaddons.mesosphere.io/traefik: "https://docs.traefik.io/v1.7" + values.chart.helm.kubeaddons.mesosphere.io/traefik: "https://raw.githubusercontent.com/mesosphere/charts/30cff72975bec6938a9e11f3e9d9b8a49e9f0300/staging/traefik/values.yaml" +spec: + kubernetes: + minSupportedVersion: v1.15.6 + requires: + - matchLabels: + kubeaddons.mesosphere.io/name: cert-manager + chartReference: + chart: traefik + repo: https://mesosphere.github.io/charts/staging + version: 1.72.17 + values: | + --- + replicas: 2 + service: + labels: + servicemonitor.kubeaddons.mesosphere.io/path: "metrics" + resources: + limits: + cpu: 1000m + requests: + cpu: 500m + rbac: + enabled: true + metrics: + prometheus: + enabled: true + dashboard: + enabled: true + domain: "" + serviceType: ClusterIP + ingress: + path: /ops/portal/traefik + annotations: + kubernetes.io/ingress.class: traefik + traefik.frontend.rule.type: PathPrefixStrip + traefik.ingress.kubernetes.io/auth-response-headers: X-Forwarded-User,Authorization,Impersonate-User,Impersonate-Group + traefik.ingress.kubernetes.io/auth-type: forward + traefik.ingress.kubernetes.io/auth-url: http://traefik-forward-auth-kubeaddons.kubeaddons.svc.cluster.local:4181/ + traefik.ingress.kubernetes.io/priority: "2" + kubernetes: + ingressEndpoint: + publishedService: "kubeaddons/traefik-kubeaddons" + ssl: + enabled: true + enforced: true + # TODO: This comment is no longer true. + # dex service is exposed with TLS certificate signed by self signed root + # Dex CA certificate. It is not clear if traefik supports configuring + # trusted certificates per backend. This should be investiaged in a + # separate issue. + # See: https://jira.mesosphere.com/browse/DCOS-56033 + insecureSkipVerify: true + # We use cert-manager to automate certificate management thus we + # do not need the default cert secret. + useCertManager: true + deploymentAnnotations: + # Watching this CM will trigger traefik init container that updates certificate + # object with new DNS names. That will cascade secret update which will trigger + # another reload. + configmap.reloader.stakater.com/reload: konvoyconfig-kubeaddons + secret.reloader.stakater.com/reload: traefik-kubeaddons-certificate + + initContainers: + - name: initialize-traefik-certificate + image: mesosphere/kubeaddons-addon-initializer:v0.1.5 + args: ["traefik"] + env: + - name: "TRAEFIK_INGRESS_NAMESPACE" + value: "kubeaddons" + - name: "TRAEFIK_INGRESS_SERVICE_NAME" + value: "traefik-kubeaddons" + - name: "TRAEFIK_INGRESS_CERTIFICATE_NAME" + value: "traefik-kubeaddons" + - name: "TRAEFIK_INGRESS_CERTIFICATE_ISSUER" + value: "kubernetes-ca" + - name: "TRAEFIK_INGRESS_CERTIFICATE_SECRET_NAME" + value: "traefik-kubeaddons-certificate" + - name: "TRAEFIK_KONVOY_ADDONS_CONFIG_MAP" + value: "konvoyconfig-kubeaddons" + - name: "TRAEFIK_CLUSTER_HOSTNAME_KEY" + value: "clusterHostname" + + initCertJobImage: mesosphere/kubeaddons-addon-initializer:v0.1.5 + extraServicePorts: + - name: velero-minio + port: 9000 + protocol: TCP + targetPort: 9000 + extraConfigEntrypoints: | + [entryPoints.velero-minio] + address = ":9000" + [entryPoints.velero-minio.tls] + [entryPoints.velero-minio.tls.defaultCertificate] + certFile = "/ssl/tls.crt" + keyFile = "/ssl/tls.key" diff --git a/test/README.md b/test/README.md index b923e8c8..8813c11a 100644 --- a/test/README.md +++ b/test/README.md @@ -2,7 +2,15 @@ In this directory you will find [go tests](https://golang.org/pkg/testing/) which cover integration testing of the addons in this repo. -This uses the [Kubeaddons](https://github.com/mesosphere/kubeaddons) addon testing framework, which is [documented here](https://github.com/mesosphere/kubeaddons/blob/master/docs/test/framework.md). +This uses the [KSphere Testing Framework](https://github.com/mesosphere/ksphere-testing-framework). + +## Developer Notes + +When working on the tests, you may find that some symbols in the kubeaddons package appear to be unresolvable. This is due to the use of experimental features in the kubeaddons library. To avoid these problems in `vim` and other editors, make sure your local environment is set with the `experimental` build tag: + +``` +export GOFLAGS="-tags=experimental" +``` ## Developer Notes diff --git a/test/addons_test.go b/test/addons_test.go index 43fcf9d8..b5f4a684 100644 --- a/test/addons_test.go +++ b/test/addons_test.go @@ -13,17 +13,19 @@ import ( volumetypes "github.com/docker/docker/api/types/volume" docker "github.com/docker/docker/client" "github.com/google/uuid" - "sigs.k8s.io/kind/pkg/apis/config/v1alpha3" - "sigs.k8s.io/kind/pkg/cluster" - + testcluster "github.com/mesosphere/ksphere-testing-framework/pkg/cluster" + "github.com/mesosphere/ksphere-testing-framework/pkg/cluster/kind" + "github.com/mesosphere/ksphere-testing-framework/pkg/cluster/konvoy" + "github.com/mesosphere/ksphere-testing-framework/pkg/experimental" + testharness "github.com/mesosphere/ksphere-testing-framework/pkg/harness" "github.com/mesosphere/kubeaddons/pkg/api/v1beta1" "github.com/mesosphere/kubeaddons/pkg/catalog" "github.com/mesosphere/kubeaddons/pkg/repositories" "github.com/mesosphere/kubeaddons/pkg/repositories/git" "github.com/mesosphere/kubeaddons/pkg/repositories/local" - "github.com/mesosphere/kubeaddons/pkg/test" - "github.com/mesosphere/kubeaddons/pkg/test/cluster/kind" - "github.com/mesosphere/kubeaddons/pkg/test/cluster/konvoy" + addontesters "github.com/mesosphere/kubeaddons/test/utils" + "sigs.k8s.io/kind/pkg/apis/config/v1alpha3" + "sigs.k8s.io/kind/pkg/cluster" ) const ( @@ -61,7 +63,7 @@ func init() { panic(err) } - groups, err = test.AddonsForGroupsFile("groups.yaml", cat) + groups, err = experimental.AddonsForGroupsFile("groups.yaml", cat) if err != nil { panic(err) } @@ -205,7 +207,7 @@ func testgroup(t *testing.T, groupname string) error { } }() - var tcluster test.Cluster + var tcluster testcluster.Cluster if groupname == "aws" || groupname == "azure" || groupname == "gcp" { path, _ := os.Getwd() tcluster, err = konvoy.NewCluster(fmt.Sprintf("%s/konvoy", path), groupname) @@ -244,18 +246,37 @@ func testgroup(t *testing.T, groupname string) error { overrides(addon) } - ph, err := test.NewBasicTestHarness(t, tcluster, addons...) + wg := &sync.WaitGroup{} + stop := make(chan struct{}) + go experimental.LoggingHook(t, tcluster, wg, stop) + + addonDeployment, err := addontesters.DeployAddons(t, tcluster, addons...) if err != nil { return err } - defer ph.Cleanup() - wg := &sync.WaitGroup{} - stop := make(chan struct{}) - go test.LoggingHook(t, tcluster, wg, stop) + addonCleanup, err := addontesters.CleanupAddons(t, tcluster, addons...) + if err != nil { + return err + } + + addonDefaults, err := addontesters.WaitForAddons(t, tcluster, addons...) + if err != nil { + return err + } + + th := testharness.NewSimpleTestHarness(t) + th.Load( + addontesters.ValidateAddons(addons...), + addonDeployment, + addonDefaults, + addonCleanup, + ) - ph.Validate() - ph.Deploy() + defer th.Cleanup() + th.Validate() + th.Deploy() + th.Default() close(stop) wg.Wait() diff --git a/test/go.mod b/test/go.mod index 2e097380..a2e7deaf 100644 --- a/test/go.mod +++ b/test/go.mod @@ -8,7 +8,8 @@ require ( github.com/go-logr/zapr v0.1.1 // indirect github.com/google/uuid v1.1.1 github.com/imdario/mergo v0.3.8 // indirect - github.com/mesosphere/kubeaddons v0.10.1 + github.com/mesosphere/ksphere-testing-framework v0.0.0-20200320204306-f29e7880920f + github.com/mesosphere/kubeaddons v0.11.0 go.uber.org/atomic v1.5.1 // indirect go.uber.org/multierr v1.4.0 // indirect go.uber.org/zap v1.13.0 // indirect @@ -16,6 +17,7 @@ require ( golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect google.golang.org/appengine v1.6.5 // indirect google.golang.org/genproto v0.0.0-20190916214212-f660b8655731 // indirect + k8s.io/apimachinery v0.17.4 k8s.io/utils v0.0.0-20191114200735-6ca3b61696b6 // indirect sigs.k8s.io/kind v0.7.0 ) diff --git a/test/go.sum b/test/go.sum index 546fb5f5..c0fb4636 100644 --- a/test/go.sum +++ b/test/go.sum @@ -224,6 +224,8 @@ github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= @@ -316,6 +318,7 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kudobuilder/kudo v0.10.1 h1:r/ibIChYMbEDSblWQ9tLyMIFiyBTnw6zfMpIkv+1V/w= github.com/kudobuilder/kudo v0.10.1/go.mod h1:jUkyWjVbgSPZBvYXALvOO5ydeIG+azsDnR2ZP1V8dQE= +github.com/kudobuilder/kudo v0.11.0/go.mod h1:990VBv0+bWl92ZJXVrdnmgwWStkZ4tD8kOYcskIsMbE= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= @@ -341,8 +344,13 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mesosphere/kubeaddons v0.10.1 h1:z0VmD91LqIVlJXpMDEq2UmEga8Q3vIM9CebRGGYDBGM= -github.com/mesosphere/kubeaddons v0.10.1/go.mod h1:6TEL+jD4yW324GCF+aaIXNmBBgeeaF636DAi43OJffo= +github.com/mesosphere/ksphere-testing-framework v0.0.0-20200320191913-4ed3ad40a337/go.mod h1:AEDOa+sY+rrGcsJ+G2IwNnYFaxg7dmfMW39qdl3C9IQ= +github.com/mesosphere/ksphere-testing-framework v0.0.0-20200320204306-f29e7880920f h1:6ps3OUnUkiN1Z4iEu41dYvuUJtWOs5B2EgE1vqi8cUY= +github.com/mesosphere/ksphere-testing-framework v0.0.0-20200320204306-f29e7880920f/go.mod h1:AEDOa+sY+rrGcsJ+G2IwNnYFaxg7dmfMW39qdl3C9IQ= +github.com/mesosphere/kubeaddons v0.10.2 h1:heURHF0srnA/UmNvgdMS+5+2Kh6rwMzEiapUGKy/24c= +github.com/mesosphere/kubeaddons v0.10.2/go.mod h1:6TEL+jD4yW324GCF+aaIXNmBBgeeaF636DAi43OJffo= +github.com/mesosphere/kubeaddons v0.11.0 h1:p2ZApkjMRRljVZN7/NzhUnRLGuZJV9Y620ooU9EgHhs= +github.com/mesosphere/kubeaddons v0.11.0/go.mod h1:vUibt0jKmrxwRi2nDS7Os+Lz1PMqGVDG6HpdI0HUWGQ= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -593,8 +601,10 @@ golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -612,6 +622,7 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -627,6 +638,7 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -649,6 +661,7 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.3/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -713,39 +726,53 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt k8s.io/api v0.0.0-20190918155943-95b840bb6a1f/go.mod h1:uWuOHnjmNrtQomJrvEBg0c0HRNyQ+8KTEERVsK0PW48= k8s.io/api v0.0.0-20191016110408-35e52d86657a h1:VVUE9xTCXP6KUPMf92cQmN88orz600ebexcRRaBTepQ= k8s.io/api v0.0.0-20191016110408-35e52d86657a/go.mod h1:/L5qH+AD540e7Cetbui1tuJeXdmNhO8jM6VkXeDdDhQ= +k8s.io/api v0.16.6/go.mod h1:naJcEPKsa3oqutLPPMxA2oLSqV4KxGDLU6IgkqHqgFE= k8s.io/api v0.17.2/go.mod h1:BS9fjjLc4CMuqfSO8vgbHPKMt5+SF0ET6u/RVDihTo4= k8s.io/api v0.17.3 h1:XAm3PZp3wnEdzekNkcmj/9Y1zdmQYJ1I4GKSBBZ8aG0= k8s.io/api v0.17.3/go.mod h1:YZ0OTkuw7ipbe305fMpIdf3GLXZKRigjtZaV5gzC2J0= +k8s.io/api v0.17.4 h1:HbwOhDapkguO8lTAE8OX3hdF2qp8GtpC9CW/MQATXXo= +k8s.io/api v0.17.4/go.mod h1:5qxx6vjmwUVG2nHQTKGlLts8Tbok8PzHl4vHtVFuZCA= k8s.io/apiextensions-apiserver v0.0.0-20190918161926-8f644eb6e783/go.mod h1:xvae1SZB3E17UpV59AWc271W/Ph25N+bjPyR63X6tPY= k8s.io/apiextensions-apiserver v0.0.0-20191016113550-5357c4baaf65 h1:kThoiqgMsSwBdMK/lPgjtYTsEjbUU9nXCA9DyU3feok= k8s.io/apiextensions-apiserver v0.0.0-20191016113550-5357c4baaf65/go.mod h1:5BINdGqggRXXKnDgpwoJ7PyQH8f+Ypp02fvVNcIFy9s= k8s.io/apiextensions-apiserver v0.17.2 h1:cP579D2hSZNuO/rZj9XFRzwJNYb41DbNANJb6Kolpss= k8s.io/apiextensions-apiserver v0.17.2/go.mod h1:4KdMpjkEjjDI2pPfBA15OscyNldHWdBCfsWMDWAmSTs= +k8s.io/apiextensions-apiserver v0.17.3 h1:WDZWkPcbgvchEdDd7ysL21GGPx3UKZQLDZXEkevT6n4= +k8s.io/apiextensions-apiserver v0.17.3/go.mod h1:CJbCyMfkKftAd/X/V6OTHYhVn7zXnDdnkUjS1h0GTeY= k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655/go.mod h1:nL6pwRT8NgfF8TT68DBI8uEePRt89cSvoXUVqbkWHq4= k8s.io/apimachinery v0.0.0-20191004115801-a2eda9f80ab8 h1:Iieh/ZEgT3BWwbLD5qEKcY06jKuPEl6zC7gPSehoLw4= k8s.io/apimachinery v0.0.0-20191004115801-a2eda9f80ab8/go.mod h1:llRdnznGEAqC3DcNm6yEj472xaFVfLM7hnYofMb12tQ= k8s.io/apimachinery v0.0.0-20191028221656-72ed19daf4bb/go.mod h1:llRdnznGEAqC3DcNm6yEj472xaFVfLM7hnYofMb12tQ= +k8s.io/apimachinery v0.16.6/go.mod h1:mhhO3hoLkWO+2eCvqjPtH2Ly92l9nJDwsswzWKpkN2w= k8s.io/apimachinery v0.17.0/go.mod h1:b9qmWdKlLuU9EBh+06BtLcSf/Mu89rWL33naRxs1uZg= k8s.io/apimachinery v0.17.2 h1:hwDQQFbdRlpnnsR64Asdi55GyCaIP/3WQpMmbNBeWr4= k8s.io/apimachinery v0.17.2/go.mod h1:b9qmWdKlLuU9EBh+06BtLcSf/Mu89rWL33naRxs1uZg= k8s.io/apimachinery v0.17.3 h1:f+uZV6rm4/tHE7xXgLyToprg6xWairaClGVkm2t8omg= k8s.io/apimachinery v0.17.3/go.mod h1:gxLnyZcGNdZTCLnq3fgzyg2A5BVCHTNDFrw8AmuJ+0g= +k8s.io/apimachinery v0.17.4 h1:UzM+38cPUJnzqSQ+E1PY4YxMHIzQyCg29LOoGfo79Zw= +k8s.io/apimachinery v0.17.4/go.mod h1:gxLnyZcGNdZTCLnq3fgzyg2A5BVCHTNDFrw8AmuJ+0g= k8s.io/apiserver v0.0.0-20190918160949-bfa5e2e684ad/go.mod h1:XPCXEwhjaFN29a8NldXA901ElnKeKLrLtREO9ZhFyhg= k8s.io/apiserver v0.0.0-20191016112112-5190913f932d/go.mod h1:7OqfAolfWxUM/jJ/HBLyE+cdaWFBUoo5Q5pHgJVj2ws= k8s.io/apiserver v0.17.2/go.mod h1:lBmw/TtQdtxvrTk0e2cgtOxHizXI+d0mmGQURIHQZlo= +k8s.io/apiserver v0.17.3/go.mod h1:iJtsPpu1ZpEnHaNawpSV0nYTGBhhX2dUlnn7/QS7QiY= k8s.io/cli-runtime v0.0.0-20191016114015-74ad18325ed5 h1:8ZfMjkMBzcXEawLsYHg9lDM7aLEVso3NiVKfUTnN56A= k8s.io/cli-runtime v0.0.0-20191016114015-74ad18325ed5/go.mod h1:sDl6WKSQkDM6zS1u9F49a0VooQ3ycYFBFLqd2jf2Xfo= +k8s.io/cli-runtime v0.16.6/go.mod h1:8N6G/UJmYvLXzpD1kjpuss6mFUeez+eg6Nu15VtBHvM= k8s.io/client-go v0.0.0-20191016111102-bec269661e48 h1:C2XVy2z0dV94q9hSSoCuTPp1KOG7IegvbdXuz9VGxoU= k8s.io/client-go v0.0.0-20191016111102-bec269661e48/go.mod h1:hrwktSwYGI4JK+TJA3dMaFyyvHVi/aLarVHpbs8bgCU= k8s.io/code-generator v0.0.0-20190912054826-cd179ad6a269/go.mod h1:V5BD6M4CyaN5m+VthcclXWsVcT1Hu+glwa1bi3MIsyE= k8s.io/code-generator v0.0.0-20191004115455-8e001e5d1894/go.mod h1:mJUgkl06XV4kstAnLHAIzJPVCOzVR+ZcfPIv4fUsFCY= +k8s.io/code-generator v0.16.6/go.mod h1:2aiDuxDU7RQK2PVypXAXHo6+YwOlF33iezHQbSmKSA4= k8s.io/code-generator v0.17.2/go.mod h1:DVmfPQgxQENqDIzVR2ddLXMH34qeszkKSdH/N+s+38s= +k8s.io/code-generator v0.17.3/go.mod h1:l8BLVwASXQZTo2xamW5mQNFCe1XPiAesVq7Y1t7PiQQ= k8s.io/code-generator v0.18.0-alpha.1.0.20191220033320-6b257a9d6f46/go.mod h1:BjGKcoq1MRUmcssvHiSxodCco1T6nVIt4YeCT5CMSao= k8s.io/component-base v0.0.0-20190918160511-547f6c5d7090/go.mod h1:933PBGtQFJky3TEwYx4aEPZ4IxqhWh3R6DCmzqIn1hA= k8s.io/component-base v0.0.0-20191016111319-039242c015a9/go.mod h1:SuWowIgd/dtU/m/iv8OD9eOxp3QZBBhTIiWMsBQvKjI= +k8s.io/component-base v0.16.6/go.mod h1:8+4lrSEgLQ9wqOzHVYx4GLSCU6sus8wqg8bfaTdXTwg= k8s.io/component-base v0.17.2/go.mod h1:zMPW3g5aH7cHJpKYQ/ZsGMcgbsA/VyhEugF3QT1awLs= k8s.io/component-base v0.17.3 h1:hQzTSshY14aLSR6WGIYvmw+w+u6V4d+iDR2iDGMrlUg= k8s.io/component-base v0.17.3/go.mod h1:GeQf4BrgelWm64PXkIXiPh/XS0hnO42d9gx9BtbZRp8= +k8s.io/component-base v0.17.4/go.mod h1:5BRqHMbbQPm2kKu35v3G+CpVq4K0RJKC7TRioF0I9lE= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/helm v2.16.3+incompatible h1:MGUcXcG1uAXWZmxu4vzzgRjZOnfFUsSJbHgqM+kyqzM= @@ -760,7 +787,9 @@ k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a h1:UcxjrRMyNx/i/y8G7kPvLy k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kubectl v0.0.0-20191016120415-2ed914427d51 h1:RBkTKVMF+xsNsSOVc0+HdC0B5gD1sr6s6Cu5w9qNbuQ= k8s.io/kubectl v0.0.0-20191016120415-2ed914427d51/go.mod h1:gL826ZTIfD4vXTGlmzgTbliCAT9NGiqpCqK2aNYv5MQ= +k8s.io/kubectl v0.16.6/go.mod h1:ybKdxxoYuQLRqsmBFylvgyFPeVmmRYUbxk134JCiNoM= k8s.io/metrics v0.0.0-20191016113814-3b1a734dba6e/go.mod h1:ve7/vMWeY5lEBkZf6Bt5TTbGS3b8wAxwGbdXAsufjRs= +k8s.io/metrics v0.16.6/go.mod h1:de0nJbsn2wX/fapLW0Yi7k+GwXvEv4/g54agaDjzmQY= k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20191114184206-e782cd3c129f h1:GiPwtSzdP43eI1hpPCbROQCCIgCuiMMNF8YUVLF3vJo= k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= @@ -788,3 +817,5 @@ sigs.k8s.io/testing_frameworks v0.1.2 h1:vK0+tvjF0BZ/RYFeZ1E6BYBwHJJXhjuZ3TdsEKH sigs.k8s.io/testing_frameworks v0.1.2/go.mod h1:ToQrwSC3s8Xf/lADdZp3Mktcql9CG0UAmdJG9th5i0w= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/test/scripts/test-wrapper.go b/test/scripts/test-wrapper.go index 7e8c46ec..fba52ea8 100644 --- a/test/scripts/test-wrapper.go +++ b/test/scripts/test-wrapper.go @@ -8,9 +8,9 @@ import ( "regexp" "strings" + "github.com/mesosphere/ksphere-testing-framework/pkg/experimental" "github.com/mesosphere/kubeaddons/pkg/catalog" "github.com/mesosphere/kubeaddons/pkg/repositories/local" - "github.com/mesosphere/kubeaddons/pkg/test" ) type addonName string @@ -33,7 +33,7 @@ func main() { panic(err) } - groups, err := test.AddonsForGroupsFile("groups.yaml", c) + groups, err := experimental.AddonsForGroupsFile("groups.yaml", c) if err != nil { panic(err) }