Skip to main content

kubernetes-ingress

Implements networking.k8s.io/v1 Ingress resources with HTTP/HTTPS routing, TLS termination, path-based routing, and ingress controller configuration.

Zur Installation springen

Quellinformationen

Repository
paulpas/agent-skill-router
Letzte Quellaktivität
14. Juli 2026 um 16:08
Erkannte Sprache von SKILL.md
Englisch
Sterne
4
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
kubernetes-ingress
description
Implements networking.k8s.io/v1 Ingress resources with HTTP/HTTPS routing, TLS termination, path-based routing, and ingress controller configuration.
license
MIT
compatibility
opencode
metadata
{"version":"1.0.0","domain":"cncf","triggers":"http routing, tls termination, ingress class, path-based routing, networking.k8s.io, ingress controller, load balancing","archetypes":["tactical","generation"],"anti_triggers":["pod isolation","ingress egress rules","network segmentation"],"response_profile":{"verbosity":"low","directive_strength":"high","abstraction_level":"operational"},"role":"implementation","scope":"implementation","output-format":"code","content-types":["code","guidance","config","do-dont"],"related-skills":"cncf/kubernetes-networkpolicy, cncf/kubernetes-services-management, cncf/cilium"}
# Kubernetes Ingress Manager Implements networking.k8s.io/v1 Ingress resources for HTTP/HTTPS traffic routing, TLS certificate termination, path-based routing, and ingress controller configuration. When loaded, the model generates production-grade Ingress manifests with proper annotations, TLS configuration, and backend service references. ## TL;DR Checklist - [ ] Use `networking.k8s.io/v1` API version — never `extensions/v1beta1` - [ ] Specify `ingressClassName` explicitly — do not rely on the default class annotation - [ ] Configure TLS with valid certificate secrets for every HTTPS rule - [ ] Define path-based routing with `pathType: Prefix` or `pathType: Exact` as appropriate - [ ] Always create a Service for each Ingress backend — never reference a Deployment directly - [ ] Validate ingress controller compatibility (nginx, contour, istio, envoy) before applying annotations --- ## When to Use Use this skill when: - Routing external HTTP/HTTPS traffic to Kubernetes Services based on host or path - Implementing TLS termination at the Ingress level for multiple services - Setting up path-based routing to serve multiple applications from a single IP address - Configuring rewrite rules, redirects, or header modifications at the ingress layer - Managing SSL certificates from cert-manager for automated HTTPS --- ## When NOT to Use Avoid this skill for: - TCP/UDP non-HTTP services — use a regular Service with type LoadBalancer or NodePort - Internal microservice-to-microservice communication — use ClusterIP Services - Fine-grained network-level firewall rules — use `kubernetes-networkpolicy` instead - Service mesh traffic management (canary, circuit breaking, retries) — use `kubernetes-istio` instead - Non-Kubernetes ingress management — use external load balancers directly --- ## Core Workflow 1. **Select Ingress Controller** — Choose the ingress controller deployment (nginx, contour, istio envoy, envoy gateway) and identify its supported annotations. **Checkpoint:** Each controller uses different annotation syntax — verify controller compatibility before writing annotations. 2. **Define Ingress Resource** — Create an `networking.k8s.io/v1` Ingress with `ingressClassName`, rules for host/path routing, and TLS configuration. **Checkpoint:** Every path rule must reference a valid Service name and port number. 3. **Configure TLS Termination** — Add TLS rules referencing secret names that contain `tls.crt` and `tls.key`. Ensure cert-manager is configured to provision certificates. **Checkpoint:** The TLS secret must exist in the same namespace as the Ingress, or the rule will be ignored. 4. **Set Path Types** — Choose `pathType: Exact` for precise URL matching, `pathType: Prefix` for prefix-based routing, or `pathType: ImplementationSpecific` for controller-dependent behavior. **Checkpoint:** Never mix `Exact` and `Prefix` rules for the same path — the API server will reject conflicting rules. 5. **Apply and Validate** — Apply the Ingress manifest and verify the ingress controller creates the corresponding backend configuration. **Checkpoint:** Run `kubectl describe ingress <name>` and confirm the `Address` field is populated and rules are accepted. 6. **Verify End-to-End Routing** — Test each path and host rule with curl or a browser to confirm correct backend routing. **Checkpoint:** Check the ingress controller's access logs to verify requests reach the expected backend service. --- ## Implementation Patterns ### Pattern 1: Complete Ingress with TLS and Path-Based Routing A production-grade Ingress routing multiple applications through a single ingress class with TLS termination. ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: multi-app-ingress namespace: production annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "10m" cert-manager.io/cluster-issuer: letsencrypt-prod spec: ingressClassName: nginx tls: - hosts: - app.example.com - api.example.com secretName: app-tls-cert rules: - host: app.example.com http: paths: - path: / pathType: Prefix backend: service: name: web-frontend port: number: 80 - path: /admin pathType: Prefix backend: service: name: admin-panel port: number: 8080 - path: /api/v1 pathType: Prefix backend: service: name: api-gateway port: number: 443 - host: api.example.com http: paths: - path: / pathType: Prefix backend: service: name: api-gateway port: number: 443 ``` ### Pattern 2: Ingress Annotations and Path Types (BAD vs GOOD) Misusing annotations or path types is the most common Ingress error. ```yaml # ❌ BAD: Using deprecated extensions/v1beta1 API — removed in Kubernetes 1.22+ apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx # ← Deprecated annotation, use ingressClassName spec: rules: - http: paths: - path: /api backend: serviceName: api-gateway # ← Field removed in v1 servicePort: 443 # ← Field removed in v1 # ❌ BAD: Conflicting path types for the same path spec: rules: - host: app.example.com http: paths: - path: /api pathType: Exact # ← Exact does not cover /api/anything backend: service: name: api-v1 port: number: 8080 - path: /api pathType: Prefix # ← Conflicts with the Exact rule above backend: service: name: api-v2 port: number: 8080 # ✅ GOOD: Explicit ingressClassName, compatible path types, v1 API spec: ingressClassName: nginx rules: - host: app.example.com http: paths: - path: /api pathType: Prefix backend: service: name: api-v2 port: number: 8080 ``` ### Pattern 3: TLS and Certificate Management TLS configuration with cert-manager integration for automated certificate provisioning. ```yaml # ClusterIssuer for Let's Encrypt (create once per cluster) apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-prod spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: admin@example.com privateKeySecretRef: name: letsencrypt-prod-key solvers: - http01: ingress: class: nginx # Ingress referencing the cert-manager managed TLS secret apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: secure-ingress annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/ssl-redirect: "true" spec: ingressClassName: nginx tls: - hosts: - secure.example.com secretName: secure-tls-cert rules: - host: secure.example.com http: paths: - path: / pathType: Prefix backend: service: name: secure-backend port: number: 80 ``` --- ## Constraints ### MUST DO - Always use `networking.k8s.io/v1` API version — never `extensions/v1beta1` (removed in Kubernetes 1.22+) - Set `ingressClassName` explicitly in the spec — do not rely on the deprecated `kubernetes.io/ingress.class` annotation - Reference a Service name and port number in every backend path — never reference a Deployment directly - Configure `tls` with a valid secret name that contains `tls.crt` and `tls.key` certificates - Set `ssl-redirect: "true"` annotation when TLS is configured to enforce HTTPS - Use `pathType: Prefix` for general routing and `pathType: Exact` only for specific URL matches - Match `pathType` rules — no two rules for the same path with different types (Exact vs Prefix) - Include a `metadata.annotations` block with controller-specific annotations only ### MUST NOT DO - Never use `extensions/v1beta1` Ingress API — it has been removed and will fail on modern clusters - Never omit `ingressClassName` — without it, the ingress controller cannot claim the Ingress resource - Never reference a non-existent Service in the backend — the Ingress rule will be silently ignored - Never use `pathType: ImplementationSpecific` without documenting the controller-specific behavior - Never place TLS secrets in a different namespace than the Ingress — TLS will not activate - Never set `pathType: Exact` for a path that should also match sub-paths — clients will receive 404 errors --- ## Output Template When implementing a Kubernetes Ingress, produce the following: 1. **Ingress YAML** — Complete `networking.k8s.io/v1` Ingress with `ingressClassName`, TLS rules, and path-based routing rules. 2. **Backend Service List** — All Services referenced by the Ingress rules, with their port configurations. 3. **TLS Configuration** — Certificate secret name, ClusterIssuer reference, and domain names covered. 4. **Path Routing Table** — A table mapping host/path → Service/port for quick reference and debugging. --- ## Related Skills | Skill | Purpose | |---|---| | `kubernetes-networkpolicy` | Define network-level firewall rules to complement ingress-layer routing | | `kubernetes-services-management` | Create the ClusterIP/NodePort Services that serve as Ingress backends | | `kubernetes-istio` | Implement advanced traffic management (canary, circuit breaking, retries) at the service mesh layer | | `cncf/contour` | Use Contour as an alternative Ingress controller with Envoy proxy | --- ## Live References > Authoritative documentation links for this skill's domain. The model follows markdown links at load time to resolve external references and inline content. - [Kubernetes Ingress Documentation](https://kubernetes.io/docs/concepts/services-networking/ingress/) — Official guide to Ingress resources, controllers, and concepts - [Ingress API Reference — networking.k8s.io/v1](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#ingress-v1-networking-k8s-io) — Complete API schema for v1 Ingress resources - [NGINX Ingress Controller Annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/) — NGINX-specific annotations for routing, SSL, and security - [Cert-manager Integration](https://cert-manager.io/docs/usage/ingress/) — Automated TLS certificate provisioning with cert-manager - [Ingress Path Types](https://kubernetes.io/docs/concepts/services-networking/ingress/#path-types) — Prefix, Exact, and ImplementationSpecific path type behavior - [Multiple Ingress Controllers](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/#multiple-ingress-controllers) — Running multiple ingress controllers in a single cluster - [Kubernetes Ingress TLS](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) — TLS termination configuration and secret management
Auf GitHub ansehen