Skip to content

Instantly share code, notes, and snippets.

package com.example.producer.integration;
import com.example.core.Message;
import com.example.event.Event;
import lombok.extern.log4j.Log4j2;
import org.springframework.cloud.stream.function.StreamBridge;
import org.springframework.stereotype.Component;
@Log4j2
@Component
package com.example.producer.service;
import com.example.ProducerService;
import com.example.core.Message;
import com.example.dto.MessageAggregate;
import com.example.producer.integration.MessageIntegration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
package com.example.producer.api;
import com.example.ProducerService;
import com.example.dto.MessageAggregate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;
terraform {
required_providers {
kubernetes = {
source = "hashicorp/kubernetes"
version = ">= 2.0.0"
}
}
}
provider "kubernetes" {
resource "kubernetes_service" "demo_app_spring_service" {
metadata {
name = "demo-app-spring"
namespace = kubernetes_namespace.demo_app_ns.metadata.0.name
labels = {
app = "demo-app-spring"
}
}
spec {
variable "registry_server" {
type = string
default = "https://hub.docker.com/"
}
variable "registry_username" {
type = string
default = "<YOUR_DOCKER_HUB_USERNAME>"
}
resource "kubernetes_secret" "docker_secret" {
metadata {
name = "docker-cfg"
namespace = kubernetes_namespace.demo_app_ns.metadata.0.name
}
data = {
".dockerconfigjson" = jsonencode({
auths = {
"${var.registry_server}" = {
resource "kubernetes_service" "demo_app_mysql_service" {
metadata {
name = "demo-app-mysql"
namespace = kubernetes_namespace.demo_app_ns.metadata.0.name
labels = {
app = "demo-app"
}
}
spec {
resource "kubernetes_secret" "demo_app_secret" {
metadata {
name = "mysql-pass"
namespace = kubernetes_namespace.demo_app_ns.metadata.0.name
}
data = {
mysql-root-password = "cm9vdHBhc3N3b3Jk"
mysql-user-password = "dXNlcnBhc3N3b3Jk"
}
resource "kubernetes_config_map" "demo_app_cm" {
metadata {
name = "mysql-config-map"
namespace = kubernetes_namespace.demo_app_ns.metadata.0.name
}
data = {
mysql-server = "demo-app-mysql"
mysql-database-name = "demoDb"
mysql-user-username = "myUser"