From bbac671737c8068ad40748adb950f77d326de78c Mon Sep 17 00:00:00 2001 From: Andriy Kobetiak Date: Sun, 8 Dec 2024 17:59:40 +0200 Subject: [PATCH] Add Ingress-NGINX Helm chart for Kubernetes This commit introduces a new Helm chart template for deploying the Ingress-NGINX controller on Kubernetes. The configuration includes roles, service accounts, deployments, and related resources required for its operation. Additionally, an output.log file is added to log resource states and events in the namespaces. --- INSTRUCTION.md | 0 .../todoapp/templates/crds/ingress-nginx.yml | 675 ++++++++++++++++++ output.log | 99 +++ 3 files changed, 774 insertions(+) create mode 100644 INSTRUCTION.md create mode 100644 helm-chart/todoapp/templates/crds/ingress-nginx.yml create mode 100644 output.log diff --git a/INSTRUCTION.md b/INSTRUCTION.md new file mode 100644 index 0000000..e69de29 diff --git a/helm-chart/todoapp/templates/crds/ingress-nginx.yml b/helm-chart/todoapp/templates/crds/ingress-nginx.yml new file mode 100644 index 0000000..f5802c7 --- /dev/null +++ b/helm-chart/todoapp/templates/crds/ingress-nginx.yml @@ -0,0 +1,675 @@ +apiVersion: v1 +kind: Namespace +metadata: + labels: + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + name: ingress-nginx +--- +apiVersion: v1 +automountServiceAccountToken: true +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx + namespace: ingress-nginx +--- +apiVersion: v1 +automountServiceAccountToken: true +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission + namespace: ingress-nginx +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx + namespace: ingress-nginx +rules: + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - apiGroups: + - "" + resources: + - configmaps + - pods + - secrets + - endpoints + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - networking.k8s.io + resources: + - ingressclasses + verbs: + - get + - list + - watch + - apiGroups: + - coordination.k8s.io + resourceNames: + - ingress-nginx-leader + resources: + - leases + verbs: + - get + - update + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - list + - watch + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission + namespace: ingress-nginx +rules: + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - create +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx +rules: + - apiGroups: + - "" + resources: + - configmaps + - endpoints + - nodes + - pods + - secrets + - namespaces + verbs: + - list + - watch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - list + - watch + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - networking.k8s.io + resources: + - ingressclasses + verbs: + - get + - list + - watch + - apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - list + - watch + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission +rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + verbs: + - get + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx + namespace: ingress-nginx +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ingress-nginx +subjects: + - kind: ServiceAccount + name: ingress-nginx + namespace: ingress-nginx +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission + namespace: ingress-nginx +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ingress-nginx-admission +subjects: + - kind: ServiceAccount + name: ingress-nginx-admission + namespace: ingress-nginx +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ingress-nginx +subjects: + - kind: ServiceAccount + name: ingress-nginx + namespace: ingress-nginx +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ingress-nginx-admission +subjects: + - kind: ServiceAccount + name: ingress-nginx-admission + namespace: ingress-nginx +--- +apiVersion: v1 +data: null +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-controller + namespace: ingress-nginx +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-controller + namespace: ingress-nginx +spec: + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + ports: + - appProtocol: http + name: http + port: 80 + protocol: TCP + targetPort: http + - appProtocol: https + name: https + port: 443 + protocol: TCP + targetPort: https + selector: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + type: NodePort +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-controller-admission + namespace: ingress-nginx +spec: + ports: + - appProtocol: https + name: https-webhook + port: 443 + targetPort: webhook + selector: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + type: ClusterIP +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-controller + namespace: ingress-nginx +spec: + minReadySeconds: 0 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + strategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + spec: + containers: + - args: + - /nginx-ingress-controller + - --election-id=ingress-nginx-leader + - --controller-class=k8s.io/ingress-nginx + - --ingress-class=nginx + - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller + - --validating-webhook=:8443 + - --validating-webhook-certificate=/usr/local/certificates/cert + - --validating-webhook-key=/usr/local/certificates/key + - --watch-ingress-without-class=true + - --publish-status-address=localhost + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: LD_PRELOAD + value: /usr/local/lib/libmimalloc.so + image: registry.k8s.io/ingress-nginx/controller:v1.12.0-beta.0@sha256:9724476b928967173d501040631b23ba07f47073999e80e34b120e8db5f234d5 + imagePullPolicy: IfNotPresent + lifecycle: + preStop: + exec: + command: + - /wait-shutdown + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: 10254 + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + name: controller + ports: + - containerPort: 80 + hostPort: 80 + name: http + protocol: TCP + - containerPort: 443 + hostPort: 443 + name: https + protocol: TCP + - containerPort: 8443 + name: webhook + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /healthz + port: 10254 + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + requests: + cpu: 100m + memory: 90Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - NET_BIND_SERVICE + drop: + - ALL + readOnlyRootFilesystem: false + runAsGroup: 82 + runAsNonRoot: true + runAsUser: 101 + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /usr/local/certificates/ + name: webhook-cert + readOnly: true + dnsPolicy: ClusterFirst + nodeSelector: + ingress-ready: "true" + kubernetes.io/os: linux + serviceAccountName: ingress-nginx + terminationGracePeriodSeconds: 0 + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Equal + - effect: NoSchedule + key: node-role.kubernetes.io/control-plane + operator: Equal + volumes: + - name: webhook-cert + secret: + secretName: ingress-nginx-admission +--- +apiVersion: batch/v1 +kind: Job +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission-create + namespace: ingress-nginx +spec: + template: + metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission-create + spec: + containers: + - args: + - create + - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc + - --namespace=$(POD_NAMESPACE) + - --secret-name=ingress-nginx-admission + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4@sha256:a9f03b34a3cbfbb26d103a14046ab2c5130a80c3d69d526ff8063d2b37b9fd3f + imagePullPolicy: IfNotPresent + name: create + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 + seccompProfile: + type: RuntimeDefault + nodeSelector: + kubernetes.io/os: linux + restartPolicy: OnFailure + serviceAccountName: ingress-nginx-admission +--- +apiVersion: batch/v1 +kind: Job +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission-patch + namespace: ingress-nginx +spec: + template: + metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission-patch + spec: + containers: + - args: + - patch + - --webhook-name=ingress-nginx-admission + - --namespace=$(POD_NAMESPACE) + - --patch-mutating=false + - --secret-name=ingress-nginx-admission + - --patch-failure-policy=Fail + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4@sha256:a9f03b34a3cbfbb26d103a14046ab2c5130a80c3d69d526ff8063d2b37b9fd3f + imagePullPolicy: IfNotPresent + name: patch + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 + seccompProfile: + type: RuntimeDefault + nodeSelector: + kubernetes.io/os: linux + restartPolicy: OnFailure + serviceAccountName: ingress-nginx-admission +--- +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: nginx +spec: + controller: k8s.io/ingress-nginx +--- +apiVersion: admissionregistration.k8s.io/v1 +kind: ValidatingWebhookConfiguration +metadata: + labels: + app.kubernetes.io/component: admission-webhook + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/part-of: ingress-nginx + app.kubernetes.io/version: 1.12.0-beta.0 + name: ingress-nginx-admission +webhooks: + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: ingress-nginx-controller-admission + namespace: ingress-nginx + path: /networking/v1/ingresses + port: 443 + failurePolicy: Fail + matchPolicy: Equivalent + name: validate.nginx.ingress.kubernetes.io + rules: + - apiGroups: + - networking.k8s.io + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - ingresses + sideEffects: None diff --git a/output.log b/output.log new file mode 100644 index 0000000..d34f036 --- /dev/null +++ b/output.log @@ -0,0 +1,99 @@ +NAMESPACE NAME READY STATUS RESTARTS AGE +ingress-nginx pod/ingress-nginx-admission-create-6jkn4 0/1 Completed 0 15m +ingress-nginx pod/ingress-nginx-admission-patch-8jsjl 0/1 Completed 0 15m +ingress-nginx pod/ingress-nginx-controller-867bbcb78-flm6l 1/1 Running 0 15m +kube-system pod/coredns-6f6b679f8f-m54qd 1/1 Running 0 20m +kube-system pod/coredns-6f6b679f8f-qrttl 1/1 Running 0 20m +kube-system pod/etcd-kind-control-plane 1/1 Running 0 20m +kube-system pod/kindnet-6lcd2 1/1 Running 0 20m +kube-system pod/kindnet-6n68v 1/1 Running 0 20m +kube-system pod/kindnet-6xvsd 1/1 Running 0 20m +kube-system pod/kindnet-h5rdq 1/1 Running 0 20m +kube-system pod/kindnet-l9q6d 1/1 Running 0 20m +kube-system pod/kindnet-w24l2 1/1 Running 0 20m +kube-system pod/kindnet-wk6ff 1/1 Running 0 20m +kube-system pod/kube-apiserver-kind-control-plane 1/1 Running 0 20m +kube-system pod/kube-controller-manager-kind-control-plane 1/1 Running 0 20m +kube-system pod/kube-proxy-5bcpz 1/1 Running 0 20m +kube-system pod/kube-proxy-b7prg 1/1 Running 0 20m +kube-system pod/kube-proxy-bqf95 1/1 Running 0 20m +kube-system pod/kube-proxy-dpm6x 1/1 Running 0 20m +kube-system pod/kube-proxy-kgntp 1/1 Running 0 20m +kube-system pod/kube-proxy-rmt69 1/1 Running 0 20m +kube-system pod/kube-proxy-z8b8n 1/1 Running 0 20m +kube-system pod/kube-scheduler-kind-control-plane 1/1 Running 0 20m +local-path-storage pod/local-path-provisioner-57c5987fd4-4nfb8 1/1 Running 0 20m +mysql pod/mysql-0 1/1 Running 0 15m +mysql pod/mysql-1 1/1 Running 0 14m +todoapp pod/todoapp-6d7fcdf9b8-pcgqs 1/1 Running 0 7m31s + +NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +default service/kubernetes ClusterIP 10.96.0.1 443/TCP 20m +ingress-nginx service/ingress-nginx-controller NodePort 10.96.116.29 80:30735/TCP,443:32612/TCP 15m +ingress-nginx service/ingress-nginx-controller-admission ClusterIP 10.96.99.155 443/TCP 15m +kube-system service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP,9153/TCP 20m +mysql service/mysql-service ClusterIP None 3306/TCP 15m +todoapp service/todoapp-nodeport NodePort 10.96.37.92 80:30007/TCP 15m +todoapp service/todoapp-service ClusterIP 10.96.13.184 80/TCP 15m + +NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE +kube-system daemonset.apps/kindnet 7 7 7 7 7 kubernetes.io/os=linux 20m +kube-system daemonset.apps/kube-proxy 7 7 7 7 7 kubernetes.io/os=linux 20m + +NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE +ingress-nginx deployment.apps/ingress-nginx-controller 1/1 1 1 15m +kube-system deployment.apps/coredns 2/2 2 2 20m +local-path-storage deployment.apps/local-path-provisioner 1/1 1 1 20m +todoapp deployment.apps/todoapp 1/1 1 1 15m + +NAMESPACE NAME DESIRED CURRENT READY AGE +ingress-nginx replicaset.apps/ingress-nginx-controller-867bbcb78 1 1 1 15m +kube-system replicaset.apps/coredns-6f6b679f8f 2 2 2 20m +local-path-storage replicaset.apps/local-path-provisioner-57c5987fd4 1 1 1 20m +todoapp replicaset.apps/todoapp-6986d797b8 0 0 0 15m +todoapp replicaset.apps/todoapp-6d7fcdf9b8 1 1 1 12m +todoapp replicaset.apps/todoapp-f6b5ccbfc 0 0 0 13m + +NAMESPACE NAME READY AGE +mysql statefulset.apps/mysql 2/2 15m + +NAMESPACE NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE +todoapp horizontalpodautoscaler.autoscaling/todoapp-hpa Deployment/todoapp-deployment cpu: /70%, memory: /70% 2 5 0 15m + +NAMESPACE NAME STATUS COMPLETIONS DURATION AGE +ingress-nginx job.batch/ingress-nginx-admission-create Complete 1/1 3s 15m +ingress-nginx job.batch/ingress-nginx-admission-patch Complete 1/1 32s 15m + +NAMESPACE NAME DATA AGE +default configmap/kube-root-ca.crt 1 20m +ingress-nginx configmap/ingress-nginx-controller 0 15m +ingress-nginx configmap/kube-root-ca.crt 1 15m +kube-node-lease configmap/kube-root-ca.crt 1 20m +kube-public configmap/cluster-info 2 20m +kube-public configmap/kube-root-ca.crt 1 20m +kube-system configmap/coredns 1 20m +kube-system configmap/extension-apiserver-authentication 6 20m +kube-system configmap/kube-apiserver-legacy-service-account-token-tracking 1 20m +kube-system configmap/kube-proxy 2 20m +kube-system configmap/kube-root-ca.crt 1 20m +kube-system configmap/kubeadm-config 1 20m +kube-system configmap/kubelet-config 1 20m +local-path-storage configmap/kube-root-ca.crt 1 20m +local-path-storage configmap/local-path-config 4 20m +mysql configmap/kube-root-ca.crt 1 15m +mysql configmap/mysql-config 1 15m +todoapp configmap/kube-root-ca.crt 1 15m +todoapp configmap/todoapp-config 1 15m + +NAMESPACE NAME TYPE DATA AGE +default secret/sh.helm.release.v1.todoapp-release.v1 helm.sh/release.v1 1 15m +default secret/sh.helm.release.v1.todoapp-release.v2 helm.sh/release.v1 1 13m +default secret/sh.helm.release.v1.todoapp-release.v3 helm.sh/release.v1 1 12m +default secret/sh.helm.release.v1.todoapp-release.v4 helm.sh/release.v1 1 8m +ingress-nginx secret/ingress-nginx-admission Opaque 3 15m +kube-system secret/bootstrap-token-abcdef bootstrap.kubernetes.io/token 6 20m +mysql secret/mysql-secrets Opaque 3 15m +todoapp secret/todoapp-secret Opaque 5 15m + +NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE +todoapp ingress.networking.k8s.io/todoapp-ingress * localhost 80 15m