diff --git a/cilium/kustomization.yaml b/cilium/kustomization.yaml new file mode 100644 index 0000000..248a2a7 --- /dev/null +++ b/cilium/kustomization.yaml @@ -0,0 +1,7 @@ +# argocd/kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - main.yaml + \ No newline at end of file diff --git a/cilium/main.yaml b/cilium/main.yaml new file mode 100644 index 0000000..c1897e5 --- /dev/null +++ b/cilium/main.yaml @@ -0,0 +1,2064 @@ +apiVersion: v1 +kind: Namespace +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-secrets +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: cilium + namespace: kube-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: cilium-envoy + namespace: kube-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: cilium-operator + namespace: kube-system +--- +apiVersion: v1 +automountServiceAccountToken: false +kind: ServiceAccount +metadata: + name: hubble-relay + namespace: kube-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: hubble-ui + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-gateway-secrets + namespace: cilium-secrets +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-ingress-secrets + namespace: cilium-secrets +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator-gateway-secrets + namespace: cilium-secrets +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - update + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator-ingress-secrets + namespace: cilium-secrets +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - update + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator-tlsinterception-secrets + namespace: cilium-secrets +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - update + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-tlsinterception-secrets + namespace: cilium-secrets +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-config-agent + namespace: kube-system +rules: +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium +rules: +- apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - get + - list + - watch +- apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - namespaces + - services + - pods + - endpoints + - nodes + verbs: + - get + - list + - watch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - update + - list + - delete +- apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - list + - watch + - get +- apiGroups: + - cilium.io + resources: + - ciliumloadbalancerippools + - ciliumbgppeeringpolicies + - ciliumbgpnodeconfigs + - ciliumbgpadvertisements + - ciliumbgppeerconfigs + - ciliumclusterwideenvoyconfigs + - ciliumclusterwidenetworkpolicies + - ciliumegressgatewaypolicies + - ciliumendpoints + - ciliumendpointslices + - ciliumenvoyconfigs + - ciliumidentities + - ciliumlocalredirectpolicies + - ciliumnetworkpolicies + - ciliumnodes + - ciliumnodeconfigs + - ciliumcidrgroups + - ciliuml2announcementpolicies + - ciliumpodippools + verbs: + - list + - watch +- apiGroups: + - cilium.io + resources: + - ciliumidentities + - ciliumendpoints + - ciliumnodes + verbs: + - create +- apiGroups: + - cilium.io + resources: + - ciliumidentities + verbs: + - update +- apiGroups: + - cilium.io + resources: + - ciliumendpoints + verbs: + - delete + - get +- apiGroups: + - cilium.io + resources: + - ciliumnodes + - ciliumnodes/status + verbs: + - get + - update +- apiGroups: + - cilium.io + resources: + - ciliumendpoints/status + - ciliumendpoints + - ciliuml2announcementpolicies/status + - ciliumbgpnodeconfigs/status + verbs: + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - delete +- apiGroups: + - "" + resourceNames: + - cilium-config + resources: + - configmaps + verbs: + - patch +- apiGroups: + - "" + resources: + - nodes + verbs: + - list + - watch +- apiGroups: + - "" + resources: + - nodes + - nodes/status + verbs: + - patch +- apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - services/status + verbs: + - update + - patch +- apiGroups: + - "" + resources: + - namespaces + - secrets + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - services + - endpoints + verbs: + - get + - list + - watch + - create + - update + - delete + - patch +- apiGroups: + - cilium.io + resources: + - ciliumnetworkpolicies + - ciliumclusterwidenetworkpolicies + verbs: + - create + - update + - deletecollection + - patch + - get + - list + - watch +- apiGroups: + - cilium.io + resources: + - ciliumnetworkpolicies/status + - ciliumclusterwidenetworkpolicies/status + verbs: + - patch + - update +- apiGroups: + - cilium.io + resources: + - ciliumendpoints + - ciliumidentities + verbs: + - delete + - list + - watch +- apiGroups: + - cilium.io + resources: + - ciliumidentities + verbs: + - update +- apiGroups: + - cilium.io + resources: + - ciliumnodes + verbs: + - create + - update + - get + - list + - watch + - delete +- apiGroups: + - cilium.io + resources: + - ciliumnodes/status + verbs: + - update +- apiGroups: + - cilium.io + resources: + - ciliumendpointslices + - ciliumenvoyconfigs + - ciliumbgppeerconfigs + - ciliumbgpadvertisements + - ciliumbgpnodeconfigs + verbs: + - create + - update + - get + - list + - watch + - delete + - patch +- apiGroups: + - cilium.io + resources: + - ciliumbgpclusterconfigs/status + - ciliumbgppeerconfigs/status + verbs: + - update +- apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - get + - list + - watch +- apiGroups: + - apiextensions.k8s.io + resourceNames: + - ciliumloadbalancerippools.cilium.io + - ciliumbgppeeringpolicies.cilium.io + - ciliumbgpclusterconfigs.cilium.io + - ciliumbgppeerconfigs.cilium.io + - ciliumbgpadvertisements.cilium.io + - ciliumbgpnodeconfigs.cilium.io + - ciliumbgpnodeconfigoverrides.cilium.io + - ciliumclusterwideenvoyconfigs.cilium.io + - ciliumclusterwidenetworkpolicies.cilium.io + - ciliumegressgatewaypolicies.cilium.io + - ciliumendpoints.cilium.io + - ciliumendpointslices.cilium.io + - ciliumenvoyconfigs.cilium.io + - ciliumexternalworkloads.cilium.io + - ciliumidentities.cilium.io + - ciliumlocalredirectpolicies.cilium.io + - ciliumnetworkpolicies.cilium.io + - ciliumnodes.cilium.io + - ciliumnodeconfigs.cilium.io + - ciliumcidrgroups.cilium.io + - ciliuml2announcementpolicies.cilium.io + - ciliumpodippools.cilium.io + resources: + - customresourcedefinitions + verbs: + - update +- apiGroups: + - cilium.io + resources: + - ciliumloadbalancerippools + - ciliumpodippools + - ciliumbgppeeringpolicies + - ciliumbgpclusterconfigs + - ciliumbgpnodeconfigoverrides + - ciliumbgppeerconfigs + verbs: + - get + - list + - watch +- apiGroups: + - cilium.io + resources: + - ciliumpodippools + verbs: + - create +- apiGroups: + - cilium.io + resources: + - ciliumloadbalancerippools/status + verbs: + - patch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - update +- apiGroups: + - networking.k8s.io + resources: + - ingresses + - ingressclasses + verbs: + - get + - list + - watch +- apiGroups: + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update +- apiGroups: + - gateway.networking.k8s.io + resources: + - gatewayclasses + - gateways + - tlsroutes + - httproutes + - grpcroutes + - referencegrants + - referencepolicies + verbs: + - get + - list + - watch +- apiGroups: + - gateway.networking.k8s.io + resources: + - gatewayclasses/status + - gateways/status + - httproutes/status + - grpcroutes/status + - tlsroutes/status + verbs: + - update + - patch +- apiGroups: + - multicluster.x-k8s.io + resources: + - serviceimports + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: hubble-ui +rules: +- apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - componentstatuses + - endpoints + - namespaces + - nodes + - pods + - services + verbs: + - get + - list + - watch +- apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - watch +- apiGroups: + - cilium.io + resources: + - '*' + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-gateway-secrets + namespace: cilium-secrets +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cilium-gateway-secrets +subjects: +- kind: ServiceAccount + name: cilium + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator-gateway-secrets + namespace: cilium-secrets +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cilium-operator-gateway-secrets +subjects: +- kind: ServiceAccount + name: cilium-operator + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator-ingress-secrets + namespace: cilium-secrets +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cilium-operator-ingress-secrets +subjects: +- kind: ServiceAccount + name: cilium-operator + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator-tlsinterception-secrets + namespace: cilium-secrets +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cilium-operator-tlsinterception-secrets +subjects: +- kind: ServiceAccount + name: cilium-operator + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-secrets + namespace: cilium-secrets +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cilium-ingress-secrets +subjects: +- kind: ServiceAccount + name: cilium + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-tlsinterception-secrets + namespace: cilium-secrets +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cilium-tlsinterception-secrets +subjects: +- kind: ServiceAccount + name: cilium + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-config-agent + namespace: kube-system +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cilium-config-agent +subjects: +- kind: ServiceAccount + name: cilium + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cilium +subjects: +- kind: ServiceAccount + name: cilium + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: cilium-operator +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cilium-operator +subjects: +- kind: ServiceAccount + name: cilium-operator + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/part-of: cilium + name: hubble-ui +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: hubble-ui +subjects: +- kind: ServiceAccount + name: hubble-ui + namespace: kube-system +--- +apiVersion: v1 +data: + agent-not-ready-taint-key: node.cilium.io/agent-not-ready + arping-refresh-period: 30s + auto-direct-node-routes: "false" + bpf-events-drop-enabled: "true" + bpf-events-policy-verdict-enabled: "true" + bpf-events-trace-enabled: "true" + bpf-lb-acceleration: disabled + bpf-lb-algorithm: maglev + bpf-lb-algorithm-annotation: "false" + bpf-lb-external-clusterip: "false" + bpf-lb-map-max: "65536" + bpf-lb-mode-annotation: "false" + bpf-lb-sock: "false" + bpf-lb-source-range-all-types: "false" + bpf-map-dynamic-size-ratio: "0.0025" + bpf-policy-map-max: "16384" + bpf-root: /sys/fs/bpf + ces-rate-limits: '[{"burst":20,"limit":10,"nodes":0},{"burst":100,"limit":50,"nodes":100}]' + ces-slice-mode: identity + cgroup-root: /sys/fs/cgroup + cilium-endpoint-gc-interval: 5m0s + cluster-id: "1" + cluster-name: talos + clustermesh-enable-endpoint-sync: "false" + clustermesh-enable-mcs-api: "false" + cni-exclusive: "true" + cni-log-file: /var/run/cilium/cilium-cni.log + custom-cni-conf: "false" + datapath-mode: veth + debug: "false" + debug-verbose: "" + default-lb-service-ipam: lbipam + devices: eth+ + direct-routing-skip-unreachable: "false" + dnsproxy-enable-transparent-mode: "true" + dnsproxy-socket-linger-timeout: "10" + egress-gateway-reconciliation-trigger-interval: 1s + enable-auto-protect-node-port-range: "true" + enable-bpf-clock-probe: "false" + enable-cilium-endpoint-slice: "true" + enable-endpoint-health-checking: "true" + enable-endpoint-lockdown-on-policy-overflow: "false" + enable-envoy-config: "true" + enable-experimental-lb: "false" + enable-gateway-api: "true" + enable-gateway-api-alpn: "false" + enable-gateway-api-app-protocol: "false" + enable-gateway-api-proxy-protocol: "false" + enable-gateway-api-secrets-sync: "true" + enable-health-check-loadbalancer-ip: "false" + enable-health-check-nodeport: "true" + enable-health-checking: "true" + enable-host-legacy-routing: "true" + enable-hubble: "true" + enable-ingress-controller: "true" + enable-ingress-proxy-protocol: "false" + enable-ingress-secrets-sync: "true" + enable-internal-traffic-policy: "true" + enable-ipv4: "true" + enable-ipv4-big-tcp: "false" + enable-ipv4-masquerade: "true" + enable-ipv6: "false" + enable-ipv6-big-tcp: "false" + enable-ipv6-masquerade: "true" + enable-k8s-networkpolicy: "true" + enable-k8s-terminating-endpoint: "true" + enable-l2-announcements: "true" + enable-l2-neigh-discovery: "true" + enable-l7-proxy: "true" + enable-lb-ipam: "true" + enable-local-redirect-policy: "false" + enable-masquerade-to-route-source: "false" + enable-metrics: "true" + enable-node-selector-labels: "false" + enable-non-default-deny-policies: "true" + enable-policy: default + enable-policy-secrets-sync: "true" + enable-runtime-device-detection: "true" + enable-sctp: "false" + enable-source-ip-verification: "true" + enable-svc-source-range-check: "true" + enable-tcx: "true" + enable-vtep: "false" + enable-well-known-identities: "false" + enable-xt-socket-fallback: "true" + enforce-ingress-https: "true" + envoy-access-log-buffer-size: "4096" + envoy-base-id: "0" + envoy-config-retry-interval: 15s + envoy-keep-cap-netbindservice: "true" + external-envoy-proxy: "true" + gateway-api-hostnetwork-enabled: "false" + gateway-api-hostnetwork-nodelabelselector: "" + gateway-api-secrets-namespace: cilium-secrets + gateway-api-service-externaltrafficpolicy: Cluster + gateway-api-xff-num-trusted-hops: "0" + health-check-icmp-failure-threshold: "3" + http-retry-count: "3" + hubble-disable-tls: "false" + hubble-export-file-max-backups: "5" + hubble-export-file-max-size-mb: "10" + hubble-listen-address: :4244 + hubble-socket-path: /var/run/cilium/hubble.sock + hubble-tls-cert-file: /var/lib/cilium/tls/hubble/server.crt + hubble-tls-client-ca-files: /var/lib/cilium/tls/hubble/client-ca.crt + hubble-tls-key-file: /var/lib/cilium/tls/hubble/server.key + identity-allocation-mode: crd + identity-gc-interval: 15m0s + identity-heartbeat-timeout: 30m0s + ingress-default-lb-mode: shared + ingress-hostnetwork-enabled: "false" + ingress-hostnetwork-nodelabelselector: "" + ingress-hostnetwork-shared-listener-port: "8080" + ingress-lb-annotation-prefixes: lbipam.cilium.io nodeipam.cilium.io service.beta.kubernetes.io + service.kubernetes.io cloud.google.com + ingress-secrets-namespace: cilium-secrets + ingress-shared-lb-service-name: cilium-ingress + install-no-conntrack-iptables-rules: "false" + ipam: kubernetes + ipam-cilium-node-update-rate: 15s + ipam-multi-pool-pre-allocation: null + iptables-random-fully: "false" + k8s-client-burst: "100" + k8s-client-qps: "20" + k8s-require-ipv4-pod-cidr: "false" + k8s-require-ipv6-pod-cidr: "false" + kube-proxy-replacement: "true" + kube-proxy-replacement-healthz-bind-address: "" + max-connected-clusters: "255" + mesh-auth-enabled: "true" + mesh-auth-gc-interval: 5m0s + mesh-auth-queue-size: "1024" + mesh-auth-rotated-identities-queue-size: "1024" + monitor-aggregation: medium + monitor-aggregation-flags: all + monitor-aggregation-interval: 5s + nat-map-stats-entries: "32" + nat-map-stats-interval: 30s + node-port-bind-protection: "true" + nodeport-addresses: "" + nodes-gc-interval: 5m0s + operator-api-serve-addr: 127.0.0.1:9234 + operator-prometheus-serve-addr: :9963 + policy-cidr-match-mode: "" + policy-secrets-namespace: cilium-secrets + policy-secrets-only-from-secrets-namespace: "true" + preallocate-bpf-maps: "false" + procfs: /host/proc + proxy-connect-timeout: "2" + proxy-idle-timeout-seconds: "60" + proxy-initial-fetch-timeout: "30" + proxy-max-concurrent-retries: "128" + proxy-max-connection-duration-seconds: "0" + proxy-max-requests-per-connection: "0" + proxy-xff-num-trusted-hops-egress: "0" + proxy-xff-num-trusted-hops-ingress: "0" + remove-cilium-node-taints: "true" + routing-mode: tunnel + service-no-backend-response: reject + set-cilium-is-up-condition: "true" + set-cilium-node-taints: "true" + synchronize-k8s-nodes: "true" + tofqdns-dns-reject-response-code: refused + tofqdns-enable-dns-compression: "true" + tofqdns-endpoint-max-ip-per-hostname: "1000" + tofqdns-idle-connection-grace-period: 0s + tofqdns-max-deferred-connection-deletes: "10000" + tofqdns-proxy-response-max-delay: 100ms + tunnel-protocol: vxlan + unmanaged-pod-watcher-interval: "15" + vtep-cidr: "" + vtep-endpoint: "" + vtep-mac: "" + vtep-mask: "" + write-cni-conf-when-ready: /host/etc/cni/net.d/05-cilium.conflist +kind: ConfigMap +metadata: + name: cilium-config + namespace: kube-system +--- +apiVersion: v1 +data: + bootstrap-config.json: | + {"admin":{"address":{"pipe":{"path":"/var/run/cilium/envoy/sockets/admin.sock"}}},"applicationLogConfig":{"logFormat":{"textFormat":"[%Y-%m-%d %T.%e][%t][%l][%n] [%g:%#] %v"}},"bootstrapExtensions":[{"name":"envoy.bootstrap.internal_listener","typedConfig":{"@type":"type.googleapis.com/envoy.extensions.bootstrap.internal_listener.v3.InternalListener"}}],"dynamicResources":{"cdsConfig":{"apiConfigSource":{"apiType":"GRPC","grpcServices":[{"envoyGrpc":{"clusterName":"xds-grpc-cilium"}}],"setNodeOnFirstMessageOnly":true,"transportApiVersion":"V3"},"initialFetchTimeout":"30s","resourceApiVersion":"V3"},"ldsConfig":{"apiConfigSource":{"apiType":"GRPC","grpcServices":[{"envoyGrpc":{"clusterName":"xds-grpc-cilium"}}],"setNodeOnFirstMessageOnly":true,"transportApiVersion":"V3"},"initialFetchTimeout":"30s","resourceApiVersion":"V3"}},"node":{"cluster":"ingress-cluster","id":"host~127.0.0.1~no-id~localdomain"},"overloadManager":{"resourceMonitors":[{"name":"envoy.resource_monitors.global_downstream_max_connections","typedConfig":{"@type":"type.googleapis.com/envoy.extensions.resource_monitors.downstream_connections.v3.DownstreamConnectionsConfig","max_active_downstream_connections":"50000"}}]},"staticResources":{"clusters":[{"circuitBreakers":{"thresholds":[{"maxRetries":128}]},"cleanupInterval":"2.500s","connectTimeout":"2s","lbPolicy":"CLUSTER_PROVIDED","name":"ingress-cluster","type":"ORIGINAL_DST","typedExtensionProtocolOptions":{"envoy.extensions.upstreams.http.v3.HttpProtocolOptions":{"@type":"type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions","commonHttpProtocolOptions":{"idleTimeout":"60s","maxConnectionDuration":"0s","maxRequestsPerConnection":0},"useDownstreamProtocolConfig":{}}}},{"circuitBreakers":{"thresholds":[{"maxRetries":128}]},"cleanupInterval":"2.500s","connectTimeout":"2s","lbPolicy":"CLUSTER_PROVIDED","name":"egress-cluster-tls","transportSocket":{"name":"cilium.tls_wrapper","typedConfig":{"@type":"type.googleapis.com/cilium.UpstreamTlsWrapperContext"}},"type":"ORIGINAL_DST","typedExtensionProtocolOptions":{"envoy.extensions.upstreams.http.v3.HttpProtocolOptions":{"@type":"type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions","commonHttpProtocolOptions":{"idleTimeout":"60s","maxConnectionDuration":"0s","maxRequestsPerConnection":0},"upstreamHttpProtocolOptions":{},"useDownstreamProtocolConfig":{}}}},{"circuitBreakers":{"thresholds":[{"maxRetries":128}]},"cleanupInterval":"2.500s","connectTimeout":"2s","lbPolicy":"CLUSTER_PROVIDED","name":"egress-cluster","type":"ORIGINAL_DST","typedExtensionProtocolOptions":{"envoy.extensions.upstreams.http.v3.HttpProtocolOptions":{"@type":"type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions","commonHttpProtocolOptions":{"idleTimeout":"60s","maxConnectionDuration":"0s","maxRequestsPerConnection":0},"useDownstreamProtocolConfig":{}}}},{"circuitBreakers":{"thresholds":[{"maxRetries":128}]},"cleanupInterval":"2.500s","connectTimeout":"2s","lbPolicy":"CLUSTER_PROVIDED","name":"ingress-cluster-tls","transportSocket":{"name":"cilium.tls_wrapper","typedConfig":{"@type":"type.googleapis.com/cilium.UpstreamTlsWrapperContext"}},"type":"ORIGINAL_DST","typedExtensionProtocolOptions":{"envoy.extensions.upstreams.http.v3.HttpProtocolOptions":{"@type":"type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions","commonHttpProtocolOptions":{"idleTimeout":"60s","maxConnectionDuration":"0s","maxRequestsPerConnection":0},"upstreamHttpProtocolOptions":{},"useDownstreamProtocolConfig":{}}}},{"connectTimeout":"2s","loadAssignment":{"clusterName":"xds-grpc-cilium","endpoints":[{"lbEndpoints":[{"endpoint":{"address":{"pipe":{"path":"/var/run/cilium/envoy/sockets/xds.sock"}}}}]}]},"name":"xds-grpc-cilium","type":"STATIC","typedExtensionProtocolOptions":{"envoy.extensions.upstreams.http.v3.HttpProtocolOptions":{"@type":"type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions","explicitHttpConfig":{"http2ProtocolOptions":{}}}}},{"connectTimeout":"2s","loadAssignment":{"clusterName":"/envoy-admin","endpoints":[{"lbEndpoints":[{"endpoint":{"address":{"pipe":{"path":"/var/run/cilium/envoy/sockets/admin.sock"}}}}]}]},"name":"/envoy-admin","type":"STATIC"}],"listeners":[{"address":{"socketAddress":{"address":"0.0.0.0","portValue":9964}},"filterChains":[{"filters":[{"name":"envoy.filters.network.http_connection_manager","typedConfig":{"@type":"type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager","httpFilters":[{"name":"envoy.filters.http.router","typedConfig":{"@type":"type.googleapis.com/envoy.extensions.filters.http.router.v3.Router"}}],"internalAddressConfig":{"cidrRanges":[{"addressPrefix":"10.0.0.0","prefixLen":8},{"addressPrefix":"172.16.0.0","prefixLen":12},{"addressPrefix":"192.168.0.0","prefixLen":16},{"addressPrefix":"127.0.0.1","prefixLen":32}]},"routeConfig":{"virtualHosts":[{"domains":["*"],"name":"prometheus_metrics_route","routes":[{"match":{"prefix":"/metrics"},"name":"prometheus_metrics_route","route":{"cluster":"/envoy-admin","prefixRewrite":"/stats/prometheus"}}]}]},"statPrefix":"envoy-prometheus-metrics-listener","streamIdleTimeout":"0s"}}]}],"name":"envoy-prometheus-metrics-listener"},{"address":{"socketAddress":{"address":"127.0.0.1","portValue":9878}},"filterChains":[{"filters":[{"name":"envoy.filters.network.http_connection_manager","typedConfig":{"@type":"type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager","httpFilters":[{"name":"envoy.filters.http.router","typedConfig":{"@type":"type.googleapis.com/envoy.extensions.filters.http.router.v3.Router"}}],"internalAddressConfig":{"cidrRanges":[{"addressPrefix":"10.0.0.0","prefixLen":8},{"addressPrefix":"172.16.0.0","prefixLen":12},{"addressPrefix":"192.168.0.0","prefixLen":16},{"addressPrefix":"127.0.0.1","prefixLen":32}]},"routeConfig":{"virtual_hosts":[{"domains":["*"],"name":"health","routes":[{"match":{"prefix":"/healthz"},"name":"health","route":{"cluster":"/envoy-admin","prefixRewrite":"/ready"}}]}]},"statPrefix":"envoy-health-listener","streamIdleTimeout":"0s"}}]}],"name":"envoy-health-listener"}]}} +kind: ConfigMap +metadata: + name: cilium-envoy-config + namespace: kube-system +--- +apiVersion: v1 +data: + config.yaml: "cluster-name: talos\npeer-service: \"hubble-peer.kube-system.svc.cluster.local.:443\"\nlisten-address: + :4245\ngops: true\ngops-port: \"9893\"\nretry-timeout: \nsort-buffer-len-max: + \nsort-buffer-drain-timeout: \ntls-hubble-client-cert-file: /var/lib/hubble-relay/tls/client.crt\ntls-hubble-client-key-file: + /var/lib/hubble-relay/tls/client.key\ntls-hubble-server-ca-files: /var/lib/hubble-relay/tls/hubble-server-ca.crt\n\ndisable-server-tls: + true\n" +kind: ConfigMap +metadata: + name: hubble-relay-config + namespace: kube-system +--- +apiVersion: v1 +data: + nginx.conf: "server {\n listen 8081;\n listen [::]:8081;\n server_name + \ localhost;\n root /app;\n index index.html;\n client_max_body_size + 1G;\n\n location / {\n proxy_set_header Host $host;\n proxy_set_header + X-Real-IP $remote_addr;\n\n location /api {\n proxy_http_version + 1.1;\n proxy_pass_request_headers on;\n proxy_pass http://127.0.0.1:8090;\n + \ }\n location / {\n # double `/index.html` is required + here \n try_files $uri $uri/ /index.html /index.html;\n }\n\n + \ # Liveness probe\n location /healthz {\n access_log + off;\n add_header Content-Type text/plain;\n return 200 + 'ok';\n }\n }\n}" +kind: ConfigMap +metadata: + name: hubble-ui-nginx + namespace: kube-system +--- +apiVersion: v1 +data: + ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lRUHVzSGdZZlVTYS93azNaV2JoN2RDREFOQmdrcWhraUc5dzBCQVFzRkFEQVUKTVJJd0VBWURWUVFERXdsRGFXeHBkVzBnUTBFd0hoY05NalV3TXpFeU1qSXdOekEzV2hjTk1qZ3dNekV4TWpJdwpOekEzV2pBVU1SSXdFQVlEVlFRREV3bERhV3hwZFcwZ1EwRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRQ3VBZGp5QnpOeGFDQzRNaUpVbnZya284RzJpaWtEMHRsRnlMa0pVdDJKM2NPc0g4YU4KWXlaK0lzcktPSW54L2xnWERZVGxTN2o1bFdScG1Ob1M3cWxLY0pKN3MySjJoeWVEZkEzVnREYThKMzZSaUxTaQpROVA5bEdqeG1LMFlmVVdSK3FjWXhJL0NjMG52MEFnYXVYS2dPMWt3WllQRUE2U3BzY09NQ2tUZk5wQncrcGtKCmpjUkJNS3EyWTlBVlZnNTl5blowSUtPbHBVZ2FxclZCZW9uakJQMVk2Y2VhTGZSQlVMd25VckY3L21kSkxFM1cKcG9mVjh5aEJya01weWloS2tYUEZLR2xhUnU1elNWc0k1NThsZXZxRnkyQnZCeWRsOGgxMytvOFQ1RmFTMXo4bApybHR4RFhGQWREM0JORkNjYXgzWlRxTkhsenZqUDYxOTRCWjNBZ01CQUFHallUQmZNQTRHQTFVZER3RUIvd1FFCkF3SUNwREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXcKQXdFQi96QWRCZ05WSFE0RUZnUVV4R3F6TW50NjVaUnZnVkVoQWVTVHFDVTc0SW93RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFLVnM5Skd0ZFltdGYxWmYxNGEyZlBtc1hLT3BGUUtZZm1aZWVLdWxiY3pTMW1rcVZkRU1BV3JYCm5vZG96UEtJOUFCTllTRDhsN2hTVWQ4SVloeWVxT3FvVG9XMkdsMzlGb3YyRk01bWk4V09zZFFDVi93cklEazUKa293ZUN6Q093QTNoejNJd29NQlFCRVVCY0hlL2ZSMWxINkxnNkdsZERjQXRvWEc1dGc2bGVZQ3Z5L0FEY082WAp0a3VUSDAwTXJIRDFnVldNVnFQcHNvTlp4dGJORzRsd0FrN2d1eUo0VGNadnRlRHlsZ2lUZkE4Q1cxWTlhSEEvCjAwbEVuTE1DdWtIclJBcGE4WFpXVjdhQ1FNTlNlUGhiTWxvMDhCaFN5Q1dRMzVvaGwvN081U3RTN2FYUmt5aGMKbnZLOTlCVU1paDZTQzBjdXlZZGVaUitDZ2w1OUJnWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + ca.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBcmdIWThnY3pjV2dndURJaVZKNzY1S1BCdG9vcEE5TFpSY2k1Q1ZMZGlkM0RyQi9HCmpXTW1maUxLeWppSjhmNVlGdzJFNVV1NCtaVmthWmphRXU2cFNuQ1NlN05pZG9jbmczd04xYlEydkNkK2tZaTAKb2tQVC9aUm84Wml0R0gxRmtmcW5HTVNQd25OSjc5QUlHcmx5b0R0Wk1HV0R4QU9rcWJIRGpBcEUzemFRY1BxWgpDWTNFUVRDcXRtUFFGVllPZmNwMmRDQ2pwYVZJR3FxMVFYcUo0d1Q5V09uSG1pMzBRVkM4SjFLeGUvNW5TU3hOCjFxYUgxZk1vUWE1REtjb29TcEZ6eFNocFdrYnVjMGxiQ09lZkpYcjZoY3RnYndjblpmSWRkL3FQRStSV2t0Yy8KSmE1YmNRMXhRSFE5d1RSUW5Hc2QyVTZqUjVjNzR6K3RmZUFXZHdJREFRQUJBb0lCQUI4WXRXeUxYT1luZGJGMQpSQzFiTy9zZ1NMNFdjcjM4TUZnSVJ3a2poZlBkYmRxVTB5YnhVUys1aUFRYmxvdG9xTlYxMVFvbFBpbGNTVldWCnUyTW13NXBLQStPWGEwRkRaZ3haWHgrUjFUWksySk9wbXA1bEFMMlFpRENrMkVwSUdPYTlwSjhJZ2FoK2NmZ3AKZFVsUld1ckhzR2kxdTVhTUVDRkRZMjdqWnV0OHlWSWFSK0oxcC81Wk56VWxnd0tpVGRWRUUvVkZFbEw5Q0MzYwpkNVBac0VoNW1xWEw5K1VZREI1cHpFSStwKzAzRzhsZnN6M2RSalNFdlM3aEVOZWhqOVdNNlFXNVhaWURzeWFoCmxOQnF1M3F2MmpFcjFzbUwvUStOMWhWYndKOVAwTnNmb1hrQnZSYnAvak1iOHRrRWpGUVZXZzFGbThqc3BOQ28KK3ZBakJBRUNnWUVBeWtpdzY3SVpMMy8vLzhJODMzYUxXNW95amsvRW56azFBOTh5V3NVbHhQS0R6Zm52aWViTApONFZJVUdnTGdzMXhpWHh4ZmZOZUxGMG1jbmFIM2FXMVZGazVpbmptU3RDREttdVl1TUZCSWhCMkNyWVFhV0s2Cjc5VE9QSFVJZGoyUDE0WFRoTXVTc0prNzVtckJRR0lNbVo3ZXZnYUVlUmVsQnZORU5vdkUyVDhDZ1lFQTNEYmwKeVdRWmJITFRLMWJZeGNhTFkxWHBpbytITjZoQmdqN2RwOFN5WjkxblBLeDQ1SDlIRlJMOFRBSXY0TWh6ZlVPOApTUEpQUTAweHZuVW56VEhYei9DM0VYVjVUY1BLajFoZm1Nc29VN0ltRGQyV2EyT3JNc1NwV2ZKMzZXSGNpVTIwCkVJdXk5ejU3djF0c052ZlM5czAvMHkwRzBiME5MMmFXZldRcGZNa0NnWUVBaGp0QWM5ZEdVVGZ1UitpNy9rbXEKNWtsbm5Qb2Y3c3pHZW1CRkNPamtURkhsMXV3dzRXQ3VuNVFwVFhvTmtXb0ZHb2ZpeEFLWURuWnR5ZTBQOGF4QgpyTXhjbTUvb3FlSzk5NHRZMTlrZUFKM054d1BUMWlyM0E2bENoZW5maUo4SGNheFRsVDZGZy96Yk8rYkJnSmpQCjVhMEFBRGRROXc0U3E0OElSKzN0M1g4Q2dZQkVaampSYU9vTXFVMjE5Rys0WG9jRS83WmVkMTVFaDFweG5oMHkKOHdHSENWbjdtb2FpVW5ZOXNYdjBEK25YSSt2YlNLSys5YVJ3L3hVb1Z6TlpwTldubk5qLzcwRVNTbklzUEFMVgpicVREK2wyZmlPZ2p5djF0ODIrMnBIMWlYQ2NuN3A2elZQRHRvdGJGQlJ5RHBrNDhvbHZrdCtPYVdlSXlpdWJMClk4VVBJUUtCZ1FDbzFhWFZxQ3JvejAvK3NpMHY4U1JBakJJOXcxOUU1R0J4UFdSMXAwU24rdkdWNW1lREg3cHEKZmJ5akprQkVNWkJLYjlGNVVxWGJ5N0FnOGhPaTBDYWRNdGhKZS9jcVdoNHFUS3hUanFQWlEyT2M5QWxZbDVyQwp5cnlwSmRndGtGb0R3cnJxSER2eHJlZ1BiVjFCZzU2bWdoMjJnKzkzMHM1NDlTZ2hrZ1RZelE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= +kind: Secret +metadata: + name: cilium-ca + namespace: kube-system +--- +apiVersion: v1 +data: + ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lRUHVzSGdZZlVTYS93azNaV2JoN2RDREFOQmdrcWhraUc5dzBCQVFzRkFEQVUKTVJJd0VBWURWUVFERXdsRGFXeHBkVzBnUTBFd0hoY05NalV3TXpFeU1qSXdOekEzV2hjTk1qZ3dNekV4TWpJdwpOekEzV2pBVU1SSXdFQVlEVlFRREV3bERhV3hwZFcwZ1EwRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRQ3VBZGp5QnpOeGFDQzRNaUpVbnZya284RzJpaWtEMHRsRnlMa0pVdDJKM2NPc0g4YU4KWXlaK0lzcktPSW54L2xnWERZVGxTN2o1bFdScG1Ob1M3cWxLY0pKN3MySjJoeWVEZkEzVnREYThKMzZSaUxTaQpROVA5bEdqeG1LMFlmVVdSK3FjWXhJL0NjMG52MEFnYXVYS2dPMWt3WllQRUE2U3BzY09NQ2tUZk5wQncrcGtKCmpjUkJNS3EyWTlBVlZnNTl5blowSUtPbHBVZ2FxclZCZW9uakJQMVk2Y2VhTGZSQlVMd25VckY3L21kSkxFM1cKcG9mVjh5aEJya01weWloS2tYUEZLR2xhUnU1elNWc0k1NThsZXZxRnkyQnZCeWRsOGgxMytvOFQ1RmFTMXo4bApybHR4RFhGQWREM0JORkNjYXgzWlRxTkhsenZqUDYxOTRCWjNBZ01CQUFHallUQmZNQTRHQTFVZER3RUIvd1FFCkF3SUNwREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXcKQXdFQi96QWRCZ05WSFE0RUZnUVV4R3F6TW50NjVaUnZnVkVoQWVTVHFDVTc0SW93RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFLVnM5Skd0ZFltdGYxWmYxNGEyZlBtc1hLT3BGUUtZZm1aZWVLdWxiY3pTMW1rcVZkRU1BV3JYCm5vZG96UEtJOUFCTllTRDhsN2hTVWQ4SVloeWVxT3FvVG9XMkdsMzlGb3YyRk01bWk4V09zZFFDVi93cklEazUKa293ZUN6Q093QTNoejNJd29NQlFCRVVCY0hlL2ZSMWxINkxnNkdsZERjQXRvWEc1dGc2bGVZQ3Z5L0FEY082WAp0a3VUSDAwTXJIRDFnVldNVnFQcHNvTlp4dGJORzRsd0FrN2d1eUo0VGNadnRlRHlsZ2lUZkE4Q1cxWTlhSEEvCjAwbEVuTE1DdWtIclJBcGE4WFpXVjdhQ1FNTlNlUGhiTWxvMDhCaFN5Q1dRMzVvaGwvN081U3RTN2FYUmt5aGMKbnZLOTlCVU1paDZTQzBjdXlZZGVaUitDZ2w1OUJnWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURTVENDQWpHZ0F3SUJBZ0lSQU1RRVNzckJGK1M0c3B4WFRVc0R2Z293RFFZSktvWklodmNOQVFFTEJRQXcKRkRFU01CQUdBMVVFQXhNSlEybHNhWFZ0SUVOQk1CNFhEVEkxTURNeE1qSXlNRGN3TjFvWERUSTJNRE14TWpJeQpNRGN3TjFvd0l6RWhNQjhHQTFVRUF3d1lLaTVvZFdKaWJHVXRjbVZzWVhrdVkybHNhWFZ0TG1sdk1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTNaemhKamhoZG5vaFA3TTE1NGhKMEYyNVl4WHEKYkNoc2tOTkw0dG54cWMyWlJUdEZHUWZuSHp3RW02ZXYwZkYyZ3BhRGd0bVJtOEdzbnpXdmk3WXArdzZZWGlGVgphTVFod0lFeHNSNVEzOEZNN2tKWmRxWHJJenYya1Q0aGdqNjlpVDVXUGNKdmpVRERGSER3ejlLeGZ0N2ZRQzNYCmNUWVR6d3FBVzUvUCtjRHZyTno0WjZFNkJlR1J0TTdBUWlzYzQwZC9SSGIxWThpVDhnZFBHSm9Ja0p4clMwdmgKSExHd0V3K1NFNTJEcERSV09SQnExM2V0YzUyMjY3SHA4SUtENzlJSWJoL0E5VWVyWXVyQnduNmNkQ1JqRnIxVgowRVhVQ20xWE9nWUlPVGdSYTNmNTZXYitoVWsvZzZsUXFDazJoOHR2VmppZmF6NERaL3E2UHlNMWNRSURBUUFCCm80R0dNSUdETUE0R0ExVWREd0VCL3dRRUF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUIKQlFVSEF3SXdEQVlEVlIwVEFRSC9CQUl3QURBZkJnTlZIU01FR0RBV2dCVEVhck15ZTNybGxHK0JVU0VCNUpPbwpKVHZnaWpBakJnTlZIUkVFSERBYWdoZ3FMbWgxWW1Kc1pTMXlaV3hoZVM1amFXeHBkVzB1YVc4d0RRWUpLb1pJCmh2Y05BUUVMQlFBRGdnRUJBQXlhenZkNlovQmlXb1pBU2JEb01pNTJWS3ZCTXFOdmF6cDBYQmhHaE41dDNxOU4KWVdMaUMxOHRsQXJsOEtjZHVZNFlxcUlxdlpxVFQzaEdWYmtaY21XQzNocGhjWTVPVWhhcEV1VUZQODBxNExRdgppL1RhbXNuTjAzV3cvVG1Ub1NmcThaMGtxbjlYRGZzRVhBSVZiRE00RExOM2FXeWJkMENiMW1uQ2hWaW9lTkRvCjRYSldwamdSWXpWNnp4bDA0WGFIVUdhS3NPejZVeG5vZC9IM0s4U0FhSy9JWDFIdnpWUEc2R2V3dU1JOGlYUkMKT2NaSm8rb0R1UEdaNlhuQUVNME5ueTF4YUZ2MVYwVHFvaFBXZ1pBY0x2aThuc0JMK1Z5KzhtSkFFYkR0NVJaMgpvdjBTdGdpM09nM2ZXTUE2Y0dHbUVSM1FhUDF2ZDB0L3F4NS9nMkU9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBM1p6aEpqaGhkbm9oUDdNMTU0aEowRjI1WXhYcWJDaHNrTk5MNHRueHFjMlpSVHRGCkdRZm5IendFbTZldjBmRjJncGFEZ3RtUm04R3Nueld2aTdZcCt3NllYaUZWYU1RaHdJRXhzUjVRMzhGTTdrSloKZHFYckl6djJrVDRoZ2o2OWlUNVdQY0p2alVEREZIRHd6OUt4ZnQ3ZlFDM1hjVFlUendxQVc1L1ArY0R2ck56NApaNkU2QmVHUnRNN0FRaXNjNDBkL1JIYjFZOGlUOGdkUEdKb0lrSnhyUzB2aEhMR3dFdytTRTUyRHBEUldPUkJxCjEzZXRjNTIyNjdIcDhJS0Q3OUlJYmgvQTlVZXJZdXJCd242Y2RDUmpGcjFWMEVYVUNtMVhPZ1lJT1RnUmEzZjUKNldiK2hVay9nNmxRcUNrMmg4dHZWamlmYXo0RFovcTZQeU0xY1FJREFRQUJBb0lCQUVRRXlhb2tkZTJhVUtndgpoaVQ1Vk1hS2JjTTJ6OHZBb0luWEFKeXhEaFp6RDA4TGdRck12U2grRUdBQ0dOblVSZTZRNmU1NGZ0T1NuendDCmkwM1RiSkV0Q3FFaGxBaGk0b1VtWWkwZHcrN1pjcFpTY1FrVXBkWWJxbk1yNGJjTE1MdDJFWnhGR0YzL2VhREYKaFhRVUUveC94WC82VWZ6aWZ6UDE0aTI5SUdWa095T1NOR2ZPRnFjTlV3emJSb1B3ZG43WExxSFB0cUtBR1g3Ygoxb1k5M3dGamtmRGlpVmZWa21ZazlLWVo0aGdZY2NpUkdPcWVGTkc0RnFVOTd5czFlYlhkYlBUSFZkSTlSS1YzCnNZYUpCNW5NRkZSeEN4UUNReWM2WmE5MTk0dTJJNExVb3g0M253Q2xZTUNrYWcvZEtvTjRaaDdSVGNQYXk0Z0MKTGJBeCtSMENnWUVBNXZKY1FKSlhtdVMzRzBJNENFQ3ZJR0kzYWRtaUVSMURrUTZpMC96cWZYS0lWbWQ1VENTSAprT2JzS09LZkx6RGdta3lVZ3VmTER6WmZsZ05mTlVNZWhRSkwwMlRZK2hCMGR1RnZFUFdKTFBUcFkxU3NSZFdXCmpYdFRScnI1T1RIREx3TWE0RzJFQ1B5VG55bFJ6TmZWOTBPNUUwWEJHUER1azMwOHFBc09HNXNDZ1lFQTlhZE8KYjBwSGFmNUlMYkxrcW5MeHQzVVF4eEl5bC9aMVlmOE9iaE1xbTgvUVc2VXdGVDBCUjBjNnJad3NCNGVsSEdTVwpxaE1rMndacXJqV09CUzl6VlNrU1FXRHZZdzZ1c1h5TnRqNnFjb2MyMlRieDdRNWhweFh2ZTBueUNBbGg0V1BSCmZLcDRWTDF1amdObkh5cWh2Y214RkwyUEdjYW13RUJMdkxteFllTUNnWUVBZzAwUGZmYTFyKzZRM0FLTjhNTTEKemVlSk1iajJGMXpYNlVTMDltazR1QkhCeWI0U2pHUElYMjJxbnFRWmRLOEpRekIrenQ0UjZKZzFTQWlxdkpGbwpiSjZkbFpZa2RpZWN6Mm5qeDNTUmhPbkpOeHdReGJObFlSTFlpY0lMcDZUUEg0OVlYSGhuTk9URTJSeVkwU2wxCkVKdUVRWnpLNSs4eTlNK2pDTGNnVWprQ2dZRUFsbXFRZzJLbkljYTY2WWlOcmJUZVB5aG1VbzdZL2VYQ2NIUGQKb1JjSlV3akhteVlsc0F0L3VlWnFqcDErOUVsaGwyWWNQeDJqeHAxQ08xTzlsMzA3a0p5cWVlL2lCUFNia1VBawpBY0NUVzdkaHBWV1lnei80R1hnOEFIRUJ5MXY3WENoandJTWRWVDM4OE9ZeWdZbjRLWjdUV0ZETnk4bXdseTJICmNwTDlnMk1DZ1lCbFhNYUNiZWJ0TmZBUzlKWjBpRzNEdHdId0tUbDFUYk5MdlNiTGpIWG5PRjlBWkZGVmlXQzQKVDVsWktkZjJkdDNaVkRZQ3RMV1JyeXVrYXN6TXdqbDQwZnpzRWdzK0JNcVI0aFMzdXVkOFVNamJRNEdPdy8yeAp0OEJDRDd6MFNLSUlnSjU3R2JMZjU0N3VxSk11T0pPQWhvUmJIUVNrR3BuYlY2b1JZYXRocFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= +kind: Secret +metadata: + name: hubble-relay-client-certs + namespace: kube-system +type: kubernetes.io/tls +--- +apiVersion: v1 +data: + ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lRUHVzSGdZZlVTYS93azNaV2JoN2RDREFOQmdrcWhraUc5dzBCQVFzRkFEQVUKTVJJd0VBWURWUVFERXdsRGFXeHBkVzBnUTBFd0hoY05NalV3TXpFeU1qSXdOekEzV2hjTk1qZ3dNekV4TWpJdwpOekEzV2pBVU1SSXdFQVlEVlFRREV3bERhV3hwZFcwZ1EwRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRQ3VBZGp5QnpOeGFDQzRNaUpVbnZya284RzJpaWtEMHRsRnlMa0pVdDJKM2NPc0g4YU4KWXlaK0lzcktPSW54L2xnWERZVGxTN2o1bFdScG1Ob1M3cWxLY0pKN3MySjJoeWVEZkEzVnREYThKMzZSaUxTaQpROVA5bEdqeG1LMFlmVVdSK3FjWXhJL0NjMG52MEFnYXVYS2dPMWt3WllQRUE2U3BzY09NQ2tUZk5wQncrcGtKCmpjUkJNS3EyWTlBVlZnNTl5blowSUtPbHBVZ2FxclZCZW9uakJQMVk2Y2VhTGZSQlVMd25VckY3L21kSkxFM1cKcG9mVjh5aEJya01weWloS2tYUEZLR2xhUnU1elNWc0k1NThsZXZxRnkyQnZCeWRsOGgxMytvOFQ1RmFTMXo4bApybHR4RFhGQWREM0JORkNjYXgzWlRxTkhsenZqUDYxOTRCWjNBZ01CQUFHallUQmZNQTRHQTFVZER3RUIvd1FFCkF3SUNwREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXcKQXdFQi96QWRCZ05WSFE0RUZnUVV4R3F6TW50NjVaUnZnVkVoQWVTVHFDVTc0SW93RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFLVnM5Skd0ZFltdGYxWmYxNGEyZlBtc1hLT3BGUUtZZm1aZWVLdWxiY3pTMW1rcVZkRU1BV3JYCm5vZG96UEtJOUFCTllTRDhsN2hTVWQ4SVloeWVxT3FvVG9XMkdsMzlGb3YyRk01bWk4V09zZFFDVi93cklEazUKa293ZUN6Q093QTNoejNJd29NQlFCRVVCY0hlL2ZSMWxINkxnNkdsZERjQXRvWEc1dGc2bGVZQ3Z5L0FEY082WAp0a3VUSDAwTXJIRDFnVldNVnFQcHNvTlp4dGJORzRsd0FrN2d1eUo0VGNadnRlRHlsZ2lUZkE4Q1cxWTlhSEEvCjAwbEVuTE1DdWtIclJBcGE4WFpXVjdhQ1FNTlNlUGhiTWxvMDhCaFN5Q1dRMzVvaGwvN081U3RTN2FYUmt5aGMKbnZLOTlCVU1paDZTQzBjdXlZZGVaUitDZ2w1OUJnWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURVakNDQWpxZ0F3SUJBZ0lRTkRBUU1ycTExRndESHFWNFRJNDVSekFOQmdrcWhraUc5dzBCQVFzRkFEQVUKTVJJd0VBWURWUVFERXdsRGFXeHBkVzBnUTBFd0hoY05NalV3TXpFeU1qSXdOekEzV2hjTk1qWXdNekV5TWpJdwpOekEzV2pBb01TWXdKQVlEVlFRRERCMHFMblJoYkc5ekxtaDFZbUpzWlMxbmNuQmpMbU5wYkdsMWJTNXBiekNDCkFTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS25jQURCM1Jpdk5pMC81TVQxSUNVc1MKLzVmUmR0SmJiOVFJODN1YUoyN2ZscEhYNzI0bUQ1dS8wY1F1RitReEc5dE5TRTFZWm5YeFV3blRQVUtWSHI1Swp5OVl5TDhTWnNTRHZ2TUd6N2c0UU1kMTZBM29wZWZCVVZJWG0vWnFzYnM4bWxyU0NjUElyWUxOQnBuVlVWTUZkCmZBWGRRb1dDajFvSGhEMG9JRFhoVTFWL2xSbTNvODkrSEhCQzl2bnNwY2NUVlFqOFB5MlgySURNMTYyTVFvNy8KQXhGNXkvNFEvWkFTYUFpTkFaMnMxdkJ6YmFQbWRKcW1yUUlQdS94ajVINmtnaWhrQWh5emtidnoyQjlCTTcrZwpnakJUTFRCLytpdmJyMUxEZDhGbTl1L3kzWFB6a216c092ZkRUUXU3YmZQVVJSZWhJK0RhTkFDWmhyL2JQNEVDCkF3RUFBYU9CaXpDQmlEQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3RUcKQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQ01BQXdId1lEVlIwakJCZ3dGb0FVeEdxek1udDY1WlJ2Z1ZFaApBZVNUcUNVNzRJb3dLQVlEVlIwUkJDRXdINElkS2k1MFlXeHZjeTVvZFdKaWJHVXRaM0p3WXk1amFXeHBkVzB1CmFXOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSU83c0JCMmdiZ3MveTloK0I3RGhIWXZhcFNGdUdlQzJ2clIKdEZGMHhtSnJNSW1jWVY3T25pUFV1ZDFTSjRSeE12OWNQT1c2WURDdmZSb2FqbDdVUi9rT2Z5Z0t3RXlMeXQ2bwp2RWwyYjc1REtLTmVSN2p1TVB4TURQemc4SURuWkxHOURTNmZkV01zNEdNSUErRlhCaUdjbVBlOE1yLzJmaXNxCnA5UWV0ZzJ1T0g3Z0QzWStGaVh5WklnR25jNHN2R2dsMkFwbllLRmFiMVRyZXVsZ2hVT25WNkhTdVdNSGxRWDEKR2FlMEphMXExV2dNTmVjYXpXVFNVMEt5ZWQrZzB5MWtKdUdOZnZSdG9FTS9aMVBoS05zcVlLbThZMTNmaWxaLwpOTXloamJ2L2t3dzJtQkxBVnJBY25SUjdVWEpuaWE2Y2lLaWp0YkhmUmxZZUVNTkxoSzg9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBcWR3QU1IZEdLODJMVC9reFBVZ0pTeEwvbDlGMjBsdHYxQWp6ZTVvbmJ0K1drZGZ2CmJpWVBtNy9SeEM0WDVERWIyMDFJVFZobWRmRlRDZE05UXBVZXZrckwxakl2eEpteElPKzh3YlB1RGhBeDNYb0QKZWlsNThGUlVoZWI5bXF4dXp5YVd0SUp3OGl0Z3MwR21kVlJVd1YxOEJkMUNoWUtQV2dlRVBTZ2dOZUZUVlgrVgpHYmVqejM0Y2NFTDIrZXlseHhOVkNQdy9MWmZZZ016WHJZeENqdjhERVhuTC9oRDlrQkpvQ0kwQm5helc4SE50Cm8rWjBtcWF0QWcrNy9HUGtmcVNDS0dRQ0hMT1J1L1BZSDBFenY2Q0NNRk10TUgvNks5dXZVc04zd1diMjcvTGQKYy9PU2JPdzY5OE5OQzd0dDg5UkZGNkVqNE5vMEFKbUd2OXMvZ1FJREFRQUJBb0lCQVFDYkNoY1dKZGhqNVBJeQo1Z1plcENEdmFJRHBaeVNvcnhNc201cjZoK05VWFRzSEZlMFNRaVZmQ1VBRGEvc2Nxd0o5TWxZN1d1UHk1WG5nCjd2SHNrMFlEZFN3Rzc3b1FIaVRDSm5ESThWM3BjampCcWp3QVJsbHAxdDlyZFVLbjZwb2Q5Ri84bFU5WWkrVncKMlF5QjdaNksvTFJXZWZYYy9TV3hqRWpVdFlwcEFpdXlyMkxpV2p6QmpSeU43amsxZ3ptenJVNk5qQmxGaFNWdworamJENFAyV2dJUmtFRUVseTZMUGRxTGFyU2tKMWd5STNCNjRoOWsxbXFrV1VZRkJBOTNORVBDZmhFSVl1aG9mClk2N3ZCa1JlK2d4bTBTS2srTFZvSTE2Q2pLOFN4QlRxbStxL2dxSjFVS1NGeEpQMkI2TmVvVk9uV3VsR2o5bGUKRmtnZzhQQUJBb0dCQU1JZWlnaFhhY29xVGxQSzd4ajFGbGxPL0RmdDJKYWdYSEhVN0ZtYXBkUEFubjBqMnVrZQpZb2k0Um5qRk8vYzEwMjhDdW5WQi9iNElDY1lNQld6YmhiRmRjNGFJcVF2OExDcWcwZzY0Mmp0dmRoUFNzUFVOCkdBaTNUbGdUam5TR3A5MXI1cWNQSW02YmcxWEtUNU9RZTFZaFRSMlpoOWJLS2ZWb291Yy9majFCQW9HQkFPQUIKcjhnZ1hEREpjclVVVS9QSEF6SGdVS2ZwRWRvVG1zd1o0b29LQkVzeGxmTXBjMTNHUU02SnhoUXNSNUFHNHZHTgpOeHpRNUtUNEIrYklES1hIYnMvSzJ6UlRqZXFRVDRRellwcVMramxuaXhSWFZndU5uNlVBVlNXdVlxZnFDcVBNCmYxUEl2Q0NZZjk5NnkrRjFhaXdrQWhOSktIWUNCckFmVzV0NEZ6SkJBb0dCQUxlOERpeHRDSTI0MDJDT1VSY1AKUzdNR2hzWXRVdmJuRy9rR2J4czB2RWFjSjZjTTIvUVF0WFR3N29yN0xKSUZtWFdXWUlRQ0RUamtCTlEycHAvdApmREp2NEp2ekdBWm5EaXJmQTFPNTlaMlNGM0lWMXpacXlWZmVvTUhPNk9RMFhBakJTNVRPUjJubnVqem1lOEdSClhKd2VjdzVVTm5XLzdrMEJXRWVIR21iQkFvR0FkdFdPT2gyb3FwMER4RHBmZXhDVmlrMFVuSzhSTUY1OEhWQ1MKRkdiUjlrMzgzWDJjM1IrQ1c4OU5ESUNkQ2pRTkN0VythZ1FMZDlTNDVGNDJEM0FvUWdXOG1ockZTNjE0OFlvTgpBakY4bXgxcDg4V05PUjNObGt3QjM3YU9VY1BnRnhzeVpQRTFsQmt5cFF6UXdlOTIvcW12akNtZ1ZGSW8yQ0FhCmlmU0FZY0VDZ1lCRmtkT2pKT1A1S3NhTm5aSkZjMDJVdXpEUzJRb0M4ZWJ1VnN4UlB0MXV3ZFQ0R2c5c2F0WGsKMTJid0MzeElna2pvenZZb3pSemdyY280OXRsSkhNYkl6RERXT0hPZzcvc0J5amJxRE5MN0wvM3NXSnFXMXR2eAo4dU5xTXdoZnBCeFRISTYzWFhLNzZteE5SVXFPMHZ6YjZZbFpYeU1SRzA2eE5HWVhQUHJhZ2c9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= +kind: Secret +metadata: + name: hubble-server-certs + namespace: kube-system +type: kubernetes.io/tls +--- +apiVersion: v1 +kind: Endpoints +metadata: + annotations: + io.cilium/lb-ipam-ips: 192.168.0.180 + labels: null + name: cilium-ingress + namespace: kube-system +subsets: +- addresses: + - ip: 192.192.192.192 + ports: + - port: 9999 +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + prometheus.io/port: "9964" + prometheus.io/scrape: "true" + labels: + app.kubernetes.io/name: cilium-envoy + app.kubernetes.io/part-of: cilium + io.cilium/app: proxy + k8s-app: cilium-envoy + name: cilium-envoy + namespace: kube-system +spec: + clusterIP: None + ports: + - name: envoy-metrics + port: 9964 + protocol: TCP + targetPort: envoy-metrics + selector: + k8s-app: cilium-envoy + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + io.cilium/lb-ipam-ips: 192.168.0.180 + labels: + app.kubernetes.io/part-of: cilium + cilium.io/ingress: "true" + name: cilium-ingress + namespace: kube-system +spec: + externalTrafficPolicy: Cluster + ports: + - name: http + nodePort: null + port: 80 + protocol: TCP + - name: https + nodePort: null + port: 443 + protocol: TCP + type: LoadBalancer +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: hubble-peer + app.kubernetes.io/part-of: cilium + k8s-app: cilium + name: hubble-peer + namespace: kube-system +spec: + internalTrafficPolicy: Local + ports: + - name: peer-service + port: 443 + protocol: TCP + targetPort: 4244 + selector: + k8s-app: cilium +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: hubble-relay + app.kubernetes.io/part-of: cilium + k8s-app: hubble-relay + name: hubble-relay + namespace: kube-system +spec: + ports: + - port: 80 + protocol: TCP + targetPort: grpc + selector: + k8s-app: hubble-relay + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: hubble-ui + app.kubernetes.io/part-of: cilium + k8s-app: hubble-ui + name: hubble-ui + namespace: kube-system +spec: + ports: + - name: http + port: 80 + targetPort: 8081 + selector: + k8s-app: hubble-ui + type: ClusterIP +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: cilium-operator + app.kubernetes.io/part-of: cilium + io.cilium/app: operator + name: cilium-operator + name: cilium-operator + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + io.cilium/app: operator + name: cilium-operator + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 50% + type: RollingUpdate + template: + metadata: + annotations: + cilium.io/cilium-configmap-checksum: fd9bf29194a075f7aa2a8cd38890dd6881df03fb85876460ef56bbf2a8c61dec + prometheus.io/port: "9963" + prometheus.io/scrape: "true" + labels: + app.kubernetes.io/name: cilium-operator + app.kubernetes.io/part-of: cilium + io.cilium/app: operator + name: cilium-operator + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + io.cilium/app: operator + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - --config-dir=/tmp/cilium/config-map + - --debug=$(CILIUM_DEBUG) + command: + - cilium-operator-generic + env: + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: CILIUM_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: CILIUM_DEBUG + valueFrom: + configMapKeyRef: + key: debug + name: cilium-config + optional: true + - name: KUBERNETES_SERVICE_HOST + value: localhost + - name: KUBERNETES_SERVICE_PORT + value: "7445" + image: quay.io/cilium/operator-generic:v1.17.1@sha256:628becaeb3e4742a1c36c4897721092375891b58bae2bfcae48bbf4420aaee97 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + host: 127.0.0.1 + path: /healthz + port: 9234 + scheme: HTTP + initialDelaySeconds: 60 + periodSeconds: 10 + timeoutSeconds: 3 + name: cilium-operator + ports: + - containerPort: 9963 + hostPort: 9963 + name: prometheus + protocol: TCP + readinessProbe: + failureThreshold: 5 + httpGet: + host: 127.0.0.1 + path: /healthz + port: 9234 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 5 + timeoutSeconds: 3 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 50m + memory: 128Mi + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /tmp/cilium/config-map + name: cilium-config-path + readOnly: true + hostNetwork: true + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-cluster-critical + restartPolicy: Always + serviceAccountName: cilium-operator + tolerations: + - operator: Exists + volumes: + - configMap: + name: cilium-config + name: cilium-config-path +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: hubble-relay + app.kubernetes.io/part-of: cilium + k8s-app: hubble-relay + name: hubble-relay + namespace: kube-system +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: hubble-relay + strategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + cilium.io/hubble-relay-configmap-checksum: 69f595f2f91fc6f0dc9862ad571cf49ecfde4f5581de95d2512ca3c3d35832c9 + labels: + app.kubernetes.io/name: hubble-relay + app.kubernetes.io/part-of: cilium + k8s-app: hubble-relay + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + k8s-app: cilium + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: false + containers: + - args: + - serve + command: + - hubble-relay + image: quay.io/cilium/hubble-relay:v1.17.1@sha256:397e8fbb188157f744390a7b272a1dec31234e605bcbe22d8919a166d202a3dc + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 12 + grpc: + port: 4222 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 + name: hubble-relay + ports: + - containerPort: 4245 + name: grpc + readinessProbe: + grpc: + port: 4222 + timeoutSeconds: 3 + securityContext: + capabilities: + drop: + - ALL + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 + startupProbe: + failureThreshold: 20 + grpc: + port: 4222 + initialDelaySeconds: 10 + periodSeconds: 3 + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /etc/hubble-relay + name: config + readOnly: true + - mountPath: /var/lib/hubble-relay/tls + name: tls + readOnly: true + nodeSelector: + kubernetes.io/os: linux + priorityClassName: null + restartPolicy: Always + securityContext: + fsGroup: 65532 + serviceAccountName: hubble-relay + terminationGracePeriodSeconds: 1 + volumes: + - configMap: + items: + - key: config.yaml + path: config.yaml + name: hubble-relay-config + name: config + - name: tls + projected: + defaultMode: 256 + sources: + - secret: + items: + - key: tls.crt + path: client.crt + - key: tls.key + path: client.key + - key: ca.crt + path: hubble-server-ca.crt + name: hubble-relay-client-certs +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: hubble-ui + app.kubernetes.io/part-of: cilium + k8s-app: hubble-ui + name: hubble-ui + namespace: kube-system +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: hubble-ui + strategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + cilium.io/hubble-ui-nginx-configmap-checksum: de069d2597e16e4de004ce684b15d74b2ab6051c717ae073d86199a76d91fcf1 + labels: + app.kubernetes.io/name: hubble-ui + app.kubernetes.io/part-of: cilium + k8s-app: hubble-ui + spec: + automountServiceAccountToken: true + containers: + - image: quay.io/cilium/hubble-ui:v0.13.1@sha256:e2e9313eb7caf64b0061d9da0efbdad59c6c461f6ca1752768942bfeda0796c6 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthz + port: 8081 + name: frontend + ports: + - containerPort: 8081 + name: http + readinessProbe: + httpGet: + path: / + port: 8081 + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /etc/nginx/conf.d/default.conf + name: hubble-ui-nginx-conf + subPath: nginx.conf + - mountPath: /tmp + name: tmp-dir + - env: + - name: EVENTS_SERVER_PORT + value: "8090" + - name: FLOWS_API_ADDR + value: hubble-relay:80 + image: quay.io/cilium/hubble-ui-backend:v0.13.1@sha256:0e0eed917653441fded4e7cdb096b7be6a3bddded5a2dd10812a27b1fc6ed95b + imagePullPolicy: IfNotPresent + name: backend + ports: + - containerPort: 8090 + name: grpc + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: null + nodeSelector: + kubernetes.io/os: linux + priorityClassName: null + securityContext: + fsGroup: 1001 + runAsGroup: 1001 + runAsUser: 1001 + serviceAccountName: hubble-ui + volumes: + - configMap: + defaultMode: 420 + name: hubble-ui-nginx + name: hubble-ui-nginx-conf + - emptyDir: {} + name: tmp-dir +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + labels: + app.kubernetes.io/name: cilium-agent + app.kubernetes.io/part-of: cilium + k8s-app: cilium + name: cilium + namespace: kube-system +spec: + selector: + matchLabels: + k8s-app: cilium + template: + metadata: + annotations: + cilium.io/cilium-configmap-checksum: fd9bf29194a075f7aa2a8cd38890dd6881df03fb85876460ef56bbf2a8c61dec + labels: + app.kubernetes.io/name: cilium-agent + app.kubernetes.io/part-of: cilium + k8s-app: cilium + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + k8s-app: cilium + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - --config-dir=/tmp/cilium/config-map + command: + - cilium-agent + env: + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: CILIUM_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: CILIUM_CLUSTERMESH_CONFIG + value: /var/lib/cilium/clustermesh/ + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + divisor: "1" + resource: limits.memory + - name: KUBERNETES_SERVICE_HOST + value: localhost + - name: KUBERNETES_SERVICE_PORT + value: "7445" + image: quay.io/cilium/cilium:v1.17.1@sha256:8969bfd9c87cbea91e40665f8ebe327268c99d844ca26d7d12165de07f702866 + imagePullPolicy: IfNotPresent + lifecycle: + postStart: + exec: + command: + - bash + - -c + - | + set -o errexit + set -o pipefail + set -o nounset + + # When running in AWS ENI mode, it's likely that 'aws-node' has + # had a chance to install SNAT iptables rules. These can result + # in dropped traffic, so we should attempt to remove them. + # We do it using a 'postStart' hook since this may need to run + # for nodes which might have already been init'ed but may still + # have dangling rules. This is safe because there are no + # dependencies on anything that is part of the startup script + # itself, and can be safely run multiple times per node (e.g. in + # case of a restart). + if [[ "$(iptables-save | grep -E -c 'AWS-SNAT-CHAIN|AWS-CONNMARK-CHAIN')" != "0" ]]; + then + echo 'Deleting iptables rules created by the AWS CNI VPC plugin' + iptables-save | grep -E -v 'AWS-SNAT-CHAIN|AWS-CONNMARK-CHAIN' | iptables-restore + fi + echo 'Done!' + preStop: + exec: + command: + - /cni-uninstall.sh + livenessProbe: + failureThreshold: 10 + httpGet: + host: 127.0.0.1 + httpHeaders: + - name: brief + value: "true" + path: /healthz + port: 9879 + scheme: HTTP + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 5 + name: cilium-agent + readinessProbe: + failureThreshold: 3 + httpGet: + host: 127.0.0.1 + httpHeaders: + - name: brief + value: "true" + path: /healthz + port: 9879 + scheme: HTTP + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 5 + resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 200m + memory: 512Mi + securityContext: + capabilities: + add: + - CHOWN + - KILL + - NET_ADMIN + - NET_RAW + - IPC_LOCK + - SYS_ADMIN + - SYS_RESOURCE + - DAC_OVERRIDE + - FOWNER + - SETGID + - SETUID + drop: + - ALL + seLinuxOptions: + level: s0 + type: spc_t + startupProbe: + failureThreshold: 105 + httpGet: + host: 127.0.0.1 + httpHeaders: + - name: brief + value: "true" + path: /healthz + port: 9879 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 2 + successThreshold: 1 + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /var/run/cilium/envoy/sockets + name: envoy-sockets + readOnly: false + - mountPath: /host/proc/sys/net + name: host-proc-sys-net + - mountPath: /host/proc/sys/kernel + name: host-proc-sys-kernel + - mountPath: /sys/fs/bpf + mountPropagation: HostToContainer + name: bpf-maps + - mountPath: /sys/fs/cgroup + name: cilium-cgroup + - mountPath: /var/run/cilium + name: cilium-run + - mountPath: /var/run/cilium/netns + mountPropagation: HostToContainer + name: cilium-netns + - mountPath: /host/etc/cni/net.d + name: etc-cni-netd + - mountPath: /var/lib/cilium/clustermesh + name: clustermesh-secrets + readOnly: true + - mountPath: /lib/modules + name: lib-modules + readOnly: true + - mountPath: /run/xtables.lock + name: xtables-lock + - mountPath: /var/lib/cilium/tls/hubble + name: hubble-tls + readOnly: true + - mountPath: /tmp + name: tmp + hostNetwork: true + initContainers: + - command: + - cilium-dbg + - build-config + env: + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: CILIUM_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: KUBERNETES_SERVICE_HOST + value: localhost + - name: KUBERNETES_SERVICE_PORT + value: "7445" + image: quay.io/cilium/cilium:v1.17.1@sha256:8969bfd9c87cbea91e40665f8ebe327268c99d844ca26d7d12165de07f702866 + imagePullPolicy: IfNotPresent + name: config + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /tmp + name: tmp + - command: + - sh + - -ec + - | + cp /usr/bin/cilium-sysctlfix /hostbin/cilium-sysctlfix; + nsenter --mount=/hostproc/1/ns/mnt "${BIN_PATH}/cilium-sysctlfix"; + rm /hostbin/cilium-sysctlfix + env: + - name: BIN_PATH + value: /opt/cni/bin + image: quay.io/cilium/cilium:v1.17.1@sha256:8969bfd9c87cbea91e40665f8ebe327268c99d844ca26d7d12165de07f702866 + imagePullPolicy: IfNotPresent + name: apply-sysctl-overwrites + securityContext: + capabilities: + add: + - SYS_ADMIN + - SYS_CHROOT + - SYS_PTRACE + drop: + - ALL + seLinuxOptions: + level: s0 + type: spc_t + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /hostproc + name: hostproc + - mountPath: /hostbin + name: cni-path + - args: + - mount | grep "/sys/fs/bpf type bpf" || mount -t bpf bpf /sys/fs/bpf + command: + - /bin/bash + - -c + - -- + image: quay.io/cilium/cilium:v1.17.1@sha256:8969bfd9c87cbea91e40665f8ebe327268c99d844ca26d7d12165de07f702866 + imagePullPolicy: IfNotPresent + name: mount-bpf-fs + securityContext: + privileged: true + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /sys/fs/bpf + mountPropagation: Bidirectional + name: bpf-maps + - command: + - /init-container.sh + env: + - name: CILIUM_ALL_STATE + valueFrom: + configMapKeyRef: + key: clean-cilium-state + name: cilium-config + optional: true + - name: CILIUM_BPF_STATE + valueFrom: + configMapKeyRef: + key: clean-cilium-bpf-state + name: cilium-config + optional: true + - name: WRITE_CNI_CONF_WHEN_READY + valueFrom: + configMapKeyRef: + key: write-cni-conf-when-ready + name: cilium-config + optional: true + - name: KUBERNETES_SERVICE_HOST + value: localhost + - name: KUBERNETES_SERVICE_PORT + value: "7445" + image: quay.io/cilium/cilium:v1.17.1@sha256:8969bfd9c87cbea91e40665f8ebe327268c99d844ca26d7d12165de07f702866 + imagePullPolicy: IfNotPresent + name: clean-cilium-state + securityContext: + capabilities: + add: + - NET_ADMIN + - SYS_ADMIN + - SYS_RESOURCE + drop: + - ALL + seLinuxOptions: + level: s0 + type: spc_t + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /sys/fs/bpf + name: bpf-maps + - mountPath: /sys/fs/cgroup + mountPropagation: HostToContainer + name: cilium-cgroup + - mountPath: /var/run/cilium + name: cilium-run + - command: + - /install-plugin.sh + image: quay.io/cilium/cilium:v1.17.1@sha256:8969bfd9c87cbea91e40665f8ebe327268c99d844ca26d7d12165de07f702866 + imagePullPolicy: IfNotPresent + name: install-cni-binaries + resources: + requests: + cpu: 100m + memory: 10Mi + securityContext: + capabilities: + drop: + - ALL + seLinuxOptions: + level: s0 + type: spc_t + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /host/opt/cni/bin + name: cni-path + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-node-critical + restartPolicy: Always + securityContext: + appArmorProfile: + type: Unconfined + serviceAccountName: cilium + terminationGracePeriodSeconds: 1 + tolerations: + - operator: Exists + volumes: + - emptyDir: {} + name: tmp + - hostPath: + path: /var/run/cilium + type: DirectoryOrCreate + name: cilium-run + - hostPath: + path: /var/run/netns + type: DirectoryOrCreate + name: cilium-netns + - hostPath: + path: /sys/fs/bpf + type: DirectoryOrCreate + name: bpf-maps + - hostPath: + path: /proc + type: Directory + name: hostproc + - hostPath: + path: /sys/fs/cgroup + type: DirectoryOrCreate + name: cilium-cgroup + - hostPath: + path: /opt/cni/bin + type: DirectoryOrCreate + name: cni-path + - hostPath: + path: /etc/cni/net.d + type: DirectoryOrCreate + name: etc-cni-netd + - hostPath: + path: /lib/modules + name: lib-modules + - hostPath: + path: /run/xtables.lock + type: FileOrCreate + name: xtables-lock + - hostPath: + path: /var/run/cilium/envoy/sockets + type: DirectoryOrCreate + name: envoy-sockets + - name: clustermesh-secrets + projected: + defaultMode: 256 + sources: + - secret: + name: cilium-clustermesh + optional: true + - secret: + items: + - key: tls.key + path: common-etcd-client.key + - key: tls.crt + path: common-etcd-client.crt + - key: ca.crt + path: common-etcd-client-ca.crt + name: clustermesh-apiserver-remote-cert + optional: true + - secret: + items: + - key: tls.key + path: local-etcd-client.key + - key: tls.crt + path: local-etcd-client.crt + - key: ca.crt + path: local-etcd-client-ca.crt + name: clustermesh-apiserver-local-cert + optional: true + - hostPath: + path: /proc/sys/net + type: Directory + name: host-proc-sys-net + - hostPath: + path: /proc/sys/kernel + type: Directory + name: host-proc-sys-kernel + - name: hubble-tls + projected: + defaultMode: 256 + sources: + - secret: + items: + - key: tls.crt + path: server.crt + - key: tls.key + path: server.key + - key: ca.crt + path: client-ca.crt + name: hubble-server-certs + optional: true + updateStrategy: + rollingUpdate: + maxUnavailable: 2 + type: RollingUpdate +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + labels: + app.kubernetes.io/name: cilium-envoy + app.kubernetes.io/part-of: cilium + k8s-app: cilium-envoy + name: cilium-envoy + name: cilium-envoy + namespace: kube-system +spec: + selector: + matchLabels: + k8s-app: cilium-envoy + template: + metadata: + annotations: null + labels: + app.kubernetes.io/name: cilium-envoy + app.kubernetes.io/part-of: cilium + k8s-app: cilium-envoy + name: cilium-envoy + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: cilium.io/no-schedule + operator: NotIn + values: + - "true" + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + k8s-app: cilium + topologyKey: kubernetes.io/hostname + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + k8s-app: cilium-envoy + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - --keep-cap-net-bind-service + - -- + - -c /var/run/cilium/envoy/bootstrap-config.json + - --base-id 0 + - --log-level info + command: + - /usr/bin/cilium-envoy-starter + env: + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: CILIUM_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: KUBERNETES_SERVICE_HOST + value: localhost + - name: KUBERNETES_SERVICE_PORT + value: "7445" + image: quay.io/cilium/cilium-envoy:v1.31.5-1739264036-958bef243c6c66fcfd73ca319f2eb49fff1eb2ae@sha256:fc708bd36973d306412b2e50c924cd8333de67e0167802c9b48506f9d772f521 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + host: 127.0.0.1 + path: /healthz + port: 9878 + scheme: HTTP + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 5 + name: cilium-envoy + ports: + - containerPort: 9964 + hostPort: 9964 + name: envoy-metrics + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + host: 127.0.0.1 + path: /healthz + port: 9878 + scheme: HTTP + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 5 + securityContext: + capabilities: + add: + - NET_ADMIN + - PERFMON + - BPF + drop: + - ALL + seLinuxOptions: + level: s0 + type: spc_t + startupProbe: + failureThreshold: 105 + httpGet: + host: 127.0.0.1 + path: /healthz + port: 9878 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 2 + successThreshold: 1 + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /var/run/cilium/envoy/sockets + name: envoy-sockets + readOnly: false + - mountPath: /var/run/cilium/envoy/artifacts + name: envoy-artifacts + readOnly: true + - mountPath: /var/run/cilium/envoy/ + name: envoy-config + readOnly: true + - mountPath: /sys/fs/bpf + mountPropagation: HostToContainer + name: bpf-maps + hostNetwork: true + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-node-critical + restartPolicy: Always + securityContext: + appArmorProfile: + type: Unconfined + serviceAccountName: cilium-envoy + terminationGracePeriodSeconds: 1 + tolerations: + - operator: Exists + volumes: + - hostPath: + path: /var/run/cilium/envoy/sockets + type: DirectoryOrCreate + name: envoy-sockets + - hostPath: + path: /var/run/cilium/envoy/artifacts + type: DirectoryOrCreate + name: envoy-artifacts + - configMap: + defaultMode: 256 + items: + - key: bootstrap-config.json + path: bootstrap-config.json + name: cilium-envoy-config + name: envoy-config + - hostPath: + path: /sys/fs/bpf + type: DirectoryOrCreate + name: bpf-maps + updateStrategy: + rollingUpdate: + maxUnavailable: 2 + type: RollingUpdate +--- +apiVersion: cilium.io/v2alpha1 +kind: CiliumL2AnnouncementPolicy +metadata: + name: default-l2-announcement-policy + namespace: kube-system +spec: + externalIPs: true + loadBalancerIPs: true +--- +apiVersion: cilium.io/v2alpha1 +kind: CiliumLoadBalancerIPPool +metadata: + name: ip-pool + namespase: kube-system +spec: + blocks: + - start: 192.168.0.129 + stop: 192.168.0.190 +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: GatewayClass +metadata: + name: cilium + namespace: kube-system +spec: + controllerName: io.cilium/gateway-controller +--- +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + annotations: + ingressclass.kubernetes.io/is-default-class: "true" + name: cilium +spec: + controller: cilium.io/ingress-controller diff --git a/cilium/src/announce.yaml b/cilium/src/announce.yaml new file mode 100644 index 0000000..721849b --- /dev/null +++ b/cilium/src/announce.yaml @@ -0,0 +1,9 @@ +# kubernetes/cilium/announce.yaml +apiVersion: cilium.io/v2alpha1 +kind: CiliumL2AnnouncementPolicy +metadata: + name: default-l2-announcement-policy + namespace: kube-system +spec: + externalIPs: true + loadBalancerIPs: true diff --git a/cilium/src/gatewayclass.yaml b/cilium/src/gatewayclass.yaml new file mode 100644 index 0000000..9abb67c --- /dev/null +++ b/cilium/src/gatewayclass.yaml @@ -0,0 +1,7 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: GatewayClass +metadata: + name: cilium + namespace: kube-system +spec: + controllerName: io.cilium/gateway-controller \ No newline at end of file diff --git a/cilium/src/ip-pool.yaml b/cilium/src/ip-pool.yaml new file mode 100644 index 0000000..6286866 --- /dev/null +++ b/cilium/src/ip-pool.yaml @@ -0,0 +1,10 @@ +# kubernetes/cilium/ip-pool.yaml +apiVersion: cilium.io/v2alpha1 +kind: CiliumLoadBalancerIPPool +metadata: + name: ip-pool + namespase: kube-system +spec: + blocks: + - start: 192.168.0.129 + stop: 192.168.0.190 \ No newline at end of file diff --git a/cilium/src/kustomization.yaml b/cilium/src/kustomization.yaml new file mode 100644 index 0000000..ef9db8e --- /dev/null +++ b/cilium/src/kustomization.yaml @@ -0,0 +1,17 @@ +# kubernetes/cilium/kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - announce.yaml + - gatewayclass.yaml + - ip-pool.yaml + +helmCharts: + - name: cilium + repo: https://helm.cilium.io + version: 1.17.1 + releaseName: cilium + includeCRDs: true + namespace: kube-system + valuesFile: values.yaml diff --git a/cilium/src/values.yaml b/cilium/src/values.yaml new file mode 100644 index 0000000..231fd1b --- /dev/null +++ b/cilium/src/values.yaml @@ -0,0 +1,94 @@ +cluster: + name: talos + id: 1 + +bpf: + hostLegacyRouting: true + +kubeProxyReplacement: true + +# Talos specific +k8sServiceHost: localhost +k8sServicePort: 7445 +securityContext: + capabilities: + ciliumAgent: [ CHOWN, KILL, NET_ADMIN, NET_RAW, IPC_LOCK, SYS_ADMIN, SYS_RESOURCE, DAC_OVERRIDE, FOWNER, SETGID, SETUID ] + cleanCiliumState: [ NET_ADMIN, SYS_ADMIN, SYS_RESOURCE ] + +cgroup: + autoMount: + enabled: false + hostRoot: /sys/fs/cgroup + +# https://docs.cilium.io/en/stable/network/concepts/ipam/ +ipam: + mode: kubernetes + +operator: + rollOutPods: true + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 50m + memory: 128Mi + +# Roll out cilium agent pods automatically when ConfigMap is updated. +rollOutCiliumPods: true +resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 200m + memory: 512Mi + +#debug: +# enabled: true + +# Increase rate limit when doing L2 announcements +k8sClientRateLimit: + qps: 20 + burst: 100 + +l2announcements: + enabled: true + +externalIPs: + enabled: true + +devices: eth+ + +enableCiliumEndpointSlice: true + +loadBalancer: + # https://docs.cilium.io/en/stable/network/kubernetes/kubeproxy-free/#maglev-consistent-hashing + algorithm: maglev + +gatewayAPI: + enabled: true +envoy: + securityContext: + capabilities: + keepCapNetBindService: true + envoy: [ NET_ADMIN, PERFMON, BPF ] + +ingressController: + enabled: true + default: true + loadbalancerMode: shared + service: + annotations: + io.cilium/lb-ipam-ips: 192.168.0.180 + +hubble: + peerService: + clusterDomain: cluster.local + enabled: true + relay: + enabled: true + rollOutPods: true + ui: + enabled: true + rollOutPods: true