Skip to content

Instantly share code, notes, and snippets.

View ThomasVitale's full-sized avatar
🍃
Cloud Native Spring in Action

Thomas Vitale ThomasVitale

🍃
Cloud Native Spring in Action
View GitHub Profile
@ThomasVitale
ThomasVitale / kpack-overlay.yml
Created September 13, 2023 10:49
Kpack with custom CA
#@ load("@ytt:data", "data")
#@ load("@ytt:overlay", "overlay")
#@ load("/config.star", "get_ca_certificates")
#@ if data.values.ca_cert_data != "":
#@yaml/text-templated-strings
---
apiVersion: v1
kind: Secret
@ThomasVitale
ThomasVitale / schema.yml
Last active September 4, 2023 17:19
ytt yaml fragment snippet
#@data/values-schema
---
service:
enabled: true
@ThomasVitale
ThomasVitale / deployment.yml
Last active June 20, 2023 19:50
Tekton kbld issue
apiVersion: apps/v1
kind: Deployment
metadata:
name: tekton-pipelines-controller
namespace: tekton-pipelines
spec:
selector:
matchLabels:
app.kubernetes.io/name: controller
app.kubernetes.io/component: controller
@ThomasVitale
ThomasVitale / ApplicationController.java
Last active June 11, 2023 22:08
Securing a Spring Boot Application with Keycloak
package com.thomasvitale.keycloak.controller;
import com.thomasvitale.keycloak.repository.BookRepository;
import org.keycloak.KeycloakSecurityContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.ServletException;
@ThomasVitale
ThomasVitale / Main.java
Last active June 11, 2023 08:54
Keycloak Admin REST API for Java
import com.sun.org.apache.regexp.internal.RE;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.KeycloakBuilder;
import org.keycloak.admin.client.resource.UserResource;
import org.keycloak.admin.client.resource.UsersResource;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
import java.util.Arrays;
# Imgpkg => https://carvel.dev/imgpkg
imgpkg copy \
-i docker.io/thomasvitale/book-service:1.0 \
--to-repo ghcr.io/thomasvitale/book-service \
--cosign-signatures
# Skopeo => https://github.com/containers/skopeo
skopeo copy \
docker://docker.io/thomasvitale/book-service:1.0 \
docker://quay.io/thomasvitale/book-service:1.0
@ThomasVitale
ThomasVitale / custom-values.yml
Last active March 2, 2023 20:12
Contour ConfigMap Example with Carvel ytt
#@data/values
---
config-contour:
timeouts:
connection-idle-timeout: 30s
stream-idle-timeout: 2m
disablePermitInsecure: true
@ThomasVitale
ThomasVitale / custom-values.yml
Last active March 2, 2023 16:45
Carvel ytt - Example with empty ConfigMap
#@data/values
---
config-features:
secure-pod-defaults: "enabled"
@ThomasVitale
ThomasVitale / ConnectorConfig.java
Last active November 17, 2020 14:25
How to enable HTTPS in a Spring Boot Application
@Configuration
public class ConnectorConfig {
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
@ThomasVitale
ThomasVitale / ThreadTest.java
Last active March 1, 2020 21:16
Multitenancy Stuff
package com.thomasvitale.application;
import com.thomasvitale.application.multitenancy.TenantContext;
import org.junit.jupiter.api.Test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadTest {