diff --git a/canary-checker/docs/reference/1-kubernetes-resource.mdx b/canary-checker/docs/reference/1-kubernetes-resource.mdx index 62003ee..3250055 100644 --- a/canary-checker/docs/reference/1-kubernetes-resource.mdx +++ b/canary-checker/docs/reference/1-kubernetes-resource.mdx @@ -123,118 +123,17 @@ Either the kubeconfig itself or the path to the kubeconfig can be provided. #### kubeconfig from kubernetes secret -```yaml title="remote-cluster.yaml" {11-15} -apiVersion: canaries.flanksource.com/v1 -kind: Canary -metadata: - name: pod-creation-test -spec: - schedule: "@every 5m" - kubernetesResource: - - name: pod creation on aws cluster - namespace: default - description: "deploy httpbin" - kubeconfig: - valueFrom: - secretKeyRef: - name: aws-kubeconfig - key: kubeconfig - resources: - - apiVersion: v1 - kind: Pod - metadata: - name: httpbin - namespace: default - labels: - app: httpbin - spec: - containers: - - name: httpbin - image: "kennethreitz/httpbin:latest" - ports: - - containerPort: 80 +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/k8s/kubernetes-resource-check-kubeconfig-from-secrets.yaml {12-16} ``` #### Kubeconfig inline -```yaml title="remote-cluster.yaml" {11-32} -apiVersion: canaries.flanksource.com/v1 -kind: Canary -metadata: - name: pod-creation-test -spec: - schedule: "@every 5m" - kubernetesResource: - - name: pod creation on aws cluster - namespace: default - description: "deploy httpbin" - kubeconfig: - value: | - apiVersion: v1 - clusters: - - cluster: - certificate-authority-data: xxxxx - server: https://xxxxx.sk1.eu-west-1.eks.amazonaws.com - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - contexts: - - context: - cluster: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - namespace: mission-control - user: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - current-context: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - kind: Config - preferences: {} - users: - - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - user: - exec: - .... - resources: - - apiVersion: v1 - kind: Pod - metadata: - name: httpbin - namespace: default - labels: - app: httpbin - spec: - containers: - - name: httpbin - image: "kennethreitz/httpbin:latest" - ports: - - containerPort: 80 +```yaml title="remote-cluster.yaml" yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/k8s/kubernetes-resource-check-inline-kubeconfig.yaml {12-33} ``` #### Kubeconfig from local filesystem -```yaml title="remote-cluster.yaml" {11-12} -apiVersion: canaries.flanksource.com/v1 -kind: Canary -metadata: - name: pod-creation-test -spec: - schedule: "@every 5m" - kubernetesResource: - - name: pod creation on aws cluster - namespace: default - description: "deploy httpbin" - kubeconfig: - value: /root/.kube/aws-kubeconfig - resources: - - apiVersion: v1 - kind: Pod - metadata: - name: httpbin - namespace: default - labels: - app: httpbin - spec: - containers: - - name: httpbin - image: "kennethreitz/httpbin:latest" - ports: - - containerPort: 80 +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/k8s/kubernetes-resource-check-kubeconfig-from-file.yaml {12-13} ``` ### Templating diff --git a/canary-checker/docs/reference/1-kubernetes.mdx b/canary-checker/docs/reference/1-kubernetes.mdx index dea3a6b..10e21dc 100644 --- a/canary-checker/docs/reference/1-kubernetes.mdx +++ b/canary-checker/docs/reference/1-kubernetes.mdx @@ -76,87 +76,18 @@ dyn(results).all(x, k8s.isReady(x)) A single canary-checker instance can connect to any number of remote clusters via custom kubeconfig. Either the kubeconfig itself or the path to the kubeconfig can be provided. - + #### kubeconfig from kubernetes secret -```yaml title="remote-cluster.yaml" {11-15} -apiVersion: canaries.flanksource.com/v1 -kind: Canary -metadata: - name: pod-creation-test -spec: - schedule: "@every 5m" - kubernetes: - - name: pod creation on aws cluster - namespace: default - description: "deploy httpbin" - kubeconfig: - valueFrom: - secretKeyRef: - name: aws-kubeconfig - key: kubeconfig - kind: Pod - ready: true - namespaceSelector: - name: default +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/k8s/kubernetes-check-kubeconfig-from-secrets.yaml {12-16} ``` #### Kubeconfig inline -```yaml title="remote-cluster.yaml" {10-31} -apiVersion: canaries.flanksource.com/v1 -kind: Canary -metadata: - name: pod-creation-test -spec: - schedule: "@every 5m" - kubernetes: - - name: pod creation on aws cluster - namespace: default - kubeconfig: - value: | - apiVersion: v1 - clusters: - - cluster: - certificate-authority-data: xxxxx - server: https://xxxxx.sk1.eu-west-1.eks.amazonaws.com - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - contexts: - - context: - cluster: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - namespace: mission-control - user: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - current-context: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - kind: Config - preferences: {} - users: - - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - user: - exec: - .... - kind: Pod - ready: true - namespaceSelector: - name: default +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/k8s/kubernetes-check-inline-kubeconfig.yaml {11-32} ``` #### Kubeconfig from local filesystem -```yaml title="remote-cluster.yaml" {10-11} -apiVersion: canaries.flanksource.com/v1 -kind: Canary -metadata: - name: pod-creation-test -spec: - schedule: "@every 5m" - kubernetes: - - name: pod creation on aws cluster - namespace: default - kubeconfig: - value: /root/.kube/aws-kubeconfig - kind: Pod - ready: true - namespaceSelector: - name: default +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/k8s/kubernetes-check-kubeconfig-from-file.yaml {11-12} ``` \ No newline at end of file diff --git a/mission-control/docs/topology/lookups/kubernetes.md b/mission-control/docs/topology/lookups/kubernetes.md index 84e0fcf..a13a4fe 100644 --- a/mission-control/docs/topology/lookups/kubernetes.md +++ b/mission-control/docs/topology/lookups/kubernetes.md @@ -6,32 +6,8 @@ title: Kubernetes The Kubernetes component lookup fetches kubernetes resources to be used as components. -```yaml title="kube-configmap-components.yml" ---- -apiVersion: canaries.flanksource.com/v1 -kind: Topology -metadata: - name: kubernetes-configs -spec: - type: Config - icon: kubernetes - schedule: '@every 5m' - components: - - name: configs - icon: server - type: ConfigMap - // highlight-start - lookup: - kubernetes: - - kind: ConfigMap - display: - expr: | - dyn(results).map(c, { - 'name': c.Object.metadata.name, - 'type': 'ConfigMap', - }).toJSON() - - // highlight-end +```yaml title="kube-configmap-components.yaml" file=../../../modules/canary-checker/fixtures/topology/kubernetes-lookup.yaml {14-22} + ``` | Field | Description | Scheme | Required | @@ -64,114 +40,18 @@ Either the kubeconfig itself or the path to the kubeconfig can be provided. ### From kubernetes secret -```yaml title="remote-cluster.yaml" ---- -apiVersion: canaries.flanksource.com/v1 -kind: Topology -metadata: - name: kubernetes-configs -spec: - type: Config - icon: kubernetes - schedule: '@every 5m' - components: - - name: configs - icon: server - type: ConfigMap - lookup: - kubernetes: - - kind: ConfigMap - display: - expr: | - dyn(results).map(c, { - 'name': c.Object.metadata.name, - 'type': 'ConfigMap', - }).toJSON() - // highlight-start - kubeconfig: - valueFrom: - secretKeyRef: - name: aws-kubeconfig - key: kubeconfig - // highlight-end +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/topology/kubernetes-lookup-kubeconfig-from-secrets.yaml {23-27} + ``` ### Kubeconfig inline -```yaml title="remote-cluster.yaml" -apiVersion: canaries.flanksource.com/v1 -kind: Topology -metadata: - name: kubernetes-configs -spec: - type: Config - icon: kubernetes - schedule: '@every 5m' - components: - - name: configs - icon: server - type: ConfigMap - lookup: - kubernetes: - - kind: ConfigMap - display: - expr: | - dyn(results).map(c, { - 'name': c.Object.metadata.name, - 'type': 'ConfigMap', - }).toJSON() - // highlight-start - kubeconfig: - value: | - apiVersion: v1 - clusters: - - cluster: - certificate-authority-data: xxxxx - server: https://xxxxx.sk1.eu-west-1.eks.amazonaws.com - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - contexts: - - context: - cluster: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - namespace: mission-control - user: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - current-context: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - kind: Config - preferences: {} - users: - - name: arn:aws:eks:eu-west-1:765618022540:cluster/aws-cluster - user: - exec: - .... - // highlight-end +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/topology/kubernetes-lookup-inline-configmap.yaml {22-48} + ``` ### From local filesystem -```yaml title="remote-cluster.yaml" -apiVersion: canaries.flanksource.com/v1 -kind: Topology -metadata: - name: kubernetes-configs -spec: - type: Config - icon: kubernetes - schedule: '@every 5m' - components: - - name: configs - icon: server - type: ConfigMap - lookup: - kubernetes: - - kind: ConfigMap - display: - expr: | - dyn(results).map(c, { - 'name': c.name, - 'type': 'ConfigMap', - }).toJSON() - // highlight-start - kubeconfig: - value: /root/.kube/aws-kubeconfig - // highlight-end +```yaml title="remote-cluster.yaml" file=../../../modules/canary-checker/fixtures/topology/kubernetes-lookup-kubeconfig-from-file.yaml {22-23} + ``` diff --git a/modules/canary-checker b/modules/canary-checker index e01007e..dce7e2b 160000 --- a/modules/canary-checker +++ b/modules/canary-checker @@ -1 +1 @@ -Subproject commit e01007e53a3adb2064b0df52c9cdbbcd4d3980c4 +Subproject commit dce7e2ba39a24d72a34509d616d8dee09073b98e diff --git a/modules/config-db b/modules/config-db index 34528a8..4b31981 160000 --- a/modules/config-db +++ b/modules/config-db @@ -1 +1 @@ -Subproject commit 34528a81b9e8f94789c4e342650e8f7cd81ad7ad +Subproject commit 4b31981a5410eb17dad9171fee0453d3b6d3b425 diff --git a/modules/duty b/modules/duty index a551b19..d479f3a 160000 --- a/modules/duty +++ b/modules/duty @@ -1 +1 @@ -Subproject commit a551b1949fae22f29f63f8cf8529d4d746ff2dc3 +Subproject commit d479f3a31be2186ba075c23853e783c4997df331 diff --git a/modules/mission-control b/modules/mission-control index 8ac102b..f9c7e9e 160000 --- a/modules/mission-control +++ b/modules/mission-control @@ -1 +1 @@ -Subproject commit 8ac102ba9ed8f75ba53dff60787e303f38e89e5a +Subproject commit f9c7e9e7fc5d374f92ad17b34a128467a1b46b30