{"id":4077,"date":"2025-02-22T15:06:12","date_gmt":"2025-02-22T15:06:12","guid":{"rendered":"https:\/\/code2deploy.com\/blog\/?p=4077"},"modified":"2025-02-21T15:07:20","modified_gmt":"2025-02-21T15:07:20","slug":"securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps","status":"publish","type":"post","link":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/","title":{"rendered":"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Introduction<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When deploying applications in Kubernetes, managing configuration data securely and efficiently is critical. Kubernetes provides <strong>Secrets<\/strong> for handling sensitive data like passwords and API keys, and <strong>ConfigMaps<\/strong> for storing non-sensitive configuration data such as environment variables and application settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog, we\u2019ll explore:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How to use Kubernetes <strong>Secrets<\/strong> for sensitive data.<\/li>\n\n\n\n<li>How to use <strong>ConfigMaps<\/strong> for general configuration.<\/li>\n\n\n\n<li>A real-world scenario where both are used effectively.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Using Kubernetes Secrets for Secure Data Management<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Secrets in Kubernetes allow you to securely store and manage sensitive information like database credentials, API keys, and TLS certificates.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Example: Creating a Secret for Database Credentials<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>apiVersion: v1<br>kind: Secret<br>metadata:<br>&nbsp; name: db-secret<br>&nbsp; namespace: my-app-namespace<br>&nbsp; labels:<br>&nbsp; &nbsp; app: my-app<br>&nbsp;<br>type: Opaque<br><br>data:<br>&nbsp; DB_PASSWORD: c3VwZXJzZWNyZXQ=&nbsp; # Base64 encoded value of &#8216;supersecret&#8217;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Injecting the Secret into a Pod<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>apiVersion: v1<br>kind: Pod<br>metadata:<br>&nbsp; name: my-app-pod<br>spec:<br>&nbsp; containers:<br>&nbsp; &nbsp; &#8211; name: my-app-container<br>&nbsp; &nbsp; &nbsp; image: my-app:latest<br>&nbsp; &nbsp; &nbsp; env:<br>&nbsp; &nbsp; &nbsp; &nbsp; &#8211; name: DB_PASSWORD<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; valueFrom:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; secretKeyRef:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: db-secret<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key: DB_PASSWORD<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd39 <strong>Security Benefits:<\/strong> This method keeps credentials out of plain text configurations, reducing the risk of accidental exposure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Using ConfigMaps for General Configuration Management<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ConfigMaps store non-sensitive configuration data and can be used to decouple configuration from application code.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Example: Creating a ConfigMap for App Settings<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>apiVersion: v1<br>kind: ConfigMap<br>metadata:<br>&nbsp; name: app-config<br>&nbsp; namespace: my-app-namespace<br><br>data:<br>&nbsp; APP_MODE: &#8220;production&#8221;<br>&nbsp; LOG_LEVEL: &#8220;debug&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Injecting the ConfigMap into a Pod<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>apiVersion: v1<br>kind: Pod<br>metadata:<br>&nbsp; name: my-app-pod<br>spec:<br>&nbsp; containers:<br>&nbsp; &nbsp; &#8211; name: my-app-container<br>&nbsp; &nbsp; &nbsp; image: my-app:latest<br>&nbsp; &nbsp; &nbsp; env:<br>&nbsp; &nbsp; &nbsp; &nbsp; &#8211; name: APP_MODE<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; valueFrom:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configMapKeyRef:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: app-config<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key: APP_MODE<br>&nbsp; &nbsp; &nbsp; &nbsp; &#8211; name: LOG_LEVEL<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; valueFrom:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configMapKeyRef:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: app-config<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key: LOG_LEVEL<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Real-World Scenario: Securing a Database Connection in a Microservices App<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine a microservices-based e-commerce application that requires secure database credentials and configurable logging levels. The application architecture consists of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>backend API service<\/strong> that connects to a PostgreSQL database.<\/li>\n\n\n\n<li>A <strong>logging service<\/strong> that uses environment variables to control log levels.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Implementing the Solution<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Use Kubernetes Secrets to store database credentials:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Securely store the database password using Secrets.<\/li>\n\n\n\n<li>Inject the secret into the backend API pod as an environment variable.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Use ConfigMaps for application configuration:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Define log levels and app mode in a ConfigMap.<\/li>\n\n\n\n<li>Mount the ConfigMap as an environment variable in both the API and logging services.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Deployment Example<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>apiVersion: apps\/v1<br>kind: Deployment<br>metadata:<br>&nbsp; name: backend-api<br>spec:<br>&nbsp; replicas: 2<br>&nbsp; selector:<br>&nbsp; &nbsp; matchLabels:<br>&nbsp; &nbsp; &nbsp; app: backend-api<br>&nbsp; template:<br>&nbsp; &nbsp; metadata:<br>&nbsp; &nbsp; &nbsp; labels:<br>&nbsp; &nbsp; &nbsp; &nbsp; app: backend-api<br>&nbsp; &nbsp; spec:<br>&nbsp; &nbsp; &nbsp; containers:<br>&nbsp; &nbsp; &nbsp; &nbsp; &#8211; name: backend-api<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; image: backend-api:v1<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; env:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8211; name: DB_PASSWORD<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; valueFrom:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; secretKeyRef:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: db-secret<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key: DB_PASSWORD<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8211; name: APP_MODE<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; valueFrom:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configMapKeyRef:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: app-config<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key: APP_MODE<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Best Practices for Managing Secrets and ConfigMaps<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use Role-Based Access Control (RBAC):<\/strong> Restrict access to Secrets to only authorized services.<\/li>\n\n\n\n<li><strong>Encrypt Secrets at Rest:<\/strong> Use Kubernetes encryption providers to protect stored secrets.<\/li>\n\n\n\n<li><strong>Avoid Hardcoding Configurations:<\/strong> Always use ConfigMaps and Secrets to separate configurations from code.<\/li>\n\n\n\n<li><strong>Rotate Secrets Regularly:<\/strong> Implement secret rotation policies to enhance security.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">By leveraging <strong>Kubernetes Secrets<\/strong> and <strong>ConfigMaps<\/strong>, organizations can improve security and configuration management within their Kubernetes environments. These tools help maintain flexibility, security, and scalability while reducing risks associated with misconfigured applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Would you like to explore how to integrate ConfigMaps and Secrets with Helm charts for even more efficient deployment? Let us know in the comments!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction When deploying applications in Kubernetes, managing configuration data securely and efficiently is critical. Kubernetes provides Secrets for handling sensitive data like passwords and API keys, and ConfigMaps for storing non-sensitive configuration data such as environment variables and application settings. In this blog, we\u2019ll explore: Using Kubernetes Secrets for Secure Data Management Secrets in Kubernetes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,216],"tags":[534,10,11,535],"class_list":["post-4077","post","type-post","status-publish","format-standard","hentry","category-kubernetes","category-kubernetes-basic","tag-configmaps","tag-kubernetes","tag-kubernetes-deployment","tag-secrets"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps - code2deploy.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps - code2deploy.com\" \/>\n<meta property=\"og:description\" content=\"Introduction When deploying applications in Kubernetes, managing configuration data securely and efficiently is critical. Kubernetes provides Secrets for handling sensitive data like passwords and API keys, and ConfigMaps for storing non-sensitive configuration data such as environment variables and application settings. In this blog, we\u2019ll explore: Using Kubernetes Secrets for Secure Data Management Secrets in Kubernetes [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/\" \/>\n<meta property=\"og:site_name\" content=\"code2deploy.com\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-22T15:06:12+00:00\" \/>\n<meta name=\"author\" content=\"enam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"enam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/\"},\"author\":{\"name\":\"enam\",\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/#\\\/schema\\\/person\\\/e46930c19b999a87f12566fa8357481b\"},\"headline\":\"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps\",\"datePublished\":\"2025-02-22T15:06:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/\"},\"wordCount\":772,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/#\\\/schema\\\/person\\\/e46930c19b999a87f12566fa8357481b\"},\"keywords\":[\"ConfigMaps\",\"kubernetes\",\"Kubernetes deployment\",\"Secrets\"],\"articleSection\":[\"Kubernetes\",\"Kubernetes Basic\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/\",\"url\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/\",\"name\":\"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps - code2deploy.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/#website\"},\"datePublished\":\"2025-02-22T15:06:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/\",\"name\":\"code2deploy.com\\\/blog\",\"description\":\"TechOps\",\"publisher\":{\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/#\\\/schema\\\/person\\\/e46930c19b999a87f12566fa8357481b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/#\\\/schema\\\/person\\\/e46930c19b999a87f12566fa8357481b\",\"name\":\"enam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g\",\"caption\":\"enam\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/code2deploy.com\\\/blog\"],\"url\":\"https:\\\/\\\/code2deploy.com\\\/blog\\\/author\\\/enam\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps - code2deploy.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/","og_locale":"en_US","og_type":"article","og_title":"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps - code2deploy.com","og_description":"Introduction When deploying applications in Kubernetes, managing configuration data securely and efficiently is critical. Kubernetes provides Secrets for handling sensitive data like passwords and API keys, and ConfigMaps for storing non-sensitive configuration data such as environment variables and application settings. In this blog, we\u2019ll explore: Using Kubernetes Secrets for Secure Data Management Secrets in Kubernetes [&hellip;]","og_url":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/","og_site_name":"code2deploy.com","article_published_time":"2025-02-22T15:06:12+00:00","author":"enam","twitter_card":"summary_large_image","twitter_misc":{"Written by":"enam","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/#article","isPartOf":{"@id":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/"},"author":{"name":"enam","@id":"https:\/\/code2deploy.com\/blog\/#\/schema\/person\/e46930c19b999a87f12566fa8357481b"},"headline":"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps","datePublished":"2025-02-22T15:06:12+00:00","mainEntityOfPage":{"@id":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/"},"wordCount":772,"commentCount":0,"publisher":{"@id":"https:\/\/code2deploy.com\/blog\/#\/schema\/person\/e46930c19b999a87f12566fa8357481b"},"keywords":["ConfigMaps","kubernetes","Kubernetes deployment","Secrets"],"articleSection":["Kubernetes","Kubernetes Basic"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/","url":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/","name":"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps - code2deploy.com","isPartOf":{"@id":"https:\/\/code2deploy.com\/blog\/#website"},"datePublished":"2025-02-22T15:06:12+00:00","breadcrumb":{"@id":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/code2deploy.com\/blog\/securely-managing-application-configuration-with-kubernetes-secrets-and-configmaps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/code2deploy.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Securely Managing Application Configuration with Kubernetes Secrets and ConfigMaps"}]},{"@type":"WebSite","@id":"https:\/\/code2deploy.com\/blog\/#website","url":"https:\/\/code2deploy.com\/blog\/","name":"code2deploy.com\/blog","description":"TechOps","publisher":{"@id":"https:\/\/code2deploy.com\/blog\/#\/schema\/person\/e46930c19b999a87f12566fa8357481b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/code2deploy.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/code2deploy.com\/blog\/#\/schema\/person\/e46930c19b999a87f12566fa8357481b","name":"enam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g","caption":"enam"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d864e2f082f4499f8f1b33f004ec166eea77b9e94738553b120b6dca2410f203?s=96&d=mm&r=g"},"sameAs":["https:\/\/code2deploy.com\/blog"],"url":"https:\/\/code2deploy.com\/blog\/author\/enam\/"}]}},"_links":{"self":[{"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/posts\/4077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/comments?post=4077"}],"version-history":[{"count":1,"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/posts\/4077\/revisions"}],"predecessor-version":[{"id":4078,"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/posts\/4077\/revisions\/4078"}],"wp:attachment":[{"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/media?parent=4077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/categories?post=4077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code2deploy.com\/blog\/wp-json\/wp\/v2\/tags?post=4077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}