[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FFVVQ83TMJHEMKZS7BFD87":3,"skill-same:01M6FFVVQ83TMJHEMKZS7BFD87":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M6FFVVQ83TMJHEMKZS7BFD87","k8s-certs",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Frohitg00\u002Fkubectl-mcp-server\u002Fk8s-certs\u002FSKILL.md",[],[18,19],"k8s","k8s certs","2026-11-10 10:12:30",false,"# Certificate Management with cert-manager\n\nManage TLS certificates using kubectl-mcp-server's cert-manager tools.\n\n## When to Apply\n\nUse this skill when:\n- User mentions: \"certificate\", \"cert-manager\", \"TLS\", \"SSL\", \"issuer\", \"Let's Encrypt\"\n- Operations: creating certificates, configuring issuers, debugging cert issues\n- Keywords: \"https\", \"secure\", \"encrypt\", \"renew\", \"expiring\"\n\n## Priority Rules\n\n| Priority | Rule | Impact | Tools |\n|----------|------|--------|-------|\n| 1 | Detect cert-manager first | CRITICAL | `certmanager_detect_tool` |\n| 2 | Use staging issuer for testing | HIGH | Test with letsencrypt-staging |\n| 3 | Check issuer before cert | HIGH | `certmanager_clusterissuers_list_tool` |\n| 4 | Monitor certificate expiry | MEDIUM | `certmanager_certificate_get_tool` |\n\n## Quick Reference\n\n| Task | Tool | Example |\n|------|------|---------|\n| Detect cert-manager | `certmanager_detect_tool` | `certmanager_detect_tool()` |\n| List certificates | `certmanager_certificates_list_tool` | `certmanager_certificates_list_tool(namespace)` |\n| Get certificate | `certmanager_certificate_get_tool` | `certmanager_certificate_get_tool(name, namespace)` |\n| List issuers | `certmanager_clusterissuers_list_tool` | `certmanager_clusterissuers_list_tool()` |\n\n## Check Installation\n\n```python\ncertmanager_detect_tool()\n```\n\n## Certificates\n\n### List Certificates\n\n```python\ncertmanager_certificates_list_tool(namespace=\"default\")\n```\n\n### Get Certificate Details\n\n```python\ncertmanager_certificate_get_tool(\n    name=\"my-tls\",\n    namespace=\"default\"\n)\n```\n\n### Create Certificate\n\n```python\nkubectl_apply(manifest=\"\"\"\napiVersion: cert-manager.io\u002Fv1\nkind: Certificate\nmetadata:\n  name: my-tls\n  namespace: default\nspec:\n  secretName: my-tls-secret\n  issuerRef:\n    name: letsencrypt-prod\n    kind: ClusterIssuer\n  dnsNames:\n  - app.example.com\n  - www.example.com\n\"\"\")\n```\n\n## Issuers\n\n### List Issuers\n\n```python\ncertmanager_issuers_list_tool(namespace=\"default\")\n\ncertmanager_clusterissuers_list_tool()\n```\n\n### Get Issuer Details\n\n```python\ncertmanager_issuer_get_tool(name=\"my-issuer\", namespace=\"default\")\ncertmanager_clusterissuer_get_tool(name=\"letsencrypt-prod\")\n```\n\n### Create Let's Encrypt Issuer\n\n```python\nkubectl_apply(manifest=\"\"\"\napiVersion: cert-manager.io\u002Fv1\nkind: ClusterIssuer\nmetadata:\n  name: letsencrypt-staging\nspec:\n  acme:\n    server: https:\u002F\u002Facme-staging-v02.api.letsencrypt.org\u002Fdirectory\n    email: admin@example.com\n    privateKeySecretRef:\n      name: letsencrypt-staging-key\n    solvers:\n    - http01:\n        ingress:\n          class: nginx\n\"\"\")\n\nkubectl_apply(manifest=\"\"\"\napiVersion: cert-manager.io\u002Fv1\nkind: ClusterIssuer\nmetadata:\n  name: letsencrypt-prod\nspec:\n  acme:\n    server: https:\u002F\u002Facme-v02.api.letsencrypt.org\u002Fdirectory\n    email: admin@example.com\n    privateKeySecretRef:\n      name: letsencrypt-prod-key\n    solvers:\n    - http01:\n        ingress:\n          class: nginx\n\"\"\")\n```\n\n### Create Self-Signed Issuer\n\n```python\nkubectl_apply(manifest=\"\"\"\napiVersion: cert-manager.io\u002Fv1\nkind: ClusterIssuer\nmetadata:\n  name: selfsigned\nspec:\n  selfSigned: {}\n\"\"\")\n```\n\n## Certificate Requests\n\n```python\ncertmanager_certificaterequests_list_tool(namespace=\"default\")\n\ncertmanager_certificaterequest_get_tool(\n    name=\"my-tls-xxxxx\",\n    namespace=\"default\"\n)\n```\n\n## Troubleshooting\n\n### Certificate Not Ready\n\n```python\ncertmanager_certificate_get_tool(name, namespace)\ncertmanager_certificaterequests_list_tool(namespace)\nget_events(namespace)\n```\n\n### Issuer Not Ready\n\n```python\ncertmanager_clusterissuer_get_tool(name)\nget_events(namespace=\"cert-manager\")\n```\n\n## Ingress Integration\n\n```python\nkubectl_apply(manifest=\"\"\"\napiVersion: networking.k8s.io\u002Fv1\nkind: Ingress\nmetadata:\n  name: my-ingress\n  annotations:\n    cert-manager.io\u002Fcluster-issuer: letsencrypt-prod\nspec:\n  tls:\n  - hosts:\n    - app.example.com\n    secretName: app-tls\n  rules:\n  - host: app.example.com\n    http:\n      paths:\n      - path: \u002F\n        pathType: Prefix\n        backend:\n          service:\n            name: my-service\n            port:\n              number: 80\n\"\"\")\n```\n\n## Prerequisites\n\n- **cert-manager**: Required for all certificate tools\n  ```bash\n  kubectl apply -f https:\u002F\u002Fgithub.com\u002Fcert-manager\u002Fcert-manager\u002Freleases\u002Flatest\u002Fdownload\u002Fcert-manager.yaml\n  ```\n\n## Related Skills\n\n- [k8s-networking](..\u002Fk8s-networking\u002FSKILL.md) - Ingress configuration\n- [k8s-security](..\u002Fk8s-security\u002FSKILL.md) - Security best practices\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Frohitg00\u002Fkubectl-mcp-server\u002Fk8s-certs",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill k8s-certs",{"tool":39,"command":40},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill k8s-certs",{"tool":42,"command":43},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill k8s-certs","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Frohitg00\u002Fkubectl-mcp-server\u002Fk8s-certs\u002FSKILL.md",true,[],[48,62,72,81,87,94],{"skillNo":49,"name":50,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":58,"publishedAt":20},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[53],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[59,60,61],"model","model hierarchy","model hierarchy skill",{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":68,"publishedAt":20},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[67],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[69,70,71],"MCP","zoom","zoom mcp",{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":20},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[78,79,80,70],"sdk","zoom apps sdk","apps",{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":20},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[83],{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":93,"publishedAt":20},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[92],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[89],{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":20},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[96]]